Release Notes for JMRI 2.9.5 release

Date: April 12, 2010

From: Bob Jacobsen

Subject: Test version 2.9.5 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 fifth 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. 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:

JMRI system names start with two capital letters, e.g. LT10 or NS23 or PLA5. Past versions have tried to cope when people enter lower cases letters, e.g. lt10 or Ns23 or pLA5, with various degrees of success. Unfortunately, the coping code isn't compatible with some new features that are being working on, and we have to remove it. Starting with this version, JMRI requires that you enter consistent system names, including using the right case. If you use system names, and haven't been using consistent names, you'll probably have to practice a little to get in the habit. If you have any problems reading old files, etc, please post a note on the JMRI Users group and somebody will help you.

The LocoTools application is no longer supported, and is being removed. Some parts of it are still present, but you should use e.g. PanelPro or DecoderPro instead. They can do everything that LocoTools can.

The preferences have been significantly reworked. In some cases, preferences to add a button or do an action at startup may have to be deleted and re-entered before they will work.

The communications libraries for Mac OS X have been updated. We've tested these extensively, but there may be combinations of hardware and software versions that still aren't right. If the program can't see your layout connection, please post to the JMRI Users group with what type of Mac you're using (PowerBook, PowerMac, MacBook, etc), processor type (PPC G3, G4, G5 or Intel) and Mac OS X version (10.4, 10.5, etc; names like Leopard are OK) too. We've got several library versions and most likely have one that will work, we just have to figure out which.

Older warnings

If you're using a Lenz XPressNet connection, please uncheck the "Check Buffer Status" box in the preference pane where you selected the Lenz protocol.

This version of JMRI uses the new communications libraries introduced in JMRI 2.9.3. On Windows, the installer should take care of all installation and deinstallation required. On Linux, you may have to install and/or uninstall various communications library parts, see the JMRI Linux pages for more info. On Mac, depending on which version you were previously using you may have to remove a communications library, see the JMRI Mac OS X page.

You may get some messages like:

WARNING:  RXTX Version mismatch
        Jar version = RXTX-2.2pre1
        native lib Version = RXTX-2.2pre2
For now, this should be considered normal. We'll try to get it removed before the next production release.

The JInput USB library was updated to the current version in JMRI 2.9.1, which (should) have fixed problems on Windows Vista, 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.

Known problems with this release

April 18, 2010: Throttle function buttons do not latch properly. The button property "lockable" doesn't work making all function buttons momentary.

Download links:

Please use these links for downloading:

Mac OS X:



Changes since test version 2.9.4

Pete Cressman fixed a small problem with the pop-up menu on locomotive icons.

Lionel Jeanson improved how throttle images are displayed to take less time and memory.

Several problems in the throttle were fixed. The most significant caused the function buttons to not work in certain circumstances. There were also problems with the default address 3, and when using an address that doesn't match a roster address.

Lionel Jeanson updated and added several Jynstruments:

Dan Boudreau fixed a problem that prevented icons with blinking .gif images from blinking.

While adding Sensors, Turnouts, etc, from their tables, the program used to just fail silently if you entered an address or system name that couldn't be used. Now, it will pop a dialog box to tell you that it's not creating the object and suggesting what's wrong. Technical note which most people can ignore: To do this, the various managers have been modified to throw a IllegalArgumentException if they can't process the input properly. If you encounter this in your own code, you can catch it and display an error, or just get a new name and try again.

As a technical improvement, Pete Cressman improved several of the JUnit tests so they don't leave windows lying around after then complete.

You "click" on things in the editor windows to have sensors change state, turnouts move, etc. This code has been improved to use the proper definition of "click" for each kind of computer that JMRI runs on.

Dan Boudreau improved how polling works when system connections get very busy.

Paul Bender fixed a crash when configuring connections over TCP/IP.

Matt Harris added a "(No Panels Available)" message to the Windows menu when there are no selections otherwise visible.

Pete Cressman added an edit menu to Memory icons in the editors.

Several problems with allocation of addresses in the JMRI throttle were fixed.

Rodolphe Braud updated the French translation with help from Dan Boudreau and Marc Fournier.

Some HP touch-panel displays don't properly general "mouse clicked" events, but only "more pressed" and "mouse released". To let them be used, a configuration option has been added on the GUI preferences pane to "use non-standard mouse events".

Matt Harris set the default backup option in the Windows installer.

Paul Bender fixed an error when starting with the LIUSBServer option configured. The LIUSBServer option works again after several releases where it did not.

