Skip to main content

I wanted to have automated running of trains on the layout I am designing.  The two premier layout control and automation software programs are Train Controller and JMRI.  Train Controller is a commercial application and JMRI is an open source application.  Both can control and automate TMCC engines but not DCS engines.  I chose to use Train Controller.  The TMCC signal/command protocol between the remote and base station is open source.  The DCS signal/command protocol between the remote and the TIU is proprietary and not implemented by Train Controller or JMRI.  Professor Chaos’s post “Legacy - DCS bridge running MTH trains with the legacy remote proof of concept” showed it might be possible to convert Train Controller's TMCC commands into DCS signals. Mark DiVecchio has done a fantastic/superhuman job of reverse engineering the DCS commands and protocol.  I built Professor Chaos’s DCS bridge and with his help successfully demonstrated it controlling a DCS engine.  After learning rudimentary C++ I read Professor Chaos’s and Mark DiVecchio’s Arduino IDE sketch.   Train Controller issues TMCC1 commands not Legacy commands.  The section of the program parsing Legacy commands was converted to TMCC1 commands.  More DCS instructions were added to the sketch.  A subset of DCS commands used for Train Controller automation and programed into the DCS bridge are the following: speed, forward, reverse, toggle direction, start up, shut down, smoke on, smoke off, horn/whistle on, horn/whistle off, bell on, bell off, front coupler and rear coupler.  There will probably be modifications to the list and commands when real automation is implemented.  The test setup consisted of a Legacy base station and DCS TIU connected to a small oval with a MTH engine.  A PDI interface was connected to the Legacy base station.  The PDI bus connected a LCS WiFi node, a LCS SER2 node and a DCS bridge as shown in the picture.  

TMCC - DCS Bridge

An USB to Serial cable connected a PC running Train Controller to the LCS SER2 node.  The MTH engine’s ID # was entered into a Train Controller TMCC engine property file along with some command editing.  The MTH engine successfully demonstrated all the Train Controller issued commands that were programmed into the DCS bridge.  The hardware design of the DCS bridge is in Professor Chaos’s post.  Attached is the Train Controller to DCS bridge sketch.  A large majority of the work on the Train Controller TMCC to DCS bridge was done by Mark DiVechhio and Professor Chaos.  I just added a few edits.


Last edited by carl552
Original Post

Replies sorted oldest to newest

Congratulations. For those not familiar with the history, when TMCC came out in about 1996, several creative people made  equipment that would retrofit older locos with TMCC.  Train America Studios had the UCUB and Ed Bender had the TrainBrain if I recall correctly.  Lionel pretty much let them do this without a formal license of the technology.  I have a few postwar type locos with these.

In 2000 MTH produced PS2 locos and in 2002 they came up with the TIU/DCS remote, but made it clear that anyone trying to reverse engineer the system and sell retrofits would be receiving threatening letters from their lawyers.  That's been the state of affairs since. But with MTH essentially dissolving as a company, it will be interesting whether the new DCS company will license folks to do the sort of the thing you have done, but in a commercial way.  One can hope .  There's probably no business case for continuing this proprietary and restrictive approach I'd guess.  It may well have constrained MTH's market in the past, since many folks did not want to have to learn/buy two systems, and the TMCC/Legacy systems had a six year head start.

Add Reply

The DCS Forum is sponsored by
OGR Publishing, Inc., 1310 Eastside Centre Ct, Suite 6, Mountain Home, AR 72653
Link copied to your clipboard.