Release Notes for JMRI 4.24 release
Date: July 9, 2021 [Update 24 Oct 2021]
From: Bob Jacobsen
Subject: Test Release 4.24 of JMRI/DecoderPro is available for download.
We are very pleased to announce that the 4.23 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.24" 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 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.
Known problems with this release
- NOTE RE Java 8 Version 311: DO NOT INSTALL THIS VERSION.
Errors have been reported which can be fixed by reverting to version 301, upgrading to Java 11,
or installing
JMRI 4.25.5 or any later version.
New warnings for this release:
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:
This production version is made from test releases 4.23.1 through 4.23.8. The
full list of changes
in those is
available from our 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.
- CANPiWi v1 Firmware - No need for Node Manager to request Number of Events.
- Fixed Internal Sensor Manager set as default, not CBUS Sensor Manager, affecting 4.19.6 onwards.
- DCC Programmer - Added support for hardware that supports CV read hints
DCC++ and DCC-EX
- Improved CV read speeds by included startVal
- DCCppOverTCP server now forwards all messages, even those with unknown or invalid syntax
LocoNet
- Provides LocoNet Monitor interpretation of messages generated by the Digikeijs DR5088RC "RailCom" device.
MQTT
- Support MQTT Username and Password for Broker Authentication
- 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).
- Added startup action to open SPROG Slot Monitor
Uhlenbrock Intellibox
- LNCV Programing of the Daisy II manual throttle and FunkMaster Wireless Hub was added.
Use a DecoderPro definition with a Ops Mode roster entry.
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.
PIKO
- Added support for Piko SmartDecoder 4.1 Next 18 Series used in N and TT scale engines.
TAMS
- Bugfixes in TAMS_LD_42.xml
Tam Valley Depot
- Added support for new QuadLN_S Midpoint/Oscillate mode
ZIMO
- Zimo Swiss Mapping was updated bi Nigel Cliffe to V36+, adding features to select the dimming
group for each output in the table and to set the dimming levels.
- 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.
Control Panel Editor
- Labels and icons on a panel can now have an Id. This is useful if the label/icon is controlled by LogixNG.
CTC Tool
- The CTC Editor windows location and size settings have been moved to the
standard JMRI location within the current profile. The AwtWindowProperies.txt
file in the ctc directory at the user files location is no longer used.
Dispatcher
- Use full length of section when stopping by speed profile.
- Create Train. Fix sort order in Transit Combo.
- Create Train. Fix starting train outside of Transit..
- Create Train. Use Roster selection combo.
- Create Train. Allow user to select by roster, by train, or enter a dcc address without changing Dispatcher defaults. Allow override of DCC address for trains from Operations.
- When allocating by Safe Sections corect a problem selecting Primary or Alternate Section.
- Correct issue when running under No Signals that caused a train not to relize the next section was now available.
- When stopping in a multi-block section, pull train as far into section as possible.
- Do not mix stopping by speed profile and stopping by stopping sensor which was causing trains to run into the next section
Layout Editor
- Fix Options ⇒ Track Options ⇒ Hide Track Construction Lines.
- Labels and icons on a panel can now have an Id. This is useful if the label/icon is controlled by LogixNG.
NX - Entry/Exit Tool
LogixNG
- LogixNG (Logix Next Generation) is a new way of adding logic to the model railroad.
- Add Actions and Expressions for Blocks.
- Add Actions for labels and icons on panels.
- Add support for WhereUsed bean usage searches.
- Add WhereUsed reports for Blocks and Sensors.
- Implement Clock Action and Expression
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.
Preferences
- Throttles : Keyboard shortcuts can be customized in JMRI throttle preferences screen (second pane, warning, no consistency check is made)
- Added an option to Preferences ⇒ Display to limit the
number of rows when a combo box is using the setupComboBoxMaxRows
feature. This is useful for large screens.
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
- Function buttons icons, SVG file format now supported, allows for smooth scaling in JMRI native throttle window
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.
- Ian Price contributed the new
LocoTracker
script.
Signals
- Updated link in documentation
- Mark Ziebell made some corrections to the AAR-1946 appearance info.
- Mark Ziebell added a CCOR-1967 signal system.
Signal Systems
- CCOR-1967 updated by Mark Ziebell
Cab Signals
- Better set row height in table.
Simple Signal Logic
- The SSL tool has been updated to include the ability to
delete a SSL defintion.
Throttle
- Under the hood code clean up for throttles (all systems), safe release of throttles.
- 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.
- When "Use large speed slider and control buttons" is enabled, throttle control panel buttons (and slider) will resize automatically to leverage available space in throttle control panel
- When "Large speed slider" mode is enabled (in throttle preferences), directions, stop and estop buttons will automatically resize and scale depending on the control panel inner window size : allows for high visibility from far away (for people using a wireless device combined with JMRI native throttles for instance)
- Function buttons icons, SVG file format now supported, allows for smooth scaling
- Throttle control panel button icons are now based on SVG files, allows better scaling
- Throttle preferences are now be applied live, no need to reload the throttle windows or restart the application
Turnouts, Lights, Sensors and other elements
- Fixed Duplication of Sensors in Sensor Table views. Bug introduced in 4.23.3
- Fixed Sensor Table sort issues with Delay to Active, Delay to InActive columns.
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.
- Audio buffers and sources now are removed when a VSDecoder is deleted.
- Deprecated methods in VSDecoderManager: getVSDecoder(String profile_name, String path),
getNumberOfDecoders, setDefaultVSDecoder, getDefaultVSDecoder.
And in VSDecoder: setDefault, isDefault.
- Added the option "dynamic gain" for steam1. See the
documentation
for details.
Where Used
- Add support for searching LogixNG for bean usage.
Miscellaneous
- Sound files that are larger than 100,000 bytes and therefore are streamed can now be looped.
- Automatic Signal Mast Logic Production: Corrected to use Protecting Blocks
- Transit Creation Tool: Uses block sections on transits emanating from stubs.
- Luca Dentella contributed the new CmdMapper script.