EasyDCC via Lantronix

I am currently running DecoderPro on my home Linux boxes, using a Lantronix ETS-4P.

What's that? It's a small box, with a handful of serial ports and an Ethernet connection. There's sufficient software built into the box to allow any computer to make a network connection to the terminal server, selecting which serial port the data stream should connect to. This means on the main computer, there's no serial port setup to mess with (it's just a simple TCP network connection). All of the serial setup is done on a box that's very specifically designed to make this easy.

I'm doing this because

Making the Cable

The first part I had to worry about was making a cable. The Lantronix box uses 8-pin modular plugs, and the EasyDCC command station uses a 6-pin modular plug. I had already made the necessary adapter from the 6 box modular to a DB-9 Female. I could have used a DB-9 made to Lantronix cable, if I had one handy. Alas, I didn't. And that's sort of a frankenstein's monster setup anyway.

The pinouts for EasyDCC are well documented (page 152 of my manual). The pinouts for the Lantronix are slightly harder to find, but available on the Lantronix web site (search product support for "pinouts", their search engine doesn't handle links well).

Lantronix

When looking at the 8-pin socket with the notch for the locking tab facing down the pins are numbered 1-8 left to right:

 12345678  
[||||||||]
[        ]
[__    __]
   |__|
12345678
RTSDTRTx+Tx-Rx-Rx+DSRCTS

EasyDCC

When looking at the 6-pin socket with the notch for the locking tab facing down the pins are numbered 1-6 left to right:

 123456
[||||||]
[      ]
[_    _]
  |__|
123456
TxGNDGNDRx

So it's a simple matter. Tx on one end to Rx on the other. Vice versa. Connect the grounds. Pull out the satin cable, a 6 pin connector, an 8 pin connector, expose the wires, re-arrange, and crimp.

This could have two 6 pin ends, but I chose one 6 and one 8 so that I couldn't get the cable installed wrong (the EasyDCC command station won't take an 8 pin plug).

On the 6 pin end, I just wired straight across. It was the easiest way and there's no reason not to. On the 8 pin end, I removed the middle two wires (they're of no use for this cable). Then I reversed the order (which handles the Rx-to-Tx connection) and laid them into pins 3-6. Crimp. Done.

Lantronix Configuration

Now it's an issue of setting up the Lantronix. I won't go into all the details. If you've got one, read the manual. If you don't, details won't matter to you.

Network

The machine is configured to receive an address upon boot via DHCP. I already have DHCP configured on my home network, so this wasn't much extra work. It received a fixed address, so I know what the address will be.

Serial Ports

This is the meat of the configuration. Set it up for 9600 baud, 8 data bits, 1 stop bit, no parity (9600,8,1,none) and no flow control. Configure it for remote access (so that connecting to the right network port will activate the connection to the serial port). Then turn off telnet padding. This gives you the complete data stream without modification.

On the Lantronix, make sure these are all DEFINEd, not SET, to ensure persistence across power cycles.

My configuration summary is shown below:

Local> show port 4
 
Port 4 : Username:                     Physical Port 4 (Idle)
                                                              
   Char Size/Stop Bits:         8/1    Input Speed:                 9600
   Flow Ctrl:                  None    Output Speed:                9600
   Parity:                     None    Modem Control:               None
                                                                         
   Access:                   Remote    Local Switch:                None
   Backward:                   None    Port Name:                 Port_4
   Break Ctrl:                 None    Session Limit:                  4
   Forward:                    None    Terminal Type:             Soft()
 
   Preferred Services:        (Lat)
                           (Telnet)
                                     
   Authorized Groups : 0
   (Current)  Groups : 0
 
   Characteristics:  Broadcast  Loss Notify  Verify

JMRI configuration

Buried away in the JMRI configuration is a Layout Connection choice called "EasyDCC via network". Select this, and then enter the hostname (or address) of the terminal server, then the network port number (on Lantronix boxes, this is 2000+the physical port number on the back of the box).

This is all it took to get things working. Please note that this configuration does NOT use the computer's serial port. On Linux boxes, this means you don't need to use or configure rxtx and javax.comm.

The Last Word

I've had this working now for just a short time. It's nice, since I can run DecoderPro from any computer at home, not just one with a serial port connected to the command station.

Kudos to Bob Jacobsen. I asked for a pointer as to where to start, in order to implement the JMRI changes myself. Just a couple of days later, he had done all the coding necessary. That's just wonderful support. I do love this open source community thing.