Release Notes for JMRI 5.15.5 release
Date: March 13, 2026
From: Bob Jacobsen
Subject: Test Release 5.15.5 of JMRI/DecoderPro is available for download.
Notes:
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 next in a series of 5.15.* test releases.
It requires at least Java 11 to work.
We recommend that you use Java 21 if possible.
(See our page on downloading Java)
We expect this series to result in the next JMRI production release in July 2026.
(See the tentative release schedule)
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 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 release:
- The web server folder app has been removed. It
might cause third party applications to fail. If this happens to
you, please contact us on
the JMRI users group.
Older warnings
See the
JMRI 5.14 release note for more warnings predating the 5.15 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 at least
JMRI 5.0
before installing this test release.
See
instructions above.
- Since JMRI 4.99.1
This test release, and all subsequent ones, require the use of
Java 11 or later.
We recommend that you use Java 21.
Java 8 is explicitly not supported.
There's more information on this migration on the
JMRI Tech Road Map and
JVM Capabilities pages.
- If you're using a Firefox web browser and opening JMRI
help files locally (not over the web), a Firefox bug
can sometimes cause it to enter a loop. There's a
workaround in
this JMRIusers post.
- Since JMRI 5.15.1
The serial communications library that JMRI uses has been updated.
If your JMRI installation is having trouble communicating with your
model railroad hardware, please contact us on
the JMRI users group.
- Since JMRI 5.15.4
The way mouse clicks are handled has been updated.
Although this has been tested with mice and trackpads,
it's possible that this will cause problems with other hardware,
e.g. touch panels. If you do encounter new problems with clicking
on panels, please contact us on the
JMRI users list.
Since JMRI 5.15.4
- The RailCom handling has been updated to current standards. In particular, the enum
representing the orientation has been changed from ORIENTA and ORIENTB to
EAST and WEST respectively and some of the text strings have changed.
These may affect any scripts you have that reference
the direction of a RailCom report (tag) or parse the status messages.
Download links:
These files are located in the
JMRI 5.15.5 GitHub release.
The
full list of included changes is available from our
GitHub code repository.
Hardware Support
- Network connections now take their host name/address and port number
from the per-node individual configuration, if available,
and from the shared configurations if not. This will allow
you to have different host name/address for different
computers sharing the same JMRI profile.
LocoNet
- Added LNRP3 to some LocoNet Monitor message types.
- Updated the LocoBuffer-USB and LocoBuffer-NG help.
MQTT
- Updated the Signal Mast support
so that a mast can be updated by an
MQTT message from the layout.
- A bug that would cause LCC Reporters to improperly be created as
Internal Reporters has been fixed. If you have Internal Reporters that
have been created in the past by this bug,
- Start this version of JMRI or later
- Delete all the IdTags and, if relevant, RailCom tags that reference the internal Reporters
- Delete the internal Reporters
- Save your panels and table to your usual file
- Quit and restart JMRI.
- The OpenLCB_Java library has been updated, which brings
- Improvements to how streams are handled, which will make
firmware updates to certain node types more reliable.
- When opening a configuration ("CDI") window, the
window will stay minimized while both the display information (the CDI contents)
and the configuration data contents are read. Although this takes
longer, it prevents you from accessing data variables that
have not yet been loaded. Previously that early access
has led to various problems with inconsistent data.
- Blank lines are now accepted as comments in node backup files
- The LCC/ChangeDefaultBackupFileName.py script has been updated to
include the node's event ID if no node name is available. This
will e.g. reduce confusion when backing up brand-new nodes.
Zimo
- Added additional, faster speeds to the KLUG connection.
Control Panel Editor
- Change the scaling menu item from "multiply current scaling"
to "set new scaling percentage" form.
DecoderPro
- If multiple roster entries are selected, contextual menu allows opening a throttle window with a controler for each selected roster entries.
- Drag'n drop of roster entries to the throttle list window is now allowed and will create new throttle control in the targetted window.
- Added a new (optional)
Permission
to control whether the user can
edit columns that have been added to the Roster Table.
This can be used to e.g. only allow certain people at a club
to mark a locomotive entry as having been inspected.
- Added a copy/cut/paste pop-up menu to text fields that
didn't previously have a pop-up menu.
- Fixed a bug where certain roster entry contents would cause
a crash.
Dispatcher
- Stop train immediately if it has no occupied section, or
blocks go active in the wrong order. This behaviour can be turned off
in dispatcher options.
- Add the current, next block and train held status to the dispatcher screen.
- When resuming from a failure, inform user where the head of train needs to be
or which block needs to be cleared. If they have being using Manual
present them with choice about the direction.
- Fix NPE error on dispatcher train restart.
- Fix up to and fro restart at far end
Layout Editor
- Change the scaling menu item from "multiply current scaling"
to "set new scaling percentage" form.
- Fixed a problem that could cause bold-text labels to have
their contents truncated. e.g. "West" would be
shown as "Wes...". This was mostly a problem on
Windows, but could have affected any system type.
LccPro
- Added a copy/cut/paste pop-up menu to text fields that
didn't previously have a pop-up menu.
- Added "Print Table" and "Export CSV" global buttons that
do pretty much what they say.
- Added a "Backup" button to each row that will directly
back up the selected node to a file. The directory
where that file will be placed can be set with the
"Set Backup Directory" action in the Settings menu.
OperationsPro
- Improvements to the print Manifest and no page breaks option.
- New larger preview windows when printing.
Panel Editor
- Change the scaling menu item from "multiply current scaling"
to "set new scaling percentage" form.
Roster
- Improved the locomotive image resolution in printed rosters.
- Increased the size of the roster preview so that it matches the paper size and improved text legibility.
- Update "Export Complete Roster" process so that
upon "Import Complete Roster" the images will
properly display without the need to rebuild the roster.
- The Import Complete Roster action now shows a progress bar.
Throttle
- Throttle list window is now displaying one column for each throttle window, each column showing the throttles for that window
- Throttle list window allows drag'n drop from one window to another
- A throttle preference allows to enable the "ALL" roster group in the roster group seletor of the address panel
- Some interfaces introduced between sing implementation anf throttle controlers
Web Access
- panel.js: handle BlockContentsInputIcon
Web Server
- The web server folder app has been
removed. It might cause third party applications to
fail. If this happens to you, please contact us on
the JMRI users group.
Miscellaneous
- When printing on MacOS, selecting a specific page range to print does not work
correctly. This is a known Java issue. The workaround is to print the entire
document to PDF, and then use a PDF reader to select the pages to print.
- There's a new option in the Load and Store tab of the Preferences
that allows you to exclude storing the contents of memories. Not the configuration
of the memories, just their contents. This might be useful if e.g.
you're storing your panel&configuration files in a storage system like
git that keeps track of changes, and you don't need to track changes in the
(transient) memory contents.