Release Notes for JMRI 4.0 release

Date: July 13, 2015

From: Matthew Harris

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

We are very pleased to announce that the 3.11 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 4.0" available for download today.

Notes:

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

This JMRI version requires Java 1.8. To use this or any later JMRI test or production releases, you'll have to update the Java on your computer to Java 1.8 or later.

Warnings:

See the JMRI 3.10.1 release note for older warnings that may be relevant to you if you're updating from an earlier version.

The old DecoderPro has been removed from the distribution package and DecoderPro 3 has been promoted to be the only available DecoderPro version. Existing custom launchers that launched the old DecoderPro should continue to function without change or issue. If you absolutely cannot use the new DecoderPro user interface, we suggest using PanelPro instead, as with the exception of a different icon and different fixed buttons on the main window, PanelPro has an identical user interface to the old DecoderPro. See below in Miscellaneous section for usage of "MakeOriginalDecoderPro.py" script. More information on "Retrieving "legacy" DecoderPro from versions prior to 4.0.x

JMRI 3.11.3, and therefore this version, removes some files that were present in earlier versions. Failure to remove these can result in some portions of JMRI (notably the web server) failing to function correctly. If you are updating an existing JMRI installation to this version on Linux, you must remove any older version of JMRI or unpack this version of JMRI in an alternate location. The recommended update procedures for JMRI on Microsoft Windows (run the installer) and Mac OS X (open disk image and drag to final location, e.g. Applications folder) remove/replace the older version of JMRI, ensuring that these obsolete files are not present.

This release uses JDOM 2.0.5, which requires some code changes if you are directly calling the parts of JMRI that interchange XML objects.

There are now separate settings for the default Service Mode Programmer and for the default Ops Mode Programmer. If you're using two or more system connections, this lets you use one connection for ops mode (on track) programming and another connection for your programming track. If you're using two separate connections, you should go to the Defaults pane on the Preferences window and check that those defaults were set properly.

If you are making a direct connection to a Intellibox unit via serial or USB, you will have to reselect your preferences. See the Uhlenbrock support page for instructions.

If you are using an NCE USB adapter, you will have to reselect your preferences the first time you use a JMRI 3.11 version (if you set them using JMRI 3.10 or earlier). See the page on configuring JMRI for NCE for instructions.

The Save button in the Preferences window now only prompts for restarts if required. There may be instances when pressing save incorrectly fails to prompt to restart JMRI or prompts to restart JMRI when it should not.

Because of internal code changes, this version of JMRI may not be compatible with CATS 2.34 or earlier. Keep using JMRI 3.10 with CATS until there's a CATS update that says it will work with JMRI 3.11.

The XmlIO web service has been removed. All users who were relying on the XmlIO API are recommended to begin using the JSON API. inControl web throttle users are recommended to begin using webThrottle instead, or invest in devices that can support webThrottle, the iOS WiThrottle, or the Android Engine Driver.

Known problems with this release

There's a problem with this release where it will hang if a LocoNet device (only LocoNet, not others like NCE, etc) isn't present where it was configured to be. The 4.0.1 production release was created to fix this. If you're encountering this, please update to JMRI 4.0.1.

The OpenLCB library in this version has a bug in its alias calculations which prevents JMRI from communicating occasionally. A patch has been submitted to the OpenLCB group. In the meantime, the workaround is to restart JMRI and/or the node and try again; that might allocate different alias values.

Download links:

We recommend that you verify the downloaded files using the provided sha256 key.

Please use these links for downloading:

Mac OS X: https://sourceforge.net/projects/jmri/files/production%20files/JMRI.4.0-r29647.dmg/download

sha256: 42354c8b23e5d88f2223b43728a0bca39cbbf432e34d54717c8610c2f2ac050a

Windows: https://sourceforge.net/projects/jmri/files/production%20files/JMRI.4.0-r29647.exe/download

sha256: 5e5fcc678b24dc4839db8c71eddeda4695ec71d61ac73967eda3481a9d351d96

Linux: https://sourceforge.net/projects/jmri/files/production%20files/JMRI.4.0-r29647.tgz/download

sha256: 6a085d88df1b457feed946a19d23ce0bfd714357422499f0f480352da4fa0e21

Changes since production release 3.10.1

Hardware Support

