Skip to main content

Reply to "TMCC Control With Arduino"

Hi Don - it's pretty easy to read and write TMCC or Legacy commands to and from the command base serial ports.  As Rudy mentioned, a SER2 is the most convenient way to go. Do keep in mind that the earth ground (ground for the command base) is supposed to be isolated from layout common (outside rail).

If you take a look at this link, you can find some of my Arduino projects. "Train Control" is a very complex system that automates train control, controls switches, signals, and accessories, and communicates with JMRI running on a computer.  But you will find examples of how to send TMCC, Legacy, and DCS commands over the Arduino serial port.

"Uncoupler Monitor" is a much simpler program that listens to the serial stream from the command base, and activates a relay module in response to commands directed to ACC 1-8.  Essentially a cheap and customizable version of the ASC.

For layout control I like the Arduino Mega, because it has four hardware serial ports. For accessories like the uncoupler monitor I like the Arduino Pro Mini, which is very small and costs less than $10. I am fiddling with transmitting commands from the Legacy base to HC-12 radio modules, with Arduino Minis in rolling stock picking up the radio commands (like a cheap and customizable Mini Commander).



Hi Professor

I have been studying the information you sent and sorry to report, I am confused (to say the least). First of all, when I try to open the files my Mac says I can't read the files and opens Arduino and then all the Arduino file names come up one after theater saying I can't open them. I need to force close Arduino after that. I tried to follow the short page you sent with the train codes, but I don't know what to type in as the parameter items in your function. Is it possible for you to send me (use my email if you wish (davidt@hotray.com) the library that I will need, plus the function calls to perform four actions: 1) Blow a horn of a selected engine (44, 81, 85);  2) Stop a selected engine; 3) Start a selected engine; and 4) operate a turnout. I assume that before the actual function calls I need to have code lines that specify which serial terminals to use. In this case that would be 0(Rx) and 1(Tx).

I thank you.

OGR Publishing, Inc., 1310 Eastside Centre Ct, Suite 6, Mountain Home, AR 72653
800-980-OGRR (6477)
www.ogaugerr.com

×
×
×
×
×