JMRI Hardware Guide: XPressNet

Overview

XPressNet is the Command Bus used by Atlas, Lenz, Hornby, ZTC Controls, and Roco. It was developed by Lenz. The XPressNet specification (available from the Lenz website) specifies the electrical communications standards and command set needed for devices to communicate with the command station. While the command stations support the same commands over the XPressNet connection, they do not all use the same connectors. It may be necessary to build an adapter to plug a device into a command station from another manufacturer.

Supported Hardware

Command Stations

The XPressNet protocol allows the DCC manufacturers that use it to select what functionality they wish to provide in their command stations. This functionality ranges from "supports all features" to "bare bones minimal". Unfortunately, this restricts the features you can access via JMRI - if the hardware doesn't support it, it isn't there to be used by JMRI.

In general, the features that JMRI cares about can be grouped into four areas - operating locomotives and turnouts on the layout, programming decoders on a programming track or in ops mode, and getting feedback from the layout (the state of turnouts, ops-mode feedback, etc). The following table tries to show what systems support these features. System specific limitations are also expressed in the Limitations section of this page

Full

Operating Programming Feedback

  • Lenz LZ100 based systems (software version 3.x)
  • Lenz LZV100 based systems (software version 3.x)
Partial

Operating Programming Feedback

  • Roco LocoMaus 2 (Roco Part number 10760)
  • Roco MultiMouse (Roco Part number 10810)
  • Hornby Elite
Minimal

Operating Programming Feedback

  • Atlas Commander
  • Lenz Compact
  • Lenz LH200
  • ZTC Controls ZTC511 (with Command Station Software version 4.0)

Operating Programming Feedback

  • Lenz BlackBox
Unknown

These are untested, but should be at least partially supported

  • ZTC Controls ZTC521 (with XPressNet (aka X-Bus V3.0) software)
  • Hornby Select

Computer Interfaces

There are currently seven computer interfaces supported by JMRI:

In addition, Paco Canada is developing a do-it-yourself XPressNet interface which works with JMRI. For more information, please see the GenLi project pages.

Limitations

JMRI

JMRI supports the current version (XBus/XPressNet Version 3.0). We may add XBus Version 1.0 and 2.0 support in the future which will allow all XBus based systems to work with JMRI.

Atlas

The Atlas Commander provides support only for operation of equipment on a layout (running trains and throwing switches) from JMRI. You cannot program decoders from a computer with the Commander.

If you have an Atlas Commander, and would like to use it to control your layout from the computer, an XPA and Hayes Compatible Modem may be a more cost effective solution than the LI100,LI100F,LI101F,or LIUSB

Lenz

We have a pretty good handle on what instructions each Lenz Command station should support. If you find that you cannot perform a function you think you should be able to using a Lenz system and the LI100, LI101F or LIUSB, please let us know.

LZ100 and LZV100-based systems support the full range of JMRI functionality. The LZ100 is the command station used in the Set-01. The LZV100 is the command station used in the Set-90, Set-100, and Set-LI.

The LH200 provides support only for operating equipment on a layout (running trains and throwing switches) from JMRI. The LH200 is the command station used in the Set-02. You can't program decoders from a computer with Set-02.

The Compact is the same device as the Atlas Commander, and has the same restrictions as the commander. The Compact is not available in North America.

If you have either an LH200 or a Compact, and wish to add computer control to your layout, an XPA and Hayes Compatible Modem may be a more cost effective solution than the LI100, LI100F, LI101F, or LIUSB

The BlackBox is a standalone decoder programmer. It can be connected through an XpressNet interface (such as the LI101F, etc) with a suitable cable. There are some instructions for creating that cable in the LZV100 manual. The BlackBox only does programming, and cannot operate either locomotives or accessory decoders (turnouts) on the layout.

Roco

The Roco LocoMaus 2 (Roco Part number 10760) has been shown to support operating equipment on a layout (running trains and throwing switches) as well as programming locomotives on the programming track.

