Download and install JMRI®
JMRI Setup and Installation
JMRI environments...
Release Notes
Supported Hardware
Devices, command stations, networks, and protocols:
Source Code

JMRI Help:

Contents Index
Glossary FAQ

Donate to

Release Notes for JMRI 3.8 release

Date: July 3, 2014

From: Bob Jacobsen

Subject: Production version 3.8 of JMRI/DecoderPro is available for download.

We are very pleased to announce that the 3.7 series of JMRI test releases has resulted in a version that's good enough to be recommended for general use, including by new users. We're therefore making that version, "Production version 3.8" available for download today.


JMRI is now only available under the GNU General Public License. For more information, please see our copyright and licensing page.

This is the latest JMRI production or test version that will work with CATS 2.34 (Release2037)/Java 1.6.

New warnings for this version:

The decoder definition files have been reformatted to make them easier to maintain. If you want to make a change in a decoder definition file, please start with a file from this release or later.

The XmlIO web service has been deprecated and is scheduled to be removed in JMRI 3.11 (July 2015). All users who are relying on direct access to the XmlIO API are recommended to begin using the JSON API. inControl web throttle users are recommended to begin using webThrottle instead, or to plan on investing in devices that can support webThrottle, the iOS WiThrottle, or the Android Engine Driver.

This release has some changes to the application-initialization structure, particularly in the apps.Apps class. If you have written code of your own that runs applications based on JMRI, please check for use of deprecated methods.

The internals for handling CV read and write addressing have been extensively reworked. The change should be transparent (invisible) to users. If you have written code of your own involving CV reading, writing, storage or anything else, please check for compatibility and let us know of any problems.

The configuration structure for JMRI is changing to use Configuration Profiles. Configuration Profiles allow a single JMRI application to have multiple, user selectable, configurations that can be changed as application startup. For some users, this change will have no impact; other users will be visibly impacted by this change. See the Configuration Profiles help page for more information.

The JMRI SRCP implementation is undergoing extensive revision, in part due to testing with 3rd party SRCP clients and servers. If you are using the SRCP support, you will need to upgrade both the client(s) and the server to the same JMRI version.

The JMRI Web Server is being extensively rewritten. If you notice any problems using it, please let us know.

Known problems with this release

None at present

Download links:

This release is being developed via a series of test releases that contain multiple changes. See those release notes for more information.

Please use these links for downloading:

Changes since production release 3.6


Randall Wood added Configuration Profiles.

Matthew Harris:

Jeffrey Machacek made the following changes:

Matthew Harris updated the user interface font size change preference to no longer override the underlying font style.

The Web server has been extensively updated by Randall Wood and Steve Todd:

Steve Todd made the following changes:

Dave Heap made the following changes:

The "Export Roster" and "Import Roster" menu items will now write your whole roster to a single file, and then read that back in. You can use this to move your roster to another computer, for example. On import, you'll be asked to confirm that you want to import each roster entry. If there's already an entry with the same name (ID), you'll be asked if you want to replace it.

The Railroad name preference has been promoted from a Web Server setting to an application-wide setting.

In the Preferences under Start Up, you can now set buttons for Preferences, Profiles and Rebuild Roster.

You can now open a PanelPro- or Decoderpro-style main window from the DecoderPro3 files menu, complete with the full menus you'd find if you were running PanelPro or DecoderPro from scratch. Please let us know if anything isn't working as you'd expect.

Added a "Check for Updates" item under the help menu. If you want a button, you can configure it under startup preferences.

Read-only enum decoder variables now are disabled (grey-out) in the DecoderPro/DP3 interface. This includes as combo (selection) boxes, check boxes and radio buttons. They still track the CV value, but you can't change them yourself. This may cause unexpected side-effects, e.g. if a decoder file has improperly set read-only on a variable and nobody noticed because it wasn't visible.

New / Updated decoder definitions

Enzo Fortuna added many Italian translation terms, and fixed a couple of existing ones.

Pierre Billon provided more translation to French and German.

Bernd Wisotzki improved the German translation, and added additional German translation, particularly in the DecoderPro/DP3 presentation.

