Release Notes for JMRI 2.7.8 release

Date: November 15, 2009

From: Bob Jacobsen

Subject: Test version 2.7.8 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 eighth in a series of test versions. We expect this series to end in a JMRI 2.8 production release in December 2009.

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:

XML input processing has been reworked. This shouldn't have any impact on users, but might effect people who have written scripts to read or write XML files. See the XmlFile Javadoc for more information.

Linux users might encounter a problem with certain "Look and Feel" selections in the preferences. We've had reports of problems with "Nimbus" and "GTK+". "Metal" and "CDE/Motif" seem to be OK. If you get odd errors while loading panels, try opening the preferences and selecting another appearance. We're working on a more basic fix for this.

Warnings from older versions:

If you're using the "Function Label" or "Roster Image" panes with the DecoderPro "Comprehensive" programmer format, you should change to using the "Advanced" format. You select this at the bottom of the window when opening a locomotive for editing, or via the JMRI Preferences window.

Changes in JMRI 2.7.7 to the internal structure of the classes for the throttle windows (not the throttle classes themselves) may cause trouble for scripts that were using them.

JMRI 2.7.7 uses a different set of libraries for processing the XML panel files. In turn, this means that if you've created your own startup scripts, you may need to adjust them.

Starting in JMRI 2.7.6, the Windows installer puts the Java libraries (jar files) in a lib subdirectory. This is the same layout used on Linux and Mac OS X, and makes the JMRI program directory much more organized and easier to understand. If you have your own custom startup scripts, you may have to adjust them to the new library location. If you're just using the JMRI installer and its startup tools, you shouldn't have to change anything you do.

The orientation of the coordinate system in the new audio support changed in JMRI 2.7.6. Starting with that release, when you are looking at the model railroad, X is positive toward the right, Y is positive into the layout (away from you), and Z is positive upward. If you wrote scripts using the new audio support with JMRI 2.7.5, you'll have to swap axes.

The new audio support in JMRI 2.7.5 requires some new libraries. Those libraries are included in the JMRI downloads. They, in turn, require that the startup scripts include the new libraries, so these have also been modified. The 2.7.4 and earlier scripts will not work with 2.7.5 and later. In particular, if you've created your own copies of startup scripts, you'll have to update those:

If your roster contains locomotives with Soundtraxx Steam Tsunami decoders, you should migrate those roster entries to the new decoder definition names. We've created a tool to make that easier. For information on how to use that tool, please see the separate note.

JMRI 2.7.4 changes the way filenames for icons, etc, are stored in XML files by JMRI. The advantage is that this new method will make it much easier to move panel files from one computer to another, even of a different type. So long as you keep all your files in the JMRI preferences directory on both machines, the files should just move over without trouble. The warning is that files written in this format will not be properly read by JMRI versions before 2.7.4. This includes files from earlier versions that are read by JMRI 2.7.4 or later and then written out again, as the program will update them to the new format upon storing them.

Download links:

Please use these links for downloading:

Mac OS X:



Changes since test version 2.7.7

Lionel Jeanson added a window listing active throttles.

The default memory limit on Mac OS X has been increased.

Kevin Dickerson fixed a problem with multi-sensor icons.

Randy McKenzie contributed some additional background images for CTC panels.

XML input processing has been reworked. This shouldn't have any impact on users, but might effect people who have written scripts to read or write XML files. See the XmlFile Javadoc for more information.

Kevin Dickerson added features to add locos to the roster from an Ecos command station, and to add locos from the Ecos to the Roster.

Kevin Dickerson fixed a problem using an SPROG command station with multiple layout connections.

Nigel Cliffe contributed an update for the CT Elektronik SL version 40 decoder definition

Nigel Cliffe contributed an update for the ZTC 471 decoder definition

Paul Bender improved error handling and reporting for the XPressNet ops-mode programmer

Giorgio Terdina added an Entry column to the Entry Point table in the Add/Edit Section window of the Section table to make it easier to set entry point direction.

Dan Boudreau added code to detect and report when any changes occur to a train. He also improved save coverage when terminating the program.

Kevin Dickerson added lunar signals to the Layout Editor.

Paul Bender added ops mode programming for the Hornby command station.

Lionel Jeanson added initial support for "Jynstruments", a was to extend the JMRI user interface with scripts. For more information, see the README file.

Lionel Jeanson added a button so you can remove images from a roster entry.

Lionel Jeanson did some code cleanup and minor fixes in the throttle GUI, and in the abstract throttle internal code.

Lionel Jeanson improved the way release/dispatch is handled for multiple LocoNet throttles.

John Plocher improved the DS54 help page.

Peter Ulvestad added the Digitrax DZ123MO decoder.

Lionel Jeanson fixed the multi-throttle release issue in LocoNet by better monitoring slot status in LocoNet Throttle.

Kevin Dickerson made a number of internal changes to the layout and panel editors.

Peter Ulvestad updated the Atlas Dual Mode and four function (342 and 345) decoder definitions to add the factory reset and update some limits and defaults.

The "Send Problem Report" option in the main Help menu now works. The messages are filed in a dedicated Google group.

Kevin Dickerson improved the file-load dialog so that it doesn't give an error message if the user cancels the load.

Dan Boudreau made a small change in how operations staging works. Previously any car in staging could be assigned to a train. Now the cars in staging must also be serviced by the train being built. Also, users can name tracks using -number suffix. Suffix isn't printed for manifests or switch lists.

Pete Cressman modified the create/edit dialogs for state variables and actions in Logix to organize them according to item type (e.g. Sensors, turnouts, etc.). The column expandability has been somewhat improved.

Pete Cressman added new sub-menu under "Tools - Tables" called "Occupancy Blocks". This is a sub-system for defining elements needed to run trains with automated commands through "Warrants". Some of the features of Warrants are:

  1. Routes can be determined by merely choosing the start and end points.
  2. Throttle commands are recorded in a "Learn Mode" that are then played back for automated running.
  3. Turnout and Signals are set automatically for automated running.
Warrants need to have the layout described in terms of the elements defined by the Occupancy Block Table. Although intended to operate with block detection, warrants can run trains without it, however in this case, there is no protection against misaligned turnouts or cornfield meets. Detailed information can be found in the Help files on the Occupancy Block Table menu.