Many improvements to the preferences window to make it more usable. The "tabbed" form that was optional in JMRI 2.9.4 is now the default.

If you have multiple connections defined, the Power Control tool now lets you select which one you want to operate under a "Connection" menu.

New versions of the RXTX library for Mac OS X is being provided, along with a special case for PowerPC processors.

Team Digital updated the definition for their SRC16 board.

Nigel Cliffe provided, a script for setting Zimo function options.

JMRI now has initial support for home automation devices that use the xAP protocol. Input sensors are available as JMRI sensors, and output devices as JMRI turnouts. We're very interested in finding more people to test this with their xAP home automation systems.

JMRI can now provide two LocoNet connections at the same time. You can configure two in the preferences, and the second one will have system names that start with "L2" instead of "L", e.g. "L2T1", "L2S1", etc. Note that you'll still get a warning about "duplicate connections" when saving the preferences, but you can ignore this. We'll make this part of the code smarter eventually.

Walter Thompson improved many help pages.

Kevin Dickerson did a huge amount of work on the preferences to improve their usability and completeness. The throttle and notification preferences are now available via the common preferences dialog under the "Edit" menu.

Michael Mosher provided a definition for the ESU LokSound Select decoder.

A problem when inverting LocoNet turnouts that are used for signal drivers was fixed.

Peter Ulvestad provided a decoder definition for the MRC Sound Brilliance 1812 decoder.

Michael Mosher and Jim Betz combined to update the TCS BEMF decoder definition.

Michael Mosher provided an MTH decoder definition.

First support for internationalization of decoder definitions is in place. In future releases, we expect to be able to provide DecoderPro in multiple languages, but we'll need a lot of help doing the needed translations.

Stephen Williams and Dan Boudreau made changes to the NCE throttle. Previously throttle commands bypassed the NCE command station software and were sent directly to the track (NMRA format). Now if you have the "2006 or later" eprom installed, throttle commands will behave like the a NCE throttle. For example, you can now address a locomotive in a consist by its address rather than its consist number.

The Throttle menu and preferences have been reorganized, hopefully to make their easier to understand and use.

Brett Hoffman updated the WiThrottle support: Added heartbeat for loss of connection, UDID for device ID, track power control. Added basic preferences support including using a fixed port #. Improved JmDNS shutdown.

The throttle preferences have been improved and updated.

Dan Boudreau and Steve Williams improved how consists are handled when using a JMRI throttle with an NCE PowerHouse Pro.

Matt Harris fixed a problem with CV124 in the ESU LokSound Select decoder definition.

David Duchamp updated Sections, Transits and related classes for automated running.

LocoNet/Intellibox connections can now also work at 115200 baud, though we continue to recommend lower speeds due to issues in the Intellibox flow control.

You can now invert EasyDCC turnouts.

Walt Thompson updated the help pages for adding Blocks, the speedometer, and the main DecoderPro in-program pages.

Peter Ulvestad updated the MRC 1665decoder definition and added a MRC 1825 definition.

Kevin Dickerson improved the way you add Turnouts and Sensors from their tables. When adding turnouts and sensors simply select the system that the turnout or sensor is connected to from the drop down list and then enter in the hardware address. There is no longer the requirement to enter in the system name prefix. There is also the ability to add a number of sensors/turnouts in one go (only some systems support this as of now). The format for entering in Sensor hardware addresses has been extended so that the user can now simply enter in the board address followed by input on that board, separated by a ":". This saves having to calculate the sensor id for some systems, however this method is still supported. Users should reference the help file in the add sensor window, for the correct format for their specific system. For more information, see the sensor add/edit help page.

Mike Mosher updated the QSI Version 7 definitions with a number of improvements, including hiding certain non-present variables and CVs so DecoderPro won't try to read them when they are not present. This is meant to reduce the problem with QSI decoders stalling while being read.

Peter Ulvestad updated the ESU Bachman 3 function decoder definition.

Giorgio Terdina's AutoDispatcher script is now distributed with JMRI.

Joan Carrancà updated the JInput library for better access to RailDriver units on Windows.

Bob Milhaupt fixed a bug in transponder messages in the LocoNet monitor.

Matt Harris updated the Windows launch tool to allow more customization.

Matjaz Krajnc provided better code and icons for the web throttle.

Tom Stack updated the Tsunami Diesel definition with more models.

Pete Cressman fixed a threading problem in warrants.

Fixed a threading problem when invoking sensor listeners from a waiting script.

Pete Cressman made some internal improvements to the throttle implementation classes.

Pete Cressman implemented following signal mast and head indications.