Resolved an issue that caused some CVs to be skipped in Read Full Sheet operations. Particularly noticeable with ESU V4 decoders.

Some improvements to the tooltips on the decoder selection window suggested by Alain Le Marchand.

Dave Heap made the following changes:


Alain Le Marchand added custom definitions for Atlas decoders sourced from Lenz (LE062XF, LE063FX) and NCE (N12A0, N12A1 and N12A2)


Peter Ulvestad updated the Bachmann "EZ Command 3 function decoder (36-553)" definition


Lou DeHayes provided a fix for the Digitrax DS54 decoder definition.

Alain Le Marchand provided multiple updates to the Digitrax decoder definitions (notably patch 979).

Doehler & Haass

Pierre Billon did a major update to the Doehler & Haass decoder definitions.


Dave Heap made the following changes:


Peter Ulvestad updated the Hornby 8249 default values.


Alain Le Marchand improved the Kuehn definitions


Peter Ulvestad contributed new decoder definitions for MRC 1641,1642, 1659 and 1664 N scale motor control only decoders.

John Crellin provided a decoder definition for the MRC Sound Brilliance 1806 and 1955.


Michael Mosher improved the QSI Version 9 decoder definition.


Dick Bronson updated the RR-CirKits decoder definitions.

Dick Bronson updated the Tower Controller Mark II decoder definition.

Support for the RR-CirKits MotorMan (r26387)


Ken Mazer added the Athearn GP40-2 and made some corrections to the Soundtraxx definition.

Dave Heap added a live Function Group Exchange feature on the Function Map pane for two sample Tsunami decoders (Diesel Genesis OEM and Steam Genesis OEM).

Alain Le Marchand made the following changes:

Tam Valley Depot

Robin Becker provided a decoder definition for the Tam Valley Depot Quad-LN_S decoder.


Pierre Billon contributed four additional TAMS decoder definitions.


Fixed a problem with the handling of decoder definitions that was causing certain TCS decoders (and perhaps others) to not display properly.

John Crellin added definitions for TCS function decoders.

John Crellin updated the TCS FL2 and FL4 decoder definitions

Team Digital

Ken Cameron has posted update for Team Digital SHD2 board.


Alain Le Marchand updated the Uhlenbrock 73400 definition:

Alain Le Marchand added and updated the following Uhlenbrock decoder definitions:


Nigel Cliffe updated the Zimo definitions to extend the volume controls.

Nigel Cliffe provided a new Zimo decoder definition.

New / Updated signal definitions - icons

Suzie Tall updated the BN 1989 signal definitions. Changes include:

  1. Additional panel icons to support the new signal mast definitions.
  2. A modified icon which was stopping the original 2-head mast from being added to a panel.
  3. Twelve new signal mast definitions.
  4. An updated index.shtml with a bit more information, reference to BN source and links to the new masts.
  5. An updated aspects.xml with the addition of an unlit appearance and corrections to the appearance definitions.

Suzie Tall contributed a new signal system definition for the LMS speed signalling that was installed in parts of the UK in 1932 and continued in use until 1988. The definition is as complete as is possible from the available documentation and covers all variations over the entire period of operation.

Suzie Tall added a new BNSF-1996 signal system.

John Lang updated the NTC 1956 signal files.

Suzie Tall added non-rotating icons to the BNSF-1996 signal set.

Jim Duncan provided a set of icons for building an Armstrong tower control panel.

Suzie Tall added signal definitions for the 2008 UP, 2010 Amtrak and 1931 Great Western systems.

Suzie Tall updated the LMS-1932 and CR-2008 signal sets.

Kevin Dickerson added some British Rail signal icons

Kevin Dickerson arranged for an error message to be presented if an icon file can't be found, instead of having it fail silently.

Hardware / Systems

Paul Bender improved support in the generic network client for automatic configuration. This includes improvements to the generic mDNS/ZeroConf/Bonjour automatic configuration tools.

Paul Bender updated the JMRI SRCP support in both the client and server to better conform to the letter of the SRCP protocol standard and improve compatibility with other SRCP implementations.

Steve Williams fixed a problem with LocoNet Simulator's reading of data files.

