Release Notes for JMRI 4.14 release
Date: December 23, 2018
From: Bob Jacobsen
Subject: Production Release 4.14 of JMRI/DecoderPro is available for download.
We are very pleased to announce that the 4.13 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 Release 4.14" 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.
Update From Older JMRI Versions
If you are currently using JMRI 4.9.6 or earlier, we strongly recommend that you update to
JMRI 4.12 and make sure that's running OK before
updating to this release release. There have been a number of
changes in serial port support, panel file format and configuration options since those earlier releases,
and moving to the stable JMRI 4.12 release
is a good way to work through any possible problems.
If you are currently using JMRI 4.7.3 or earlier on Linux or macOS (Windows doesn't need this),
you must
update to JMRI 4.12 and
carrying out the migration process described in the JMRI 4.12 release note
before updating to this release.
Known problems with this release
New warnings for this production release:
- This release changes how "Internal" Throttles, Consisting, CV Programmers and Command Station
references are configured. This is done to avoid accidentally getting
one of these configured as a default instead of using your attached hardware device
(the dreaded "programmer always reads 123" condition).
Most JMRI users will not have to do anything.
If you do need to use
an internal version of these, please go to preferences and add an internal "None"
connection in addition to the ones you already have, then set defaults.
Older warnings
See the
JMRI 4.12 release note for more warnings predating the 4.13 development series.
These may be relevant to you if you're updating from an earlier version.
When running JMRI using Java 9 or Java 10,
the script import statements need to be fully-qualified:
in addition to 'import java', you might need 'import java.beans'
and others.
Since JMRI 4.11.8
Some new display capabilities were introduced into Layout Editor
during JMRI 4.11-series development.
This release changes some of the defaults in this area, which might
change the appearance of some track segments on your panels if they're
still using default values. If you select them and change their properties,
then save your panel file(s), you can restore their previous appearance.
There's a
PDF document
with more details.
We apologize for the inconvenience.
Since JMRI 4.11.8
Because of changes to the "node identification" algorithm used to tell
one computer running JMRI from another, you might receive a warning message
about the "Node Identity" the first time you run JMRI version 4.11.8 or newer. (If you
have more than one profile, this can happen with each). There's no permanent
problem here, but you might have to reset your window preferences (i.e. position
and size, column layout, etc) in this case.
We apologize for the inconvenience.
Since JMRI 4.11.4
If you are running a local website with a copy of the JMRI content, as
described here,
please repeat
the "setSymLinks.sh" step
near the bottom of those instructions
after installing JMRI 4.11.4 (or later). This will make some new formatting available
on your local site.
Since JMRI 4.11.4
There are issues with the Pi-SPROG One command station operation. A number of workarounds should be applied:
- Do not turn on the track power until the power supply to the Pi-SPROG ONE is turned on
- Do not enable extra debugging through default.lcf, nor open the system console window
- Do not open the SPROG console window
- Disable power conversion (CV 29) in all locos
- If connecting via VNC (or similar), setup the screen layout before turning on the track power
Pi-SPROG One with version 2.4 or earlier firmware will cause a timeout after a track short circuit. A dialog box
will open to inform the user of this. The track power will be turned off and must be turned on again using the power
control.
Since JMRI 4.11.2
The system connection preferences (i.e. hardware preferences) are now
enforcing the correct form
for system prefixes: One upper case letter,
optionally followed by a number (one or more digits, e.g. "L12").
Existing prefixes in existing configurations are unchanged, but
new ones will have to have the correct form.
Download links:
Please note that the download links in this and future JMRI releases link to
Github servers.
People are welcome to distribute the download files further via other websites, etc.
If you want to check that you've received original, unmodified versions, please
check the files against the checksums shown below.
The full lists of changes in each of the preceding test releases
(4.13.1,
4.13.2,
4.13.3,
4.13.4,
4.13.5,
4.13.6,
4.13.7)
are available in our
GitHub code repository.
Hardware Support
DCC++
- Costin Grigoras updated the DCC++ support
to periodically refresh the function values.
LocoNet
- Fixed scrolling in the LocoNet configuration tool panels
- Added the ability to see and select the DCC track signal "Idle" state within the Power Control tool.
This enables JMRI users to know when the Digitrax command station has placed the track signal into the "Idle" state,
and enables JMRI users to select that "Idle" state.
MERG CBUS
- There was work done on MERG consisting
- The MERG CBUS help screens where improved
- Improved MERG Event Capture
- Steve Young made a number of updates to the
MERG CBUS support:
CBUS Event Table Update,
MERG CBUS Event Table Updates ,
Merg cbus event table Java bugs + CAN frame send + test OPC to bundle move ,
cbus swing bugfixes ,
Merg Cbus bundle transfer ,
MERG CBUS Console Improvements ,
CBUS Console Spotbugs ,
MERG CBUS Event Table Updates ,
Send CAN Frame Tool CBUS Priority ,
MERG CBUS Event Table tweak ,
MERG CBUS EVTable Fixes
MQTT
NCE
- Added auto-refresh to the Show Cabs tool
-
- Fixed NCE Edit Macro
- Improved the NCE Monitor
- Fixed NCE Edit Consist
- Jeff Collell added Light support
- A Signal Mast directly using OpenLCB Events for the
individual aspects can now be created using the UI of the
Signal Masts table.
- There is a new dialog for configuring parameters of various
OpenLCB protocols, reachable from the Preferences
dialog->Connection, selecting the appropriate OpenLCB
connection and clicking the button "Protocol settings".
- The JMRI computer can now have it's node identity (Node ID,
user name, user description) configurable in the Protocol
Settings dialog. This will make the JMRI computer(s) attached
to the layout appear in the Configure Nodes tree with their
appropriate descriptions.
- Added support for Fast Clock using the Broadcast Time
Protocol draft. Enable it either in Clock Master or Clock Slave
mode in the Protocol Settings dialog. Each layout must have
exactly one generator. Not all features of the standard are
supported yet. Both Master and Slave mode allows setting the
time & rate in PanelPro main window -> Tools -> Clocks -> Setup
Fast Clock menu. For clock slave JMRIs it is advisable to set
in the Start Up options "Start with fast clock:" to "Don't
change" and untick the "Set Fast Clock Time" and "Set Clock
Rate" check boxes to avoid restarting JMRI from re-setting your
clock master.
- The Connection name for an OpenLCB connection can now be
changed in the connection preferences dialog. This allows
renaming it to "LCC" if a user prefers that name.
- In the connection preferences dialog the manufacturer list
now contains "LCC" as an alias to OpenLCB. There are no
differences between choosing one or the other, just the
label.
- Internal bugfixes will make some rarely seen Java errors go
away. The sequencing of loopback operations will be more
deterministic, but Logix that were set up in a race condition
might behave differently due to the sequential execution. A
typical example that might change would be having a Sensor and
a Turnout object both be set to the same pair of event IDs,
then having a Logix change the sensor, and another Logix have
both that Sensor and that Turnout be in the antecedents but the
Turnout be non-triggering. The behavior of this setup used to
be non-deterministic in multi-processor computers.
- The CAN Send Frame can now accept dotted-hex format Event
IDs.
- The Firmware Upgrade dialog shows the Node list in sorted
order, also displaying User names and Descriptions for easier
selection of which node to upgrade.
- Firmware upgrade via the Stream protocol draft is now
operational (at the time of this writing no commercial hardware
is available that uses this variant). The protocol to use is
auto-detected.
RFID
- Changed the baud rate to 2400 for Parallax readers. Fixes issue 6026.
Roco z21/Z21
- Much technical work was done on this to improve operation
New / Updated decoder definitions
- The decoder definition file structure was updated with a new "defaultItem" element.
Hornby
- Brian Jackson updated the TTS definition
Mistral Train Models
- Alain Carasso added a definition for the XR Trailer decoder
RR-CirKits
- Dick Bronson updated the MotorMan2 decoder definition
SoundTraxx
- Michael Mosher added an SD60 definition
- Michael Mosher added definitions for several models
TCS
- Mike Mosher updated the WOW Steam V4 and various non-sound decoders
Team Digital
- Definitions for several Team Digital devices have been updated
to indicate that they use Programming-on-the-Main mode even when
they are only connected to the LocoNet.
Uhlenbrock
- New decoder definitions were added for:
- the IntelliSound4 Module 325x
- the IntelliSound3 multi-protocol decoders 363x
- the IntelliSound4 multi-protocol decoders 365x
The programmer for these mobile decoders shows an additional IntelliSound tab for configuration of the
embedded and SUSI connected modules.
The advanced sound functions are grouped logically, so select a SUSI range, than a Bank (or Normal
to disable sound programming). The CVs follow the full manufacturer's documentation. Test feedback is
appreciated, especially on the associated software version numbers (read from CV7).
- Behind the scenes, common xml code has been combined in one place to ease work on translations.
Miscellaneous
- Petr Sidlo provided a definition for the UNI16ARD NAV MX decoder
DecoderPro
- The decoder definition file structure was updated with a new "defaultItem" element.
Dispatcher
- Minor changes to use the new standard scale process.
Internationalization
- The Catalan translation was improved.
- The Danish translation was improved.
- The Dutch translation was improved.
- The German translation was improved.
- Petr Sidlo improved the Czech translation
Layout Editor
- A problem that caused the Scale Track Tool to not work with Beziers was fixed
- The Color Chooser was updated and fixed
- Rotating animated GIFs should now work
Logix
- Fixed a crash in Logix Tools Find Cross Reference
Operations
- Multiple enchancements to operations, including improved build report message when tracks full in staging
Panel Editors
- Rotating animated GIFs should now work
Preferences
- The process for defining defaults was changed
to reduce the change that internal programmers
would be inadvertently selected.
Resources
- Several new sets of signal icons
Turnouts, Lights, Sensors and other elements
- Fixes and updates to Sensor debouncing
- Improvements to the Light Add/Edit dialog
- Fixed a problem setting the sensor debounce timings.
Scripting
- Better error messages if you try to run a script without an understandable file extension
- When running JMRI using Java 9 or Java 10,
the script import statements need to be fully-qualified:
in addition to 'import java', you might need 'import java.beans'
and others. These have been added to the sample scripts.
(Although we might have missed a few...)
- JerryG improved some sample script documentation
Signals
Signal Systems
- The aspect definitions in the AAR signal system were improved.
- Problems in the BR2003 signal definition were fixed
Signal Masts
- There is now a native OpenLCB signal mast type
- Egbert Broerse improved the setup page for the matrix signal mast.
- The SignalMast definition and editing code has been refactored to
make it much easier to add new types
Signal Groups
- Fixes a bug which caused the system names of Signal Groups
to be overwritten.
Simple Signal Logic
Switchboard Editor
- A new "Auto Range" option allows you to release the fixed range of items and fill in any start and end
address between 1 and 10,000. When a range over 250 is entered, a confirmation dialog pops up.
The actual range limit is 400 items, unless the Hide unconnected items" box is checked.
- The spinner to set the number of items was renamed Number of Rows.
Timetable
since 4.13.4
- The Timetable tool uses layout and train information to create train graphs.
See Timetable Help for details.
- Replace the timetable package layout scale enum with the new standard scale process.
- Implement custom scale support for the new scale process.
Warrants
- Karl Johan Lisby updated SCWarrants
so they don't automatically turn off functions at end of run.
This lets you keep them on if e.g. you're starting another warrant.
Web Access
- New Preference to allow wifi throttles to create turnouts
- Add new Tables menu and pages to JMRI web server
- Most JSON WebSocket lists now send individual and list changes
WiThrottle Server
- New Preference to allow wifi throttles to create turnouts
- Return client message for invalid loco address, turnout and route requests
Virtual Sound Decoder
- Klaus Killinger added the Advanced Location Following functionality. Please see the
documentation website for details.
- Steam1: acceleration and deceleration rates are now adjustable.
Added throttle key functions like Brake key and Coast key (Klaus Killinger).
- Klaus Killinger added an option to set the top speed for reverse direction (engine type "steam1", tag "top-speed-reverse").
Miscellaneous
- since 4.13.4
Starting with this release, JMRI will create new profile directories with the
suffix ".jmri". This allows them to be more properly accessed in macOS/iOS
eco-system (we do it on all platforms for people who share profiles between
different types of computers). It also allows people to rename their
profiles (outside of JMRI, i.e. through their computer's file browser)
with a .jmri ending.
For more background, please see
PR 5777.
- This release contains a significant update to how defaults are
handled for the various system components like programming tools, throttle tools, etc.
Previously, the "internal" versions of those were often selected as defaults,
causing some confusion. Now, unless you have explicitly created an internal connection
by adding it on the connections page, they won't be, and hardware-specific connections
will be used instead.
New Layout Scale process
- A default scale set is distributed with JMRI as an XML file rather than hardcoded lists.
- A jmri.Scale instance is a constrained bean:
- The user name defaults to the scale name and can be changed.
The toString() method uses the user name and scale ratio, e.g. N (160).
- The scale ratio can be changed.
- The scale factor is automatically calculated from the scale ratio.
- Vetoable listeners can be notified of changes and can prevent changes
that might impact application stability.
- jmri.ScaleManager manages access to the Scale instances.
- A "CUSTOM" scale entry is included which an application can implement if desired.
- Any changes result in the default list being copied to the user file location.
This makes it possible for users to create their own scale list.
The distributed list is not used if the user file location list is present.