Default programmer choice
There are now separate settings for the default Service Mode Programmer and for the default Ops Mode Programmer. If you're using two or more system connections, this lets you use one connection for ops mode (on track) programming and another connection for your programming track. If you're using two separate connections, you should go to the Defaults pane on the Preferences window and check that those defaults were set properly. Some tools, like the Single CV Programmer and the DecoderPro main windows, will also allow you to select which system to use instead of relying on just the default setting.
"Direct" programming mode
Dave Heap added a new "Direct" programming mode choice for DCC systems (such as NCE) that use both the Direct Bit and Direct Byte operations when programming. Direct Bit and Direct Byte (when available) mean that the command station is told to use only one or the other, which might be useful with very old decoders.
Bachrus Speedometer

Dennis Miller made the following changes:

Digitrax LocoNet

Fixed a stall occasionally encountered when running a locomotive to measure a speed table via a LocoNet connection.

ESU - ECOS

Fixed an issue where the Loco Database from the Ecos wasn't always loaded correctly

Uhlenbrock Intellibox

The Uhlenbrock Intellibox support has been improved:

As part of all this, the Fleishmann connection type has been merged into the Uhlenbrock type. If you are making a direct connection to your Intellibox unit via serial or USB, you will have to reselect your preferences. See the Uhlenbrock support page for instructions.

MERG CBus
MRC
NCE
SPROG
Zimo MXULF

Signals

The aspects.xml file in each signal definition defines the speeds used for automated operation. These values are now required (by the schema check) for a valid XML file. Basic values have been added for all signal systems included in JMRI.

Egbert Broerse improved the signal-system and signal mast setup help files.

Dave Sand improved the SPTCO-1930 definitions.

Egbert Broerse improved the signal documentation.

Suzie Tall provided additional signal icons UP-2008 (Patch 1061)

Egbert Broerse improved the signaling system documentation

Balazs Racz: For single output signal head, whenever the underlying turnout changes (due to change in the turnout table, turnout feedback, or JMRI listening on the command bus and picking up a turnout change event), the signal head will adjust the displayed output. Also fixed a bug at JMRI startup: The single output signal head implementation was generating a turnout change command every time JMRI started up (at panel.xml load time).

Oscar Moutinho updated the DB-HV-1969 signals definition to improve speed control and icons

The signal speed defintion has been updated for consistent operation. Also, a release test has been added to keep it that way.

Randall Wood fixed a NullPointerException error sometimes seen when using signal definitions from a user's own files.

John Lang provided an update to NYCS-1956 to correctly handle held signals. (Patch 1068)

SPTCO-1969

New SPTCO-1969 signal system containing Semaphore, Searchlight and hybrid (semaphore with lower searchlight head) masts.
Does not reference the rulebook as web link because I cannot find it hosted anywhere. Mast files contain page references for the aspect appearances in the 1969 rulebook.
Provided by Suzie Tall, patch 1067

New / Updated decoder definitions

Dave Heap made the following changes:

BLI
Digitrax

Economy Series 6: version (CV7) starts with 51 instead of 52 (Alain Le Marchand)

SFX Sound Decoders: Extended Series 6 updated for 16bits Sound Projects v3.0 (John McMasters)

Doehler & Haass

Global update (Pierre Billon)

ESU
Fleischmann
MRC
RR-CirKits
SoundTraxx
TAMS
TCS
Trix
Zimo
Miscellaneous

Operations

New Features: Bug Fixes and Improvements:

Logix

Blocks

Preferences

The parameters for ramping speed changes used by Warrants and the Speed Map are now accessible through Preferences.

Clicking the Save button now prompts to restart only if the preferences have changed and if the change requires a restart. (Randall Wood)

Closing the Preferences window now prompts to save or discard preferences if the preferences have been changed. (Randall Wood)

A Warrants panel is added to Preferences. Warrants can now interpret the Aspect Speed Map four ways: % of Normal, % of Full Throttle, Miles per Hour or Kilometers per hour. A global Throttle Factor to aid trains in running at scale track speed is added. Also added is a combo box to set the layout scale. See the warrant's help documentation for details.

Allow startup files to be edited in the DecoderPro 3 preferences dialog.

Web Server

Fix an issue preventing the Web Throttle from handling certain turnouts. (Randall Wood)

Fix an issue preventing the Web Throttle from loading rosters. (Randall Wood)

Fix an issue preventing the Web Throttle from setting routes. (Ken Cameron)

Remove documentation and examples that use the XmlIO protocol.

The Web Server has been upgraded from Jetty 8.1.11 to 9.2.7. This is expected to improve performance, especially on constrained devices such as the Raspberry Pi. (Randall Wood)

Warrants

Pete Cressman made the following changes to warrants:

Miscellaneous