B. Milhaupt updated the LocoNet Download Firmware tool to provide automatic identification of the firmware file's address format as well as extensive checking of the firmware file for evidence of corruption or out-of-range parameters. These improvements significantly reduce the risk of corrupting a device's firmware when using this tool. The associated help file was expanded to suit.


Paul Bender updated the XPressNet network connections (LIUSB-Server, LIUSB-Etherenet, and XnTCP) to allow automatic reconnection attempts in the event of a dropped network connection.

Paul Bender added mDNS support to the Lenz LIUSBEthernet adapter.


Ken Cameron made the following changes:

Dave Heap made the following changes:


Intellibox support received a communications update (patch 978) to improve reliability of sensor readout.


Allow Turnout icons to be "momentary". (Sensor icons could already do this)

Dan Boudreau made the following changes to operations:

Pete Cressman made the following changes:

Ken Cameron has:

Added a "Power Button" item that you can configure to directly include a button. This is in addition to the existing "Open Power Controller" option.

Dispatcher - The delay trigger when running automatically is now correctly obeyed when using SignalMast Logics - KD

Layout Editor - Added a scroll bar to the top edit panel

Additions to Warrants




Nigel Cliffe and Dave Heap fixed problems with international characters in four Python scripts:

Added sample scripts:

Dave Sand fixed to use new string format for CV definitions.

Documentation / Help

Many additions to the tools for structuring conditional decoder definitions.

Peter Ulvestad updated the clinics information.

The JMRI Web server has been rewritten to support a more-unified appearance and to better provide dynamic, user customizable content.
If you wish to browse the /prefs directory in your browser, but get the old web server home page instead, you will want to remove the index.html file from your User Files directory.

Older versions of the JMRI manuals and associated PDF files have been moved out of the JMRI distribution. They are now available on the web. This was done to make it easier to keep the manual up-to-date, and reduce the download size. You may have to update your bookmarks.

Egbert Broerse updated the signaling help.

For developers

OpenLCB library updated to better handle hub operations.

Several internal updates for how CV reading and writing is changed to improve handling of indexed CVs. If you have your own code or scripts that write or read CVs directly, check to see if we've broken anything, please.

Improved the handling of decoders that contain only long addresses, no short addresses.

Dave Heap improved the handling of DCC addresses. The decoder terminology has been standardized. There's more checking of values, to prevent erroneous behavior when an out-of-range value is entered.

Dave Heap improved handling of long addresses in NCE consists

The internals for handling CV read and write addressing have been extensively reworked. The change should be transparent (invisible) to users. If you do notice anything problems involving CV reading, writing, storage or anything else, please let us know.

Dave Heap made the following changes:

Reformatted the decoder definition files using the xml/XSLT/normalizeDecoder XSLT transforms. This cleans up some ambiguous attributes, adds missing elements, and formats them into a consistent (comparable) style using xmllint. In the process some errors (usually missing elements) were found and fixed. There were also some refinements and additions to the XML schema for panes and decoders.

JMRI now implements a "transform-xslt" XML processing instruction for post-processing XML files with XSLT transforms. (If that doesn't mean anything to you, you can ignore the rest of this item). For an example of invoking this, see the test XML file and test XSLT transform.

Bug fixes

Fixed a problem that would leave the wrong DCC address on the DecoderPro roster pane at startup under certain circumstances.

Fixed a bug that would cause programming crashes in DecoderPro when using simulators.

User request to only print or preview trains in the Trains window that are selected. (r26300)

Fix bug where characters would exceed the line width in the two column format, and tabular disabled. (r26301)

Fix problem with local move of utility car. (r26308)

User request to only show trains that can service a location. (r26309)

Fix car type string length calculation. (r26329)

Put the creation of each block xml element into a try/catch. There is an issue where the block data isn't being saved but at this stage I have no idea what the trigger is and have had no log files from a user to help narrow it down or replicate it. Doing this will at least prevent all block data from being lost during a save. (r26333)

Ensure that the file paths are correctly loaded from the configuration file, and that the user files (preferences:) path is loaded before other paths. Ensure that the scripts path ends with a file separator character. (r26344)

Minor improvement in how the program determines maximum location and track names for manifests and switch lists. (r26347)