Release Notes for JMRI 5.15.7 release
Date: MM DD, 2026
From: Release Pumpkin
Subject: Test Release 5.15.7 of JMRI/DecoderPro is available for download.
This is a draft release note only; the download links do not yet work
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:
-
Raspberry Pi GPIO pin numbering has changed.
The Pi4J library has been updated from version 1.2 to 2.8.0.
Pi4J 2.x uses BCM (Broadcom) GPIO numbers instead of the WiringPi numbers
used by Pi4J 1.x.
Any panel files or scripts that define Raspberry Pi sensors or turnouts
must have their GPIO address numbers updated to the equivalent BCM pin
numbers before they will work correctly with this release.
-
Raspberry Pi: the libgpiod2 library is required for GpioD GPIO support.
This release adds support for the Pi4J GpioD plugin, which uses the modern Linux
GPIO character-device interface preferred on kernel 5.10 and later.
To enable it, install the native library before starting JMRI:
sudo apt install libgpiod2
(Raspberry Pi OS / Raspbian) or the equivalent for your distribution.
If libgpiod2 is absent, Pi4J will fall back to the LinuxFS provider
for digital I/O; all sensors and turnouts will still function.
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.
- span class="since">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.
- span class="since">Since JMRI 5.15.5
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.
Download links:
During development leading to the actual release, you can find test download files on the
continuous integration build page.
These are development files, and might not be working at any particular time.
The
full list of included changes is available from our
GitHub code repository.
Hardware Support
Acela CTI
Anyma DMX512
Bachrus Speedo
CBUS
C/MRI
DCC++ and DCC-EX
DCC4pc
Direct
ESU
Hornby
Internal
IPOCSMR
JMRI Simple Server/JMRI Client
KPF-Zeller
Lenz XPressNet
LocoNet
Maple
Marklin CS2
MERG
MQTT
MRC
NCE
Oak Tree
- (Internal) The load and store process for the Event Table
now permits multiple "names" elements. This makes it easier
to merge Event Table information from several profiles.
Powerline
Raspberry Pi
- The Pi4J library used for Raspberry Pi GPIO support has been updated
from version 1.2 to version 2.8.0 (the current 2.x release).
Pi4J 2.x uses a new API and a plugin-based architecture replacing
the older
GpioFactory / GpioController model.
- Pin numbering has changed.
Pi4J 1.x addressed GPIO pins using WiringPi numbers.
Pi4J 2.x uses BCM (Broadcom) numbers directly.
Existing panel files and scripts that reference Raspberry Pi sensors
or turnouts will need their GPIO address numbers updated to use
the corresponding BCM pin numbers.
For example, WiringPi GPIO 0 (BCM 17) becomes address 17 in the
new numbering scheme.
- Support has been added for the Pi4J GpioD plugin
(
pi4j-plugin-gpiod), which uses the modern Linux GPIO
character-device interface (/dev/gpiochip*) introduced
in kernel 5.10.
This is the preferred GPIO interface on Raspberry Pi OS with kernel
5.10 or later (including the 6.x kernels shipped with current
Raspberry Pi OS releases).
It requires the libgpiod2 package:
sudo apt install libgpiod2
The plugin is discovered and activated automatically alongside the
existing LinuxFS and PiGpio plugins via Java ServiceLoader; no
configuration change is required.
- Hardware GPIO plugins (
pi4j-plugin-raspberrypi,
pi4j-plugin-linuxfs, pi4j-plugin-gpiod)
are now loaded at runtime via Java ServiceLoader on Raspberry Pi
hardware and are no longer bundled as compile-time dependencies.
RFID
Roco z21/Z21
Secsi
Fixed spurious command station slot thread timeouts that could
shut down track power when the GUI was busy. Reply notifications
from the traffic controller to the command station are now
delivered synchronously instead of being queued on the Swing EDT,
so the slot thread is woken immediately when the hardware replies.
Added a consecutive-timeout retry counter to the command station
slot thread. A single missed reply now triggers a retry with an
idle packet instead of immediately removing track power.
Track power is only removed after three consecutive timeouts.
SRCP
TAMS
TMCC
Uhlenbrock Intellibox
Zimo
ZTC
New / Updated decoder definitions
AE Model
Arnold
Bachmann
BLI
BNM Hobbies
CT Elektronik
DCC Concepts
Digikeijs (Digirails)
Digitrax
Doehler & Haas
ESU
Hattoms
Hornby
Kuehn
LaisDCC
Lenz
MD Electronics
MGP
Mistral Train Models
MTH
MRC
NCE
Norsk Modelljernbane (NJM)
Piko decoders
Public Domain and DIY decoders
QSI
Rampino Elektronic
Rautenhaus
RR-CirKits
SoundTraxx
Tam Valley Depot
TAMS
TCS
Team Digital
Technologistic (train-O-matic)
Trix Modelleisenbahn
Uhlenbrock
Umelec
Viessmann
Wangrow
ZIMO
Miscellaneous
Control Panel Editor
Circuit Builder
Palette
CTC Tool
DecoderPro
Dispatcher
- Save dispatcher usestrict option correctly.
- Continue tracking blocks thru stopping at end.
Dispatcher System
Internationalization
Layout Editor
- Added a new "Make Layout Editor XML output more reproducible" option
to the Load and Store preference pane. The default is off. When
on, this option will result in positions of Layout Editor objects
being stored in a form that's more reproducible. This will result
in fewer spurious changes if you're e.g. storing panel files in a
tracking system like Git.
- Fixed a problem when storing and loading the new Output Indicator icons
- When changing icon images for turnouts, sensors and signal heads, the
resource files are now listed in alpha order by name.
NX - Entry/Exit Tool
LccPro
- Improved performance of Active display in lower right
on high-bandwidth links.
Logix
LogixNG
Meters and MeterFrames
OperationsPro
- Fixed a bug where the RWL or RWE ship address wasn't used when spotted at a spur with a schedule that didn't have a ship address.
- Added the "Random" column to the tool "Show Schedules by Car Type and Load".
Panel Editor
Permissions
Preferences
Resources
Roster
Routes
Scripting
- There's a new "WiThrottleMonitorTableSpeedRed.py" script that opens a window displaying
connected WiThrottle devices and locomotives (address, speed)
Signals
Signal Systems
Signal Heads
Signal Masts
Signal Groups
Cab Signals
Simple Signal Logic
USS CTC Logic
Switchboard Editor
Throttle
Timetable
Tracker
Turnouts, Lights, Sensors and other elements
Warrants
Web Access
Web Server
Where Used
WiThrottle Server
Virtual Sound Decoder
Z21 Server
Miscellaneous