JMRI Hardware Guide: XPressNet

Overview

XPressNet is a Command Bus used by Atlas, Lenz, Hornby, OpenDCC (DIY), Paco Canada (DIY), ZTC Controls, Viessmann, 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 three 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)
  • Paco Canada's NanoX-S88
Partial

Operating Programming Feedback

  • Roco LocoMaus 2 (Roco Part number 10760)
  • Roco MultiMouse (Roco Part number 10810)
  • Hornby Elite
  • Paco Canada's NanoX
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

Operating Programming Feedback

  • Paco Canada's GenLI-S88 (adds Feedback to existing XPressNet System)
  • Paco Canada's RS2PC (adds RS-Bus based Feedback without XPressNet)
Unknown

These are untested, but should be at least partially supported

  • ZTC Controls ZTC521 (with XPressNet (aka X-Bus V3.0) software)
  • Hornby Select
  • OpenDCC's Command Center
  • Viessmann Commander
  • Roco 10830 multiZENTRAl-PRO

Computer Interfaces

There are currently twelve computer interfaces supported by JMRI:

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

Hornby

We provide support for the Hornby Elite using it's built in USB connection. The Elite can be used for operating equipment on a layout (running trains and throwing switches) and for programming from JMRI.

It is unknown at this point in time if we can control either an Elite or a Select using one of the other interfaces. Hornby's manuals warn against using their equipment with that of other manufacturers, so we expect some incompatibilities in this area.

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

NOTE: Roco calls their implementation of XPressNet RocoNet.

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.

The Roco multiZENTRAL-PRO (Roco Part number 10830) is the new command station for use with Roco's MultiMaus-PRO wireless throttles. The unit features a built in USB port, but it is unknown at this time how we can utilize it.

The multiZENTRAL-PRO also provides ports for connecting a RocoNet device (MultiMaus,LocoMaus 2, etc). These ports can be used to connect one of the supported XPressNet computer interfaces, but it is unknown at this point what, if any, limitations exist when using this connection.

OpenDCC

The OpenDCC Command Station should be supported by JMRI through either it's RS232 port or it's built in USB port.

We have no confirmation at this point in time that anyone has attempted this configuration.

Paco Canada

Paco Canada has two versions of his do-it-yourself Nanox DCC system available, both are compatible with JMRI.

The original NanoX DCC system supports operating equipment on a layout (running trains and throwing switches) and programming locomotives.

The NanoX-S88 adds feedback capabilities to the NanoX system. This feedback comes through the use of S88 compatible feedback modules.

Paco Canada also provides two methods for adding feedback to non-feedback equipped systems.

The Gen-LI-S88is an XPressNet interface that includes an S88 feedback module, so it can be used to add feedback to an existing XPressNet equipped layout.

The RS2PC interface allows adding Lenz (and compatible) RS Feedback Bus modules to a system that does not support the RS Feedback Bus. This device does not require an XPressNet connection.

Viessmann

The Viessmann Commander's Low Speed Bus port supports the XPressNet protocol. We should be able to use this to connect using one of the supported XPressnet computer interfaces, but the limitations of this port have not been determined.

Viessmann has indicated the Commander's built in USB port can only be used for updating the firmware and sending data to the commander, not for operating the device.

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 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. This option has been removed starting in version 2.9.5 Check Buffer Status When Sending? Defaults to "yes" on Windows and Linux, and "no" on MacOS 8/9 and Mac OS X. Except when debugging problems, you should leave this at the default.
  7. The series of radio buttons labeled "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 Mac OS 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. This option has been removed starting in version 2.9.5 Check Buffer Status When Sending? Defaults to "yes" on Windows and Linux, and "no" on MacOS 8/9 and Mac OS X. Except when debugging problems, you should leave this at the default.
  8. The series of radio buttons labeled "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 Mac OS 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 Lenz LIUSB and the Lenz LIUSB Server. (Windows Only)

NOTE: The first JMRI release supporting the Lenz LIUSB Server connection is 2.7.2
  1. To connect your computer to one of these XPressNet based DCC systems, you can use a Lenz LIUSB interface unit and the Lenz LIUSB Server software. 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 server with JMRI, you must first install the Lenz drivers and software. These are provided on the CD that comes with the LIUSB.

    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: to use the LIUSB server, you MUST install the Lenz software and the LI-Server must be running.

  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 Server" from the top selection box. There are no additional configuration steps required to use the LI-Server.
  5. The series of radio buttons labeled "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 Mac OS X respectively.
  6. 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.
  7. Click "Save". You'll be asked if it's OK for the program to quit, click "Yes".
  8. Restart the program. You should be up and running.

Connecting to an XPressNet based DCC System using a Lenz LIUSB Ethernet (Lenz Part Number 23151) via the Ethernet connection

NOTE: The first JMRI release supporting the Lenz LIUSB Ethernet connection is 2.13.7
  1. To connect your computer to one of these XPressNet based DCC systems, you can use a Lenz LIUSB Ethernet interface unit in ethernet mode. Connect the LIUSB to your DCC command station via their XPressNet connection, then connect the LIUSB Ethernet to your computer Network using i the supplied ethernet cable.

    When the device is properly connected to the XPressNet, the Red XPressNet LED will turn on.

    When the Ethernet is properly connected, a Green status LED will turn on. This LED is located on the ethernet port itself. drivers are installed, and the LIUSB is connected

  2. Once the device is connected, refer to the device documentation for information on setting the IP address. The default IP address is 192.168.0.200. Make note of the IP address for use when configuring the device.
  3. 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 Ethernet" from the top selection box. Enter the IP address you saved earlier into the box labeld "IP Address".
  5. The series of radio buttons labeled "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 Mac OS X respectively.
  6. 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.
  7. Click "Save". You'll be asked if it's OK for the program to quit, click "Yes".
  8. Restart the program. You should be up and running.

Connecting to the XPressNet Simulator

  1. 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.
  2. Select "XPressNet Simulator" from the top selection box. There are no additional configuration steps required to use the XPressNet Simulator.
  3. The series of radio buttons labeled "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 Mac OS X respectively.
  4. 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.
  5. Click "Save". You'll be asked if it's OK for the program to quit, click "Yes".
  6. 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. This option has been removed starting in version 2.9.5 Check Buffer Status When Sending? Defaults to "yes" on Windows and Linux, and "no" on MacOS 8/9 and Mac OS X. Except when debugging problems, you should leave this at the default.
  8. The series of radio buttons labeled "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 Mac OS 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. This option has been removed starting in version 2.9.5 Check Buffer Status When Sending? Defaults to "yes" on Windows and Linux, and "no" on MacOS 8/9 and Mac OS X. Except when debugging problems, you should leave this at the default.
  8. The series of radio buttons labeled "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 Mac OS 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.

Connecting 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 labeled "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 Mac OS 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 more information)