Back in the day, model trains were controlled by varying a DC voltage: low voltage made a train go slowly, higher voltage made a train go faster, and reversing the polarity sent it in the opposite direction. Model trains have since entered the modern era, with digital train control or Direct Cab Control (DCC). DCC works by modulating control information into a steady 12-15V applied to the tracks. Individual trains are addressed by their road numbers (the number on the side of the locomotive), so multiple locomotives can be run on the same track, at different speeds or even in different directions. Trains equipped with DCC decoders can also toggle lights and sounds and other features based on DCC commands. However, modern DCC equipment is proprietary and expensive, in the range of $150+ for the equipment to power and control a few trains.
Thanks to ArTICL, an open-source DCC library for Arduino, and the appropriateness of a graphing calculator as the LCD + keypad for an Arduino, a cheaper alternative is possible. This CalcDCC project is an attempt to build an inexpensive DCC controller that uses a graphing calculator as the throttle, allowing commands to be entered using the calculator's keypad and displaying status information on the calculator's screen. If you already have a graphing calculator with a DBUS (I/O) port, the parts should be relatively inexpensive:
So far, I've been able to control a few features like headlights and set the speed of a locomotive through simple Send(L1) commands on the calculator. I'll add a GitHub link and more information to this topic when I get a chance to work further on this project.
Thanks to ArTICL, an open-source DCC library for Arduino, and the appropriateness of a graphing calculator as the LCD + keypad for an Arduino, a cheaper alternative is possible. This CalcDCC project is an attempt to build an inexpensive DCC controller that uses a graphing calculator as the throttle, allowing commands to be entered using the calculator's keypad and displaying status information on the calculator's screen. If you already have a graphing calculator with a DBUS (I/O) port, the parts should be relatively inexpensive:
- LMD18200 motor controller with assorted passive components, ~$10
- Optional heatsink, <$4
- Arduino or TI MSP432 Launchpad, $10-$25
- 5V/12V power supply (often used for external hard drives), or substitute an ATX supply: free-$20
So far, I've been able to control a few features like headlights and set the speed of a locomotive through simple Send(L1) commands on the calculator. I'll add a GitHub link and more information to this topic when I get a chance to work further on this project.