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 JMRI Donate to

Release Notes for JMRI 2.9.1 release

Date: January 7, 2010

From: Bob Jacobsen

Subject: Test version 2.9.1 of JMRI/DecoderPro is available for download.


This is a test release. Please post a note if you encounter any new or old bugs! And please back up your JMRI files before installing this, in case you want to go back to an earlier version.

This is the first in a series of test versions. We expect this series to end in a JMRI 2.10 (or perhaps JMRI 3.0) production release in Summer 2010.

It contains many new features, including:

along with lots of other changes and bug fixes. See the complete list below.

Some of the changes involved are quite extensive. They may require a certain amount of experience before they are working well. Therefore, this test version should be considered experimental.

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

New warnings for this version:

Due to a problem with the release build for this version, you may have to select "Rebuild Decoder Index" from the "Debug" menu to make all the new decoder types visible.

The JInput USB library was updated to the current version, which (should) fix problems on Windows Visata, Intel Macs and some Linux machines. We don't have a way to check this with all possible input devices, so please check to make sure that your USB-attached devices still work.

When loading an older panel file containing signal head icons, you may get WARN messages about "did not locate lunar icon file" and "did not locate flashlunar icon file". To make these stop, just store the file again so that it's rewritten in the most recent format.

Download links:

Please use these links for downloading:

Mac OS X:



Changes since production version 2.8

Kevin Dickerson added a way for systems to perform specific actions when the program is shutting down.

Kevin Dickerson made various changes in the eCons support to handle turnout events better and potentially reduce CPU overhead. Also handles double slip and three way points better.

Kevin Dickerson updated the storage code so that Signal Heads in panel files are saved using the new namedBeanHandle. This means that they will be remembered by their system name or user name, whichever you specified.

Paul Bender added a new sample script.

Dan Boudreau provided double-crossover and slip-switch track icons.

You can now display the log messages in a window by selecting "Display Message Log" in the "Debug" menu.

Added more information to the context window and the emailed problem report.

Dan Boudreau added two new operations features: The user can now enter engine weight. The train frame table column widths can now be changed and saved.

Andrew Crosland updated the CBUS support: Added bootloader, including support for extended frames. You can now set the adapter ID when using MERG CAN adapters.

Pete Cressman improved the route-finding logic in the Warrant support.

Kevin Dickerson made a number of improvements:

Kevin Dickerson fixed a problem with displaying existing sensor groups.

A number of internal methods that were deprecated in JMRI 2.5.1 have now been removed.

The JMRI web server now advertises itself via Bonjour/Zeroconf, so you can easily find it in a suitable web browser without having to know the IP address or name.

The included jmdns.jar (Zeroconf/Bonjour networking) library has been updated to version 3.0 to solve a problem with the program hanging at shutdown. This required no code changes.

Pete Cressman fixed a problem with integer comparisons in Conditionals.

Dan Boudreau and Pete Cressman fixed a problem with the order of saved PanelEditor items.

Pete Cressman made it so Conditional action items can be specified from a memory value using the syntax "@IMemory" for the device name - i.e. the name of the internal memory variable preceded by the "@" character. Note the particular value being referenced is not verified by Logix. It is the user's responsibility to have the correct value in the memory location when the Conditional's actions are executed. Errors encountered at Conditional execution time are reported on the console screen.

JMRI now contains support for more-prototypical signaling basic on "signal masts" and "aspects". The basic functions are in place, along with the start of some help pages. This is still being actively developed. There's a first set of signal definitions available for the AAR 1946 signaling system. We intend to have this fully available by the next JMRI production release in summer 2010.

Simple Signal Logic treats a flashing-red signal head (e.g. if set that way by a Logix) as if it was red when computing the proper color for a protecting signal.

Nelson Allison improved the scripts for running the Roco 46800 and 46902 cranes.

Pete Cressman fixed a problem that was preventing Reporter icons from loading in Layout Editor windows.

Dick Bronson provided a great set of icons for AAR and NYCS signal masts as part of the aspect-based signaling. The best way to see the icons is the AAR and NYCS aspect pages.

Brett Hoffman added support for sending roster information to the withrottle protocol.

Dan Boudreau improved the operations code to allow multi-line comments, and to better control the build order for trains.

Andrew Crosland updated the CBUS support for power-on events, improved handling of the handling of throttle errors, and added a warning dialog if a throttle user tries to select an address that's already in use.

Robert Coleman got initial support working for the Smart Home 2412s Insteon interface. It can be used to turn both Insteon and X10 adapters on and off.

Matt Harris updated the Windows installer to NSIS 2.46 to ensure complete compatibility with Windows 7 (addition of compatibility manifest entries)

Bob Bucklew provided an icon for the knock-out that fills unused positions in a USS CTC panel, now at resources/icons/USSpanels/Panels/knockout.gif.

Dan Boudreau fixed a subtle and nasty bug that was preventing the Turnout Operations configuration window from displaying properly under certain circumstances.

Paul Bender made a technical change to the XPressnet code to pass the message listener for the sending thread to the handleTimeout method in AbstractMRTrafficController. This allows subclasses to notify listeners if a message that they sent received a timeout message. The XPressNetTrafficController passes this information on to an XPressNetListener. This is currently used to fix a minor bug which caused the throttle to lock up if a message it sent did not receive a reply message (this happens occasionally with the Hornby Elite). Updated XNetMessage to allow setting the default values for the number of retries and the length of time before a timeout. Updated the sample script to include the notifyTimeout message routine.

Brett Hoffman updated the WiThrottle help.

Lionel Jeanson made some throttle updates:

David Duchamp added colors to the Layout Editor track.

David Duchamp added Dispatcher options.

Mark Waters added a new "Zimo MX680 v1-2" decoder type.

Pete Cressman added Learn-Mode recording from read throttles to the Warrant auto-run system.

The JInput USB library was updated to the current version, which (should) fix problems on Intel Macs and some Linux machines.

The error handling when reading files has been improved. Now, you'll get notified by a dialog box popping up with some details if e.g. something can't be created due to an error. Much more work is needed on explanations, etc, to make this complete.

Peter Ulvestad added a decoder definition for the MRC Sound Brilliance 1800, 1802, 1810 and 1811 decoders.

Dan Boudreau made some improvements to the tooltips in the NCE Macro editor.

Paul Bender fixed a timeout issue in the XPressNet support that mostly effected the Elite.