Release Notes for JMRI 5.10 release
Date: December 15, 2024
From: Bob Jacobsen
Subject: Production Release 5.10 of JMRI/DecoderPro is available for download.
We are very pleased to announce that the 5.9 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 5.10" 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 release requires Java 11 to work.
Java 17 is recommended.
(See our page on downloading and installing Java)
Update From Older JMRI Versions
If you are currently using a version older than JMRI 5.0, please follow these instructions carefully:
- Is your current version older than JMRI 4.12?
If so, then update to JMRI 4.12 first, and ensure everything works correctly: check
start-up, check things you need to be working, and check the JMRI log as well) before doing anything else.
Store your configuration and panel files under a new name and use those from now on.
Then continue with step 2.
If you are currently using JMRI 4.7.3 or earlier on Linux or macOS (Windows doesn't need this),
then it's very important
that you update to JMRI 4.12 and
carrying out the migration process described in the JMRI 4.12 release note
before updating to any later release.
- Is your current version older than JMRI 4.20?
Then update to JMRI 4.20 first, and ensure that works correctly (check
start-up, check things you need to be working, and check the JMRI log as well) before doing anything else.
Save your preferences again.
Store your configuration and panel files under a new name, use those from now on, and go on to step 3.
- Is your current version older than JMRI 4.24?
Then update to JMRI 4.24 first, and ensure that works correctly (check
start-up, check things you need to be working, and check the JMRI log as well) before doing anything else.
Save your preferences again.
Store your configuration and panel files under a new name and use those from now on.
- Is your current version older than JMRI 5.0?
Then update to JMRI 5.0 first, and ensure that works correctly (check
start-up, check things you need to be working, and check the JMRI log as well) before doing anything else.
Save your preferences again.
Store your configuration and panel files under a new name and use those from now on.
- You can then install this release.
Following this multi-step order of updating via stable major releases safeguards you against possible migration issues
that can arise from skipping these versions.
New problems with this release
New warnings for this production release:
Older warnings
See the
JMRI 5.8 release note for more warnings predating the 5.8 development series,
including pointers to various migration issues.
These may be relevant to you if you're updating from an earlier version;
we strongly recommend you update to
JMRI 5.0
before installing this release, see above.
- Since JMRI 5.7.1
Several systems have had extensive updates to their serial
support. If you have trouble connecting to your layout hardware
after installing this version, please contact us
on the JMRIusers list
for assistance.
- Since JMRI 5.7.7
If you are using a RR-CirKits LocoNet to LCC gateway
with this release, please upgrade its firmware
to version B8g or later. B8f or earlier will
have trouble updating the gateway's configuration.
Download links:
These files are located in the
JMRI 5.10 GitHub release.
This production version is made from test releases 5.9.1 through 5.9.8 The
full list of changes
in those is
available from our code repository.
Hardware Support
Bachrus Speedo
- Revamped the Bachrus speed matcher to support configuration and different styles of speedmatching
- Added ability to manually read and set a locomotive's momentum
- Basic Speed matcher
- Matches a locomotive to the given starting and top speeds
- Can use the basic motor control CVs, the speed table, or ESU's speed table
- Can configure if and how long the locomotive is warmed up and whether reverse is trimmed to match forward
- Speed Step Scale Speed matcher
- Matches a locomotive to the speed step in 128 speed step mode (for example, locomotive goes 11 mph or kph at speed step 11 in 128 speed step mode) up to the given max speed
- Can use the speed table or ESU's speed table
- Can configure if and how long the locomotive is warmed up and whether reverse is trimmed to match forward
- BiDiB now uses JSerialComm instead of PureJavaComm - no user impact.
CBUS
- Command Station Monitor :
Button added to release JMRI-managed loco sessions,
this can be handy when developing Jython scripts that fail to release the Throttle.
Button added to launch a new JMRI Throttle for a loco session.
Lenz XPressNet
- Throttles are now fully released by JMRI when not required, which resolves an issue with
Roster Last Operated and Operating Duration fields not being updated.
LocoNet
- Significant updates for programming the Digitrax DS74, DS78V, PM74, SE74 boards
- Provides corrected code for accessing the CVs for the DS74, DS78V, PM74, and SE74
- Can handle certain odd behaviors seen with some firmware updates
Users should delete any "Roster Entries" which were created using previous
decoder definitions and create new entries using these new definitions.
- LocoNet Monitor gives better information when some
responses were reporting "unrecognized message" for
CV reads of LocoNet-connected Digitrax 7th-generation
Accessory devices.
MQTT
- Set the max-in-flight number to 100 to avoid overflow errors.
- Update the STL Editor to support compact store output. This allows more
statements in a Logic group.
- OpenLCB_Java lib updated to release 0.8.1, which includes:
- Better GUI for the node selection tool, which improves
layout of the firmware upgrade window, send tool window,
memory tool window and other places.
- Event ID fields now have a contextual menu to assist in
specifying well-known events, time (clock) events, and
DCC accessory decoder events. These are also available
from the "More..." buttons on the CDI window.
- Fixed a bug that would cause the Memory Tool to fail
when putting data.
- Improve memory tools:
- Allow selection of space 0 - 255 in Memory R/W tool and Send Frame Tool,
with data entry in either hex or decimal
- Improve display of available spaces by omitting missing spaces to reduce length of display
- Send Frame tool will no longer allow you to access CDI if there's no CDI in the node.
This prevents you from accidentally getting into a confusing situation.
- Firmware Upgrade Tool and Memory Tool now let you select the memory space
with a decimal or hexadecimal number.
- Implements the slider and action button proposal in CDI. There are
no products using this, but we'll be ready when they're introduced.
- Updates the OpenLCB library so that
- You can write configuration information to a node
even if one or more items are out of range.
- The new <action> element in CDI
will be properly displayed.
- The CDI can now hint that a slider should be displayed for an integer
- A bug when displaying String variables with 0x0A newline characters has been fixed
- When an integer variable is displayed as a map and an unmapped value is
encountered, it's now displayed as "Reserved: nnn"
- Fix a problem when CDI contains "immediate" slider hints
- Slider hints now control tick spacing, instead of number of ticks.
- Fixed a bug were immediate-mode sliders would sometimes
not automatically write their contents when changed,
leaving people to have to push the "Write" button.
- OpenLCB and LCC connections now support "DCC Signal Decoder"
Signal Heads.
- The OpenLCB and LCC implementations have started to provide a CommandStation
object with limited capability.
- STL Editor: Provide an alternate view where the IQYZ tables are in a separate
window. This makes it possible to see the table content while working on the
STL logic.
- STL Editor: Implement a view option to provide a preview of the generated
STL logic.
- STL Editor: Implement shift-click to copy a name from a table row to the current
logic row.
- Improved how UTF-8 is handled in CDI display.
- STL Editor: Add store mode selections to the View menu, update help page.
- Add a Send SNIP Request button to the Send tool.
- Implement recent changes to the CDI spec underlying the node configuration display.
This will allow node implementors to make simpler configuration dialogs.
- Fixed a bug where the node configuration display would sometimes
be drawn with overlapping characters or extra white space.
TMCC
- Now sends repeated function commands so long as
the throttle function is active.
- TMCC2 Legacy 200 speed step mode is now available.
Select it from the combo box at the top of the Throttle's speed subwindow.
- Add support for sending two function commands on a button
push/release. First examples of this are
Fn28 Start Up Sequence 1 (Delayed Prime Mover, then Immediate Start Up)
Fn30 Shut Down Sequence 1 (Delay w/ Announcement, then Immediate Shut Down)
New / Updated decoder definitions
Digitrax
- Updated DS74, DS78V, PM74, and SE74 decoder definitions.
Includes options which can be used with recent firmware.
Be aware that previous JMRI versions had erroneous decoder definitions
for the DS74, DS78V, PM74, and SE74. All Roster Entries for these
devices should be discarded then re-created using the newer
definitions.
Provides corrected code for accessing the
CVs for the DS74, DS78V, PM74, and SE74 decoders.
- Added 12 new DN147 and DN167 definitions
- Added new DH187, DH127 and DN167n18 models
ESU
- Added LokPilot 5 micro DCC Direct
- Added LokPilot 5 nano DCC
- Added LokSound 5 micro DCC Direct Atlas S2
- Added LokSound 5 nano DCC Next18
- Updated LokPilot 5 L and 5L DCC productIDs
SoundTraxx
- Athearn ECO & TSU2 add new models
Tam Valley Depot
- Updated the QuadLN_S decoder definition to support new features in version 3.4 firmware.
TCS
Technologistic (train-O-matic)
- Added support for the FD II (version 2) function decoder family.
Trix Modelleisenbahn
- New definition for the Trix Sound BR23 (22230) decoder
Control Panel Editor
- The "Scale" operation on icons has been
changed to a relative scaling from the current size.
For example, if you've scaled an icon by 150% already,
and request a rescaling by 200%, the icon will end up
at 300%. Previously, this would work inconsistently.
DecoderPro
- Fixes an issue with printing and previewing CVs with certain decoders, eg. Uhlenbrock IntelliDrive2
- Will now show decoder family and model comments if you
hover your mouse over the decoder selection tree.
- A problem where the Simple CV programmer would sometimes
fail to display the proper options has been fixed.
Dispatcher
- For trains with HEAD ONLY detection release sections by length.
- When train exits section leave coloured as allocated until released.
- Do not release any allocated section from a train if the position of the train is not known.
- Add minimum reliable operating throttle setting.
Calculate adjusted throttle as throttle * factor then apply max and min limits.
Use Max speed from the roster entry, if available, as default.
Refactor ActivateTrain to push the final validation and train creation into dispatcher.
- Speed Setting NoSignals.
- After setting speed by Sections ahead. Check Block speeds.
- If next block slower than current block set speed down before entering next block.
- Do not increase speed beyond the minimum speed of any occupied block.
- When going from automatic to manual bypass auto-engineer limts.
- Optionally use Connections Turnout Delay.
Layout Editor
- Enable control circle colors and the fill option for slip turnouts.
- Improved zoom menu selection matching.
- Fix slip turnout control circle colors when using closed/thrown colors.
- The "Scale" operation on icons has been
changed to a relative scaling from the current size.
For example, if you've scaled an icon by 150% already,
and request a rescaling by 200%, the icon will end up
at 300%. Previously, this would work inconsistently.
LogixNG
- The expression Reporter can now use
indirect addressing for selecting the Reporter.
- The action Publish in the category
MQTT now has the option
Retain. If the value is Default,
the value of the connection will be used.
- Prepend the proper prefix when using short system names, such as 123 or abcd. For
alpha suffixes include the required $ character.
- A bug is fixed in the Timer action. The
bug caused the timer to not start
automatically when the tables and panel file is loaded,
despite the Start timer immediately on load
setting was selected for the timer.
- A bug is fixed that caused problem with storing a table
and panel file if the LogixNG preference
Install debugger is unselected.
- The action Throttle now has the option
Stop loco then switching loco. If it's
selected, the loco is stopped before switching to another
loco.
- A bug is fixed in the LogixNG action Signal Mast.
The options Permissive Sml Disabled
and Permissive Sml Not Disabled caused
an error when storing and loading the tables and panels
file.
OperationsPro
- New feature, print or preview trains serving a location or track.
- Locos set out to a spur or interchange now obey which train or routes service the track.
- Cabooses and cars with FRED without a final destination can now use staging that only allows cars with an final destination.
- There's now an option to leave cars in staging for trains that return to the same staging track. See "Allow cars to return to staging" for more details.
- There's a new Manifest feature that allows you group all "Moves" together. See "Manifest Print Options".
- The program now issues a warning during a build when removing a final destination due to track space issues.
- Changed "Wait" to travel time in the route edit window.
- New feature, you can now add or remove locomotives in a train's route.
- HPT (Horse Power per Ton) in the Setting window can now accept decimal numbers.
- New feature, you can now control which caboose road names a train can use.
- New tool, "Set Locomotives", allows you to change a group of locomotives.
Panel Editor
- The "Scale" operation on icons has been
changed to a relative scaling from the current size.
For example, if you've scaled an icon by 150% already,
and request a rescaling by 200%, the icon will end up
at 300%. Previously, this would work inconsistently.
Permissions
- The permission system has been improved. Users and
roles remains but the permissions has changed. As a
result, you might need to set the permissions for each
role again.
- If you change permissions, you need to restart JMRI for
the changes to take effect.
- A new permission Panel permission is
added. If the user doesn't have at least View
permission, the panel will be empty with the text
Permission denied.
- The JMRI web server now has support for permissions. The
user can login and logout using the web server. Note
that the web server has the guest user remote guest
instead of the usual guest user. The
remote guest user has by defaul the Remote guest
role. This allows you to have different permissions for
web access than local access for users that have not
logged in.
Preferences
- Set the bounds on the dialog when going into EditPreferences after profile connection fail.
- Added text to "start Up" Preferences to note that optimal XML file
loading should be done before "Opening" any
"Table".
- Do not create blank profiles.
When deleting blank profiles do not remove directory.
Explicitly warn that a directory and its contents will be deleted when deleting a profile.
- Update Messages details. Describe the option to hide tabs without active messages.
Resources
- Added an
"/extras/"
directory to contain large/specialized downloadable resource files.
- Added Jim Well's coal tipple sound file to
/extras/sounds
Roster
- On roster media pane (as well as functions panel),
images can be opened by double clicking on the panel or via the contextual menu.
Direct images drag'n drop from any aplication is also supported,
a png file will be created from the drag'n drop content.
Routes
- When you're editing a Route, the window will now close when you hit Update.
This makes this edit window behave like other ones.
Scripting
Signals
Signal Systems
Throttle
- Added a startup action to trigger the show JMRI throttle list window action.
Warrants
- Add the Set Memory Value action to the Throttle Commands script.
Web Access
- new parameter ("protect=yes") to treat web-panel as read-only
Web Server
- alternate "Conductor" webpage, with Id-Tag updates (eg. RFID), and showing current train composition.
WiThrottle Server
- The getThrottleList() public method has been added to
jmri.jmrit.withrottle.UserInterface for Jython access.
Virtual Sound Decoder
- The limit for VSDecoders is now 8 instead of 4.
- The sound buttons sorting in the VSD Manager window is now as in config.xml.
- If the sound buttons exeed 8, a second row is displayed.
Z21 Server
- Fix an error that causes occasional crashes.
Miscellaneous