For programming in service mode, the LocoMaus2 appears to only be able to write to CVs.

It is not known at this point in time if the LocoMaus 2 supports Operations Mode Programming.

The LocoMaus 2 does not support feedback.

The Roco MultiMaus (Roco Part number 10810) has been shown to support operating equipment on a layout (running trains and throwing switches) and programming locomotives in both service and operations mode.

ZTC

The ZTC Controls ZTC511 (with Command Station software version 4.0) has been shown to support operating equipment on a layout (running trains and throwing switches). The ZTC511 does not support any programming operations from XPressNet devices.

The onboard serial interface of the ZTC511 is not supported at this point in time.

The ZTC521 (with XBus V3.0 software) has yet to be tested, so the full extent of what is supported is not known at this time.

You can use any of the Lenz or ZTC interfaces listed above to connect to a ZTC system that supports the XPressNet (aka X-Bus V3.0) protocol.

If you have either a ZTC system and wish to add computer control to your layout, an XPA and Hayes Compatible Modem may be a more cost effective solution than one of the purpose built interfaces.

XPA and Hayes Compatible Modem

If you choose to use an XPA and a Hayes Compatible Modem to control your XPressNet based system, you will be limited to control of locomotives and accessory decoders. You cannot program decoders from a computer using the XPA, regardless of which system you have.

Connecting to an XPressNet based DCC System using a Lenz LI100, LI101F, or LI101F

  1. Connect your Lenz LI100, LI100F, or LI101F to your DCC Command station via their XpressNet connections. Then connect the LI100/LI100F/LI101F to the computer's serial port using a 9-pin serial cable.
  2. Then go to the preferences panel of a JMRI-based program. This opens automatically the first time a program is run, or you can select it from the "Edit" menu.
  3. Select your Lenz interface (LI100,LI100F, or LI101F) from the top selection box. You can then select the proper serial port in the second selection box.
  4. The baud rate selection box should be set to match your LI100, or LI100F, or LI101F. From the factory, the LI100 and LI100F are set to 9600 baud. The LI101F is set to 19,200 baud.
  5. The fourth box should be left on "hardware flow control" unless you later consistently get a message about the LI100 control leads being improperly set up, in which case you might want to try to bypass that by selecting "no flow control".
  6. Check Buffer Status When Sending? Defaults to "yes" on Windows and Linux, and "no" on MacOS 8/9 and MacOS X. Except when debugging problems, you should leave this at the default.
  7. The series of radio buttons labelled "GUI style" allows you to select how the program will look. "Metal" is the native Java look available on all types. Other choices will vary with your computer type. "Motif", "Windows", "MacOS" and "MacOS Adaptive" look native on Linux, Windows, MacOS "Classic" and MacOS X respectively.
  8. In the bottom selection box, you can pick the default programmer format. You can override this each time you open the programmer, so this is here just for convenience.
  9. Click "Save". You'll be asked if it's OK for the program to quit, click "Yes".
  10. Restart the program. You should be up and running.

