JMRI® connects to...
Supported Hardware
Devices, command stations, networks, and protocols:
By the community of
JMRI tools for working with your layout:
Layout Automation
Use JMRI to automate parts of your layout and operations:

JMRI Help:

Contents Index
Glossary FAQ

Donate to

Hardware Support: ESU ECoS

Supported Hardware

Command Station

JMRI can connect to an ESU ECoS command station via an Internet connection.

Support for ECoS was first available in JMRI 2.3.3.
Support for the ECoS Throttle was first available in JMRI 2.7.4.
Support for the ECoS s88 Feedback Sensors was first available in JMRI 2.7.9.
Support for the ECoS RailCom Feedback was first available in JMRI 2.99.7.


Programming on the programming track is supported by the ECoS from firmware version 4.1. Programming on main is available from firmware version 4.2.3. Additional information on the ECoS can be found on the ESU web site.

Consisting is not yet supported.



To configure the connection:

Turnout, Sensor and a basic Throttle and power support is available for a JMRI-connected ECoS unit.


Only basic support for Throttles via the ECoS is supported. When an entry from the Roster, or a DCC address is directly entered into the address field, JMRI will check the existing list of ECoS Locos for a match on the first DCC address it comes across. If there is no match, the Throttle will create an entry in the ECoS database which will be listed as "Created By JMRI" with a default of 128 speed steps.
From version 2.9.4 when you close down JMRI, you will be prompted to either delete or keep the entries in the ECoS.

Consisting is NOT supported.


ECoS-connected Sensors on the s88 bus have names like "US100:01", where "U" is the system name for esU ECoS, "S" means sensor, "100" is the s88 board address registered in the ECoS, and "01" is the port on that board.


ECoS-connected Turnouts have names like "UT123", where "U" is the system name for esU ECoS, "T" means turnout, and "123" is the address.

ECoS initialisation

When JMRI first starts up, it reads the Turnout, Sensor and Locomotive information from the ECoS, which might take a couple of seconds. Turnouts and Sensors are both automatically added to the JMRI Sensor Table. This is necessary so that a link can be made between the Sensors and Turnouts configured in the ECoS and the accessory address that JMRI uses.
While gathering the Locomotive information from the ECoS, JMRI will check to see if there is already a Roster entry associated with each Loco. If the check fails, the system will ask if you wish to add/import the Loco to the JMRI Roster.


ECoS Loco Database

The ECoS Loco Database tool allows you to view all the Locos that are configured on the ECoS, assign them to a JMRI Roster entry or Import it in to the JMRI Roster.

Importing Locos from the ECoS

When importing a Loco into JMRI, the program currently only creates a skeleton record that contains the Loco Name along with the decoder type - if selected - and the Loco DCC Address. This process does not currently import into JMRI any CV values stored on the ECoS.

Exporting Locos to the ECoS

When a new Roster entry is created in JMRI, you will be asked if you wish to add the Roster entry into the ECoS Database. The ECoS entry will use the Roster ID as the Loco Name, set the speed steps 128, and set the Loco Address. The number of speeds steps may later be changed in the ECoS Preferences menu.
Use the Add Loco to ECoS tool to manually copy a Roster entry from JMRI to your ECoS.



Third Party info

For more information on ESU ECoS, please see: