Release Notes for JMRI 4.23.3 release
Date: April 2, 2021
From: Bob Jacobsen
Subject: Test Release 4.23.3 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 test releases.
We expect this series to end in the next JMRI production release in Summer 2021.
(See the tentative release schedule)
Some of the changes involved are quite extensive.
They may require a certain amount of experience before they are working well.
Therefore, this test release should be considered experimental.
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 4.20, 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 relese.
- 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
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:
- This version has an updated Windows launcher, which might
cause Windows to emit some security warnings until it's
been used enough times that Windows calms down.
- Memory Input Icons, Global Variable Input Icons and
Block Contents Input Icons in Layout Editor, Panel Editor
and Control Panel Editor have for a long time
shown a shadow border by default instead of no border
by default. This made it impossible to display them
without a border, unlike other editor icons.
This has been fixed. If you want a border on one of these icons
and no longer see one, use the contextual menu on the
icon to set the border width to a non-zero value.
Older warnings
See the
JMRI 4.20 release note for more warnings predating the 4.21 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 4.20
installing this test release.
- Since JMRI 4.21.1
The jmri.jmrix.SystemConnectionMemo class has become a jmri.SystemConnectionMemo
interface and a jmri.jmrix.DefaultSystemConnectionMemo class. This may
require changes to scripts. If you have a script that references
jmri.jmrix.SystemConnectionMemo, please change it to either
jmri.SystemConnectionMemo or jmri.jmrix.DefaultSystemConnectionMemo
(it's easier to have you just try the two than to explain which
one will work in which case)
- Since JMRI 4.21.1
The way preferences are loaded at startup has been slightly
modified. There is no impact to JMRI applications, but Non-JMRI
applications that are not derived from apps.Apps or apps.AppsBase
but are using jmri.implementation.JmriConfigurationManager to load
preferences will no longer see preferences if an error occurs. To
restore the old behavior, use apps.AppsConfigurationManager instead.
- 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.
Download links:
The
list of included changes is available from our
GitHub code repository.
Hardware Support
CBUS
- Fixed Internal Sensor Manager set as default, not CBUS Sensor Manager, affecting 4.19.6 onwards.
- Simulated Connections - Output Interval option added to Additional Connection Settings.
DCC++ and DCC-EX
- Improved CV read speeds by included startVal
- Simulated Connections - Output Interval option added to Additional Connection Settings.
- Configuration editor functional and visual updates:
- If a configuration window is closed with unsaved changes, a warning dialog will appear.
- Updated fonts and geometric arrangement to make the dialog easier to oversee.
- The dialog will open with all segments closed to reduce clutter and ease navigation.
- Fixed bug in resizing the window.
- Accessibility updates: the segment headers are now part of tab order and can collapse/expand on enter or space key.
- JMRI will now respond to the Global Identify Events message as the standard requires.
SPROG
- Increased maximum command station slots to 64 and added advanced connection preference to select.
- Added support for current CV value hint when reading (requires a future SPROG 4.5 firmware release).
New / Updated decoder definitions
- All decoder.xsd XML validation schema from now on require an "item" attribute on each variable
element. It is needed to apply qualifier selections to translated definitions.
All current decoder definitions in JMRI were updated where necessary (see below for specific ESU, LDH and
Zimo series).
Doehler & Haas
- New - for all new D&H definitions: decoder model (product ID) is now detected automatically thanks to the introduction of CV 261 in updated firmware.
- DH05C (fw 3.12.050 - including update path from older fw versions definitions)
- DH10C (fw 3.12.050 - including update path from older fw versions definitions)
- DH12A (fw 3.12.050 - including update path from older fw versions definitions)
- DH16A (fw 3.12.050 - including update path from older fw versions definitions)
- DH18A (fw 3.12.050 - including update path from older fw versions definitions)
- DH21A (fw 3.12.050 - including update path from older fw versions definitions)
- DH22A (fw 3.12.050 - including update path from older fw versions definitions)
- PD05A (fw 3.12.050 - including update path from older fw versions definitions)
- PD12A (fw 3.12.050 - including update path from older fw versions definitions)
- FH05B (fw 3.12.050 - including update path from older fw versions definitions)
- FH18A (fw 3.12.050 - including update path from older fw versions definitions)
- FH22A (fw 3.12.050 - including update path from older fw versions definitions)
- SH05A (fw 1.14.050 - including update path from older fw versions definitions)
- SH10A (fw 1.14.050 - including update path from older fw versions definitions)
ESU
- Missing "item" attributes were added to the v4fnOutCv and v5fnOutCv includes.
LDH
- Missing "item" attributes were added to the v4fnOutCv and v5fnOutCv includes.
Common CVs were moved to cv33-39mapping.xml and cv67-94speed.xml respectively.
ZIMO
- MX605 (Kato type plug N sound decoder for ICE 4)
- Missing "item" attributes were added to the CVSwissMapping_v36.xml include and the Decoder
Version was copied into CV1-CV99.xml in order to allow customization for Swiss Mapping.
PanelPro
- The main PanelPro menu has changed.
- The Load, Store, and History menu items have moved from the Panels
menu to the File menu.
- The script related menu items have been moved to a new Scripting menu.
- A Delete Panel menu item has been added to the Panels menu.
- A dialog will be displayed if a second load is invoked. The message can be suppressed using the checkbox.
- When a file is loaded, the file name will be display in the JMRI System Console (Help ⇒ System Console).
- When the Close button on a panel window is clicked, a dialog will be displayed to
indicate that the panel has been hidden. The message includes instructions on making the
panel visible and how to delete the panel. The message can be suppressed using the checkbox.
- When a panel is added, deleted or renamed, a pending update flag is set. If PanelPro is stopped before
doing the Store process, a dialog will be displayed. Select Yes
to store the changes before the shutdown proceeds.
Dispatcher
- Use full length of section when stopping by speed profile.
Layout Editor
- Fix Options ⇒ Track Options ⇒ Hide Track Construction Lines.
NX - Entry/Exit Tool
Preferences
- Throttles : Keyboard shortcuts can be customized in JMRI throttle preferences screen (second pane, warning, no consistency check is made)
Roster
- Media/Function tab : Added an entry in function buttons icons contextual menu that will open a system file manager located into the JMRI functions icons library (allows easy drag'n drop)
- Media/Function tab : If an existing icon or image file (same name, same size) is aded an icon, it will no longer be duplicated, existing instance will be used
Scripting
- Added script "SensorFromBxpa1AutoRev.py". This script monitors
LocoNet for messages pertaining to BXPA1 autoreverse events and
updates a JMRI sensor to reflect the state. When monitoring a
specific BXPA1 (by BoardID), one JMRI sensor is used. When
monitoring all BXPA1 devices, a separate JMRI sensor is defined
for each reporting BXPA1 device. Further details on script
configuration and some known limitations may be found in the
comments included within the script's code.
Signals
Simple Signal Logic
- The SSL tool has been updated to include the ability to
delete a SSL defintion.
Throttle
- Function Panel now displays all functions buttons at once, with a scrollbar if required
- There are as many function buttons as defined by the used throttle
- Added an entry in function buttons icons contextual menu that will open a system file manager located into the JMRI functions icons library (allows easy drag'n drop
- If an existing icon file (same name, same size) is aded an icon, it will no longer be duplicated, existing instance will be used
- Keyboard shortcuts now available on whole throttle window
- Keyboard shortcuts can be customized in JMRI throttle preferences screen (second pane, warning, no consistency check is made)
- Mousewheel speed control now available on whole throttle window
- One mousewheel scroll unit will increment or decrement throttle speed by one speed setting increment (depends on the throttle speed step setting)
- Use Ctrl key to apply a multiply factor on speed increment/decrement (customizable in JMRI throttle preferences screen)
- Function and Control panels property panes reworked
- Function button with images can be resized in button property panel
- Function button customizations correctly serialized
- Ticks on graphical speed slider
- Pressing Enter in AddressPanel when entering an address will actually request it
- Jythons scripts with direct access to the JMRI UI are now deprecated (AAR105.py, RailDriver.py, USBThrottle.py, xboxThrottle.py). Use USBThrottleAsJynstrument.py script instead, or direct Jynstrument in jython/Jynstruments/ThrottleWindowToolBar/USBThrottle.jyn , specific drivers are proposed for AAR105 and Raildriver, they may have to be adjusted.
Virtual Sound Decoder
- Reduced audio buffer consumption for Diesel sounds.
- Minimum time for a sub-buffer increased from 100 to 150 milliseconds.
- Fixed bug with last accel-limit values less than 100 in config.xml.
Miscellaneous
- Sound files that are larger than 100,000 bytes and therefore are streamed can now be looped.
Hardware Support
Acela CTI
Anyma DMX512
Bachrus Speedo
CBUS
C/MRI
DCC++ and DCC-EX
- Correct E-Stop command sent when throttle is in reverse.
DCC4pc
Direct
ESU
Hornby
Internal
IPOCSMR
JMRI Simple Server/JMRI Client
KPF-Zeller
Lenz XPressNet
- A throttle waiting for a reply which never arrives now gives up
and resumes sending: after 5 seconds once the connection has
nothing left in hand, 15 seconds otherwise. On a serial XpressNet
connection a broadcast message arriving while a command is in
flight could be taken for that command's reply, leaving the
throttle waiting forever and silently holding back every
command queued afterwards for the rest of the session.
- Roco and Z21 throttles now stop their timers when they are
disposed of, instead of leaving them running for the rest of
the session.
LocoNet
- Fixed a problem where an Intellibox-II would
have power on/off problems after CV programming.
- A LocoNet connection now reconnects if the connection goes down and then comes up again.
Maple
Marklin CS2
MERG
MQTT
MRC
NCE
Oak Tree
- The "Make Sensor" and "Make Turnout" buttons in the configuration
panel used to require a non-empty description field to put a
user name on the Sensor/Turnout they'd create. Absent that, they
wouldn't appear. A description is no longer required; if one
is not present, the Sensor or Turnout will be created without
a user name.
- Updated OpenLCB / LCC Reporters to set the RailCom orientation instead
of direction (WEST/EAST if the appropriate bit is set in
the report).
- Updated OpenLCB / LCC Reporters to query current occupancy and present
locomotives from layout hardware upon creation and startup, correctly
populating the initial report and collection.
- Updated the OpenLCB jar library to pick up a fix to the
read/write timeout value calculation.
Powerline
RFID
Raspberry PI
Roco z21/Z21
Secsi
SPROG
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
- Added EL-HO decoder for cars Rybák
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
- Memory Input Icons, Global Variable Input Icons and
Block Contents Input Icons have for a long time
shown a shadow border by default instead of no border
by default. This made it impossible to display them
without a border, unlike other editor icons.
This has been fixed. If you want a border on one of these icons
and no longer see one, use the contextual menu on the
icon to set the border width to a non-zero value.
- Memory Input Icons, Global Variable Input Icons and
Block Contents Input Icons now work properly when the
panel has been zoomed larger or smaller.
Circuit Builder
Palette
CTC Tool
DecoderPro
Dispatcher
Dispatcher System
Internationalization
Layout Editor
- Memory Input Icons, Global Variable Input Icons and
Block Contents Input Icons have for a long time
shown a shadow border by default instead of no border
by default. This made it impossible to display them
without a border, unlike other editor icons.
This has been fixed. If you want a border on one of these icons
and no longer see one, use the contextual menu on the
icon to set the border width to a non-zero value.
- The popup menu for Memory Input Icons now lets you set the number of
columns that the GUI will display. Note that the fixed width
interacts with selection: If you select a wider fixed width,
blank areas will display on either side.
- A bug introduced in JMRI 5.17.3 would cause display problems with
layout editor windows that had been zoomed. This has been fixed.
- Memory Input Icons, Global Variable Input Icons and
Block Contents Input Icons now work properly when the
panel has been zoomed larger or smaller.
- Add the input option for LogixNG global variables.
- Improve the selection process for choosing label icons or input icons
for memory variables, block contents and LogixNG global variables.
NX - Entry/Exit Tool
LccPro
Logix
LogixNG
Meters and MeterFrames
OperationsPro
Panel Editor
- Memory Input Icons, Global Variable Input Icons and
Block Contents Input Icons have for a long time
shown a shadow border by default instead of no border
by default. This made it impossible to display them
without a border, unlike other editor icons.
This has been fixed. If you want a border on one of these icons
and no longer see one, use the contextual menu on the
icon to set the border width to a non-zero value.
- Add the input icon option for the blocks
Permissions
Preferences
Resources
Roster
Routes
Scripting
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
- In the Reporters table, the Report column now displays all reported objects
concatenated with " + " when the reporter is a
CollectingReporter.
Warrants
Web Access
Web Server
- Some improvements to how the various input icons are handled on panels:
- The padding on the end of the icon now agrees with what's
on the parent JMRI panel.
- The default drop shadow on the web has been dropped to
make the appearance agree with the parent JMRI panel.
- The default border now agrees with the border on the
parent JMRI panel.
- If an icon is defined in JMRI as having no background,
it's shown as transparent on the JMRI screen. Previously,
this was shown as a white background on the web browser screen.
This has been corrected so that it now shows on the web browser
screen as transparent, giving the same appearance as on
the JMRI screen.
Where Used
WiThrottle Server
Virtual Sound Decoder
Z21 Server
Miscellaneous
- The "noverify" option has been removed from the JMRI program
launchers so that JMRI can use Java 27 and later.
- For JMRI developers: CI tests now fails on WARN logging messages.