Connecting to an XPressNet based DCC System using a Lenz LIUSB.

  1. To connect your computer to one of these XPressNet based DCC systems, you can use a Lenz LIUSB interface unit. Connect the LIUSB to your DCC command station via their XpressNet connections. Then connect the LIUSB to your computer's USB port using the supplied cable.
  2. In order to use the LIUSB with JMRI, you must first install a software driver on your computer. Internally, the device contains a FTDI FT232BM USB to Serial converter. There are two drivers available for this device, make sure you obtain the Virtual Comm Port (VCP) driver.

    The device drivers for Windows are included on the CD that comes with the device.

    The device drivers for Linux are included with recent versions of the Linux kernel

    Device drivers for Linux, and MacOS (8,9 and X ) and Windows are available from the FTDI website. (A direct link to the drivers that is current as of this writing is http://www.ftdichip.com/Drivers/VCP.htm)

    When the device drivers are installed, and the LIUSB is connected to both your PC and your DCC system, the LIUSB should have a Red LED turned on, indicating the XPressNet connection is OK, and a green LED turned on, indicating the USB connection is OK.

    NOTE: If you have installed the Lenz software, make sure none of it is running. This includes the LI-Server, which may be running in the background.

  3. Once the drivers are installed, you are ready to configure JMRI. Start one of the JMRI-based programs, Then go to the preferences panel. This opens automatically the first time a program is run, or you can select it from the "Edit" menu.
  4. Select "Lenz LIUSB" from the top selection box. You can then select the proper serial port in the second selection box.
  5. The baud rate selection box should be set to 57,600 baud.
  6. The fourth box should be left on "hardware flow control" unless you later consistently get a message about the LIUSB control leads being improperly set up, in which case you might want to try to bypass that by selecting "no flow control".
  7. Check Buffer Status When Sending? Defaults to "yes" on Windows and Linux, and "no" on MacOS 8/9 and MacOS X. Except when debugging problems, you should leave this at the default.
  8. The series of radio buttons labelled "GUI style" allows you to select how the program will look. "Metal" is the native Java look available on all types. Other choices will vary with your computer type. "Motif", "Windows", "MacOS" and "MacOS Adaptive" look native on Linux, Windows, MacOS "Classic" and MacOS X respectively.
  9. In the bottom selection box, you can pick the default programmer format. You can override this each time you open the programmer, so this is here just for convenience.
  10. Click "Save". You'll be asked if it's OK for the program to quit, click "Yes".
  11. Restart the program. You should be up and running.

Connecting to an XPressNet based DCC System using a ZTC ZTC640.

  1. To connect your computer to one of these XPressNet based DCC systems, you can use a ZTC ZTC640 interface unit. Connect the ZTC640 to your DCC command station via their XpressNet connections. Then connect the ZTC640 to your computer's USB port using the supplied cable.
  2. In order to use the ZTC640 with JMRI, you must first install a software driver on your computer. Internally, the device contains a FTDI FT232BM USB to Serial converter. There are two drivers available for this device, make sure you obtain the Virtual Comm Port (VCP) driver.

    The device drivers for Windows are included on the CD that comes with the device.

    The device drivers for Linux are included with recent versions of the Linux kernel

    Device drivers for Linux, and MacOS (8,9 and X ) and Windows are available from the FTDI website. (A direct link to the drivers that is current as of this writing is http://www.ftdichip.com/Drivers/VCP.htm)

    When the device drivers are installed, and the ZTC640 is connected to both your PC and your DCC system, the ZTC640 should have a Red LED turned on, indicating the XPressNet connection is OK, and a green LED turned on, indicating the USB connection is OK.

  3. Once the drivers are installed, you are ready to configure JMRI. Start one of the JMRI-based programs, Then go to the preferences panel. This opens automatically the first time a program is run, or you can select it from the "Edit" menu.
  4. Select "ZTC Controls ZTC640" from the top selection box. You can then select the proper serial port in the second selection box.
  5. The baud rate selection box should be set to 19,200 baud.
  6. The fourth box should be left on "no flow control".
  7. Check Buffer Status When Sending? Defaults to "yes" on Windows and Linux, and "no" on MacOS 8/9 and MacOS X. Except when debugging problems, you should leave this at the default.
  8. The series of radio buttons labelled "GUI style" allows you to select how the program will look. "Metal" is the native Java look available on all types. Other choices will vary with your computer type. "Motif", "Windows", "MacOS" and "MacOS Adaptive" look native on Linux, Windows, MacOS "Classic" and MacOS X respectively.
  9. In the bottom selection box, you can pick the default programmer format. You can override this each time you open the programmer, so this is here just for convenience.
  10. Click "Save". You'll be asked if it's OK for the program to quit, click "Yes".
  11. Restart the program. You should be up and running.

Connecting to an XPressNet using the Hornby Elite's built in USB connection.

NOTE: The first JMRI release supporting the Hornby Elite's built-in USB connection is 2.1.2
  1. To connect your computer to the Hornby Elite using it's built in USB connection, connect your Hornby Elite's USB port and the computer's USB port using the supplied cable.
  2. In order to use the Hornby Elite's built in USB port, you must first install a software driver on your computer.

    The device drivers for Windows are included on the CD that comes with the device and from the Hornby Website.

    It is unknown at this point if there are device drivers available for MacOS or Linux.

    The Hornby Elite has a Green LED that illuminates when it is recognized by the computer.

  3. Once the drivers are installed, you are ready to configure JMRI. Start one of the JMRI-based programs, Then go to the preferences panel. This opens automatically the first time a program is run, or you can select it from the "Edit" menu.
  4. Select "Hornby Elite USB port" from the top selection box. You can then select the proper serial port in the second selection box.
  5. The baud rate selection box should be set to 19,200 baud.
  6. The fourth box should be left on "no flow control".
  7. Check Buffer Status When Sending? Defaults to "yes" on Windows and Linux, and "no" on MacOS 8/9 and MacOS X. Except when debugging problems, you should leave this at the default.
  8. The series of radio buttons labelled "GUI style" allows you to select how the program will look. "Metal" is the native Java look available on all types. Other choices will vary with your computer type. "Motif", "Windows", "MacOS" and "MacOS Adaptive" look native on Linux, Windows, MacOS "Classic" and MacOS X respectively.
  9. In the bottom selection box, you can pick the default programmer format. You can override this each time you open the programmer, so this is here just for convenience.
  10. Click "Save". You'll be asked if it's OK for the program to quit, click "Yes".
  11. Restart the program. You should be up and running.

Connecting to an XPressNet via an XnTcp adapter.

NOTE: The first JMRI release supporting the XnTcp adapter is 2.1.5 More information on the XnTcp adapter can be found on its home page.

Instructions for configuring JMRI to connect to an XnTcp adapter can be found on the adapters configuration page.

During configuration, the program tries to find all interfaces available on the LAN by broadcasting a UDP request. Any adapter(s) present will reply with their NetBios name, which can then be selected. The preferences store the NetBios name of the interface, rather than the storing the IP address digits, since the IP address can change due to DHCP addressing.

Connectiong to an XPressNet based DCC System using the XPA and a modem

We have developed an alternative method for connecting to an XPressNet based system which should prove to be more cost effective on XPressNet based systems that do not support programming or feedback via the LI100, LI100F, or LI101F computer interfaces, or for those who are interested in experimenting with computer control, but don't need all the features supported by the Lenz interfaces.

This system uses the Lenz XPressNet Phone Adapter and a Hayes Compatible modem to provide control of locomotives and stationary decoders.

  1. Connect your computer to a Hayes Compatible modem - either a built-in modem card or an external serial modem.
  2. Next, Connect the "Phone In" jack on your XPA to the "Wall In" jack on your modem using the cable supplied with the XPA for connecting a telephone to the XPA.
  3. Then go to the preferences panel of a JMRI-based program. This opens automatically the first time a program is run, or you can select it from the "Edit" menu.
  4. Select "XPA-Modem" from the top selection box. You can then select the proper serial port in the second selection box.
  5. The baud rate selection box should default to 9600 baud. At this point in time, this can not be changed.
  6. The series of radio buttons labelled "GUI style" allows you to select how the program will look. "Metal" is the native Java look available on all types. Other choices will vary with your computer type. "Motif", "Windows", "MacOS" and "MacOS Adaptive" look native on Linux, Windows, MacOS "Classic" and MacOS X respectively.
  7. In the bottom selection box, you can pick the default programmer format. You can override this each time you open the programmer, so this is here just for convenience.
  8. Click "Save". You'll be asked if it's OK for the program to quit, click "Yes".
  9. Restart the program. You should be up and running.

Documentation

Off Site Documentation

JMRI Documentation

XPressNet Specific Tools

The following XPressNet Specific Tools are provided as part of the JMRI package (click on the name for mor information)