Main Content

This is a DCC model railroad controller based on the nodeMCU ESP8266 IOT module. It makes use of other modules commonly available on eBay for the Arduino such as a 1602 LCD display, keypad, jogwheel and I2C backpacks.

The controller implements the JMRI protocol over WiFi and you can control your locomotives directly from one or more smartphones. You will need to download the free EngineDriver (Android) or WiThrottle Lite (Apple) App to your phone or tablet.

The system was designed around low cost components and can run 8 locomotives simultantously drawing a maximum 4 Amps. There are various build options. The lowest cost option is a nodeMCU, an INA219 current monitor and an L298 motor driver module. That’s it! Control in this case is via a mobile phone over Wifi.

The local LCD display, keypad and jogwheel are optional. Personally I prefer this kind of tactile interface. Smartphones require you to look at the phone instead of the road…

I designed a system board to hold the nodeMCU, some discrete components, the INA219 monitor and it also gives the option to add an integrated LMD18200T motor controller.

The system can support:

8 locomotives, short or long addresses, 126 or 28 speed steps, 16 functions.
8 turnouts Holds the loco and turnout roster in EEPROM
Supports Service Mode programming (prog track) and Program on the Main (POM) for locos and accessory decoders.
Does NOT support LocoNet.
Does not support DCC++.
If you want a low-cost entry level DCC controller with Wifi support and quite a lot of features, based on open source Arduino software then give this project some consideration. Thanks!

core components

nodeMCU 1.0 which is the ESP8266, also known as 12-E.
INA219 current monitoring board.
12V dc regulated power supply
system PCB
5V regulator + heatsink
capacitors, diodes, resistors, headers, dupont jumpers
one of the following motor control boards

IBT2 aka BTS7960B
optionally, for the local hardware user interace DSKY

1602LCD with I2C backpack
4 x 4 matrix keypad
I2C GPIO expander PCF8574 to fit the keypad
red pushbutton for emergency stop, green for mode
rotary encoder, 5 terminal type”

Link to article