Release Notes for JMRI 3.4 release
Date: July 8, 2013
From: Bob Jacobsen
Subject: Production version 3.4 of JMRI/DecoderPro is available for download.
We are very pleased to announce that the 3.3 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 version 3.4" available for download today.
JMRI is now only available under the
GNU General Public License. For more information, please
copyright and licensing page.
New warnings for this version:
This release requires Java 1.6 or later.
This release no longer supports the Digitrax MS100 on any computer. If you have an MS100 working
with an earlier release, please stay with that release. You should plan on updating
to a better LocoNet interface before updating to this or any later release.
For users of JMRI on Microsoft Windows, the installer will now request
Administrator permissions if the user running the installation is not a member
of the administrators group. Users of Windows Vista or later may receive a
UAC (User Account Control) pop-up message when installing.
The TCS decoder definitions have been extensively reworked.
You'll notice that they list different families and the models are
organized differently. This is to make the automatic identification
work much better. Please let us know if you encounter any problems with this.
This release and all future releases will not support the NCE serial interface running at 19,200 baud. Use the default 9,600 baud instead.
The decoder definition files have been extensively reworked for this release series
to reduce their size and allow them to be translated to other languages.
Please keep an eye out for any inadvertent changes to the definitions
that might have been introduced.
Known problems with this release
None at present
Please use these links for downloading:
Mac OS X: https://sourceforge.net/projects/jmri/files/production%20files/JMRI.3.4-r23744.dmg/download
Changes since production release 3.2
Dan Boudreau made the following enhancements to operations:
- You can now control loads for trains and tracks by the type of car. Previously only the
load name was available. Now you can control by load names, and by car type and load name.
- You can now decide if you want indenting when looking at build reports with a text
- New feature, the program will now generate custom car loads for car's departing staging
and also terminating into staging. See Edit Staging track, and select "Generate custom loads
for any staging track". You can control which loads will be generated by adjusting the terminal
track and which loads the train departing staging can carry.
- You can now edit a car's move count, wait, built, owner, RFID, and value fields
directly in the Cars window.
- Improved the car wait feature. Now the car's wait will only decrement when the train
can actually service the car, not just passing through.
- You can now adjust the tab length if you're using the tabular format for your manifests
and switch lists. See in the Manifest Print Options under Tools.
- The conductor window will now show locomotives assigned to the train.
- Made some improvements in the print locations tool with regards to schedules.
- More build report formatting and readability improvements.
- A new feature called the "Yardmaster" window. Now you can now get a switch list for a
location similar to the "Conductor" window. In the "Locations" window, there's now a button
called "Yardmaster" for each location. The Yardmaster window has a combobox containing a list
of trains that have work for the location. Only built trains with work are available.
- You can now independently control the build report font size. If using the text editor,
use a smaller font size if you want to increase the amount of text per line.
- Some additional work integrating the Manifest Creator. There are now run buttons on the
trains window to activate the program. Select "Generate csv Manifest" in the build options
window to enable these new buttons. You can also edit the file name of the Manifest Creator,
see under Trains->Tools "Setup Excel Program".
- In the "Set Car" window, the destination for the car is now by default disabled. You
should be using the "Final Destination" when manually setting a destination for the car. If you
need the destination field enabled, under Tools, is an option to enable it.
- New feature, the last date and time a car was assigned to a train. Note that the last
time and date is set when the car is delivered, or if the car was reset from a built train.
This should help you find "stuck" cars if you have any.
- Improved car routing when the car has custom loads and/or final destinations. Thanks to
Dave Cochrun and Inspector Dave in helping us improve this part of the program.
- You can now use the escape key to close any active operations window. All operations
and other JMRI windows can also be closed by using the control-W key.
- Yardmaster and Conductor windows now show utility cars by their quantity rather than by
road and number. Both windows now support the "Sort by Track" option. The Yardmaster window now
uses the "Switch List" format rather than the "Manifest" format.
- You can now control which loads are allowed to ship from staging.
- Improved the routing code to search for several interchange or yard tracks at a
location when trying to find a route to a spur. The previous version didn't try find other
tracks at a location when the first track tried was full. Thanks to Jim Elbe for finding and
reporting this issue.
- Made some improvements to the build report with regards to car routing. Also improved
how the program deals with routing a car into staging and which tracks in staging are
- Improved on how the program deals with "car type and custom load pairs" for locations
and trains when a car type is changed or deleted. Thanks to Inspector Dave for reporting this
- Improved how the program deals with custom loads and kernels. Now all cars in a kernel
will get the same custom load if the the custom load is valid for the car.
- Improved the dialog window for a route comment. Now you can easily enter several lines
- The Locations window now shows the track types for each location.
- New feature, for classification/interchange tracks you can now restrict which
destinations the track will serve. See "Track Destination" under Tools in the edit track
- You can now tell the router if you want it to consider yard tracks when routing a car.
Deselect "Enable Car Routing via Yards" in the Option window under Tools in the settings window
if you don't want to use yards when routing cars. The yards are still available for other
- Added the ability to print out a car's final destination and return when empty to the
car roster print function.
- In the "Set Car" window, the return when empty and final destination fields are now
disabled if you turn routing off. Both features require routing to work properly.
- The program no longer shows an error in the train build report if you delete a schedule
item for a car that was assigned that item in match mode. The program now tries to find another
match for the car, and will report a problem if there isn't a match available.
- The program now shows the train, departure and arrival locations if the prompt to or
from staging is selected.
Dan Boudreau made the following fixes to operations:
- Fixed a line formatting problem with manifest and switch lists that have carriage
returns embedded in the comments.
- Fixed a problem when swapping cabooses in a train's route. The code didn't check to see
if there was the correct number of moves available in the route to do the swap. Thanks to
Quintin Foster for finding and reporting this problem.
- Fixed a problem with a train's departure time when there was back to back locations
using the same name. Thanks to Bob Byck for finding and reporting this issue.
- Fixed an issue where the "Add" or "Edit" Track window size would revert to its previous
size while modifying the track checkboxes.
- Fixed a problem where the program wouldn't correctly select a staging track when
exclude train or route was used.
- Fixed an issue where the program would route too many cars to a spur with a schedule.
- Fixed a problem where a car with a custom load in route would lose which schedule item
the car had been assigned when the train carrying the car was reset.
- Fixed a problem where a switcher would ignore a car's wait count. Thanks to Joe Mattick
for finding and reporting this issue.
- Fixed a bug where a train wouldn't build after deleting a car or loco type that the
train used to carry.
- Fixed a bug in the cvs files when user had commas in their comments.
- Fixed a bug where a train wouldn't terminate if the first location in a route was
deleted in a built train.
Dan Boudreau added support for NCE USB / PowerCab version 7. NCE now supports the use of AUIs
for sensors when using a NCE USB and PowerCab. You need to have the latest USB interface which
is version 7.x.x and your PowerCab must be version 1.65 or newer.
Kevin Dickerson made the following changes :
- Hardware Updates
- CAN Ethernet - Added the ability to select the correct protocol
- Merg CBUS Ethernet - Added in a new adapter to handle this configuration
- LocoNetOverTCP - Fix an issue with the connection details that prevented it from being loaded.
- Ecos - Fixed a minor issue with the way that the speed step reply was processed that caused an error
- ESU ECOS - Fixed an issue with the way that the throttle speed changes are handled
- Loconet Simulator - Initial states of sensors can be set via the preferences, rather than using the default of UNKNOWN
- Debug Throttle - Add 14 & 28 Speed step settings to those that are available
- Loconet Throttle - Fix issues where certain speed steps were being skipped over in 14 & 28 mode. - Michael Mosher & Kevin Dickerson
- SensorIcon - Fix an inconsistency issue with the setting of sensor text colours.
- Text Properties - Fix the font size selection list in text properties to work correctly
- Layout Editor - Added in the ability to rotate Slips
- Layout Editor - Include internal block boundaries on the continuing path of a crossover as a valid location for setting a signalmast/sensor
- Layout Editor - Fixed a placement issue with the SignalMast/Sensor tool in the Layout Editor
- SignalHeads - Fixed an issue which prevent the Add button from working correctly
- Updated the DCC signal head decoder to allow user defined numbering for different aspects.
- Fixed an issue where if the username is changed, this is not reflected in the Editor Icons.
- Added in the ability to repeat the state of one SignalMast onto another and vice-versa
- When an Aspect is either disabled or enabled, the Aspect ComboBox in the table is reflect this change.
- Fixed a bug in the DCC Signal Mast when copying a Signalmast which has aspects set as disabled.
- Fixed an issue where if the username is changed, this is not reflected in the Editor Icons.
- SignalMast Logic
- Update the user defined blocks so that they are updated when user names are changed and move
- React to LayoutBlocks being allocated to sections. This only occurs if the Logic has a section associated with it, and the dispatcher has been loaded.
- Identifies Signal Masts that can be classed as intermediate. Intermediate Masts are classed as those that only have a single destination mast, with no turnouts in the path.
- Flag sections as being intermediate where they go to or from an Intermediate Mast.
- Now considers the opposing blocks when it encounters a double crossover.
- Fix an additional issue when a signal mast logic is deleted it may generate an NPE.
- Allow multiple protecting blocks for a single SignalMast located at the throat of a turnout.
- Add the option to set an alternative colour for the layout blocks while the Entry/Exit route is being set up. Colour is defined in the Entry/Exit Options
- Allow extended NX routes to be set eg A-D, rather than A-B, B-C, C-D
- Can now extend the transit of an Active Train in the dispatcher
- Now considers the opposing blocks when it encounters a double crossover.
- Added in the ability to stack Entry/Exit (NX) Interlocks.
- Allow multiple protecting blocks for a single NX Source located at the throat of a turnout.
- Decoder Selection - Added a Show/Hide facility on matched decoders after the decoder has been read
- DP3 - The new Loco window, now allows you to create a basic roster entry without having to open a separate window
- Fixed the DP3 Quit from menu option
- Fixed an issue where a new Roster Entry may not get saved correctly to the roster index.
- Dispatcher/AutoDispatcher changes
- Initial Support for Signal Mast in the Dispatcher including
- Automatic train responding to SignalMasts
- Section generation based upon SignalMast Logic
- SignalMast Logic based section blocks are populated at load
- Fix an issue where turnouts are not correctly being set in the last section, (when continuous running isn't selected) or the previous block is not picked up if the active train is starting in the transit and is not in the first block of that section.
- Add the ability to delay the start of a train based upon a sensor going active.
- Add to the memory icon, the ability to reset an Automatic Active Train once it has completed.
- Add a text label with the actual speed(percentage)/direction as seen by the associated throttle to an auto active train.
- When using SignalMasts and Auto Allocate, the mast at the end of the last allocated section is set held, so that the approaching automatic auto train does not simply read what the logic has calculated. When allocating the next section, set the mast at the end of that to held and then release the previous one.
- Update the auto active train terminate option, so that it waits until the loco has stopped before finally disposing of it.
- If allocating a section that this flagged as intermediate test all subsequent sections that are also flagged as intermediate to make sure that we do not end up with trains meeting face-to-face.
- When a section that is waiting to be allocated goes from an occupied to an un-occupied state force the dispatcher to do a rescan of sections waiting to be allocated.
- Extend the Entry/Exit interlocking so that it can extend the transit of an active train.
- Add the option to allow the dispatcher window to be opened when the panel file is loaded.
- New Train Window - The starting block combo box will automatically select the first occupied block in the list
- New Train Window - When called from the panel with a known Roster Entry and block, the transit combo is populated with transits that either contain the block past or have it as an entry point.
- Fix issue with the editing of the forward blocking sensor
- Fix a out of range exception in dispatcher.
- Provide access to the Dispatcher functions of create new train, allocate sections and terminate for an active train from a memory icon, if a Roster Entry is used
- Store the train type as set in the Dispatcher New Train Window against the roster entry, and retrieve it when the entry is selected again
- Added the option to store the Roster Entry in allocated blocks from the dispatcher rather than just a text string
- Provided a new method to edit block, turnout and sensor details in the table.
- Added the option to set the state of an Internal Sensor at load/creation to something other than Unknown
- Updated the routes window to allow it to contain scroll bars if the window is too small for the information contained
- Blocks/LayoutBlocks - When the layoutblock useExtraColor is changed, propagate this down to the "block" so that it can fire off a propertychange event of "allocated" to all its listeners. The "block" itself does not keep track or store the allocated setting. This saves any objects having to listener to both the block and layoutblock states.
Enzo Fortuna made more updates to the Italian translation.
This includes numerous changes to the coding for existing (English) strings,
so please comment if you notice something missing.
The JUnit unit tests were reorganized at the top level.
Fixed a problem with MS100 mode. Note that MS100 is only available on
certain older Windows machines; this fix doesn't change that, just
restores some function lost in JMRI 3.2. In the long run, you need
to replace your MS100 with something from this century.
The Xerces-J parser used to read and write XML files was updated to version 2.11.0
More changes for internationalization, particularly for the operations code by
Dan Boudreau. Enzo Fortuna has made large updates to the the Italian language support,
including Digitrax and Lenz decoder definitions.
More reducing decoder definitions to common form via XInclude of "part files".
Dave Heap changed the preferences associated with roster location and "User File Location".
He also added support for ESU's new Märklin-style speed tables in LokSound 4.0 decoders.
Dave Heap improved some of the file-location-related terminology.
Paco Ca�ada provided decoder definitions for PpP decoders.
Changes for Virtual Sound Decoder (by Mark Underwood)
- Fixed a LOT of bugs from 3.2.0. Some big ones are called out
- Added support for designating a location as being inside a
tunnel (still experimental)
- Added the ability to assign a Physical Location to a Block if
that Block is associated with a Reporter. This gives added
resolution in locating the train, under certain circumstances.
- Engine start sound now only played when throttle is at
- Added filesystem browsers to the default path and file entries
in the Preferences
- VSD file can now explicitly indicate which defined Diesel notch
is the Idle notch.
Walt Thompson fixed links in several help pages.
Walt Thompson fixed a bunch of links in the help pages.
Walt Thompson improved the help file linking.
Fixed problem when exporting roster files.
Fred Dalzell added a definition for the MRC Steam Sync Mini decoder MRC_soundbrilliance1869.xml
Gert Muller fixed a problem when storing panels from the web client.
Fixed speedometer opening three little blank windows.
More graphics in the help pages will not display in a desktop web browser when clicked.
Updated Standalone LocoNet help page information for LocoBuffer-USB and LocoBuffer-II use of LocoNet RailSync wires.
Fixed a problem that could result in roster entries sharing a backing file if you
export an entry and then re-import it into the same JMRI instance. If you have done this,
in the past, the fix is to "Recreate Roster Index" from the debug menu.
Steve Todd added an option to the Communications Monitor windows to allow users
to filter out unwanted message types.
Egbert Broerse provided definitions for the Rio Grande signals as of 1965.
Paul Bender made some internal improvements to the XPressNet programmers.
Michael Mosher updated the BLI and NCE decoder definitions
Updated the DCC Signal Head to work like the DCC Signal Mast and all known hardware. The NMRA Standard
for addressing DCC Signal Accessory Decoders is poorly written and ambiguous. JMRI support for these
is moving toward what the hardware manufacturers are actually doing, and away from NMRA DCC Working Group diktat.
Add LinkingLabel, a type of icon on the various panel editors that will let you move to another window or open a web page.
Just a starting point for eventual web-server features.
Improvements to aspect-signaling docs.
Added a new LinkingLabel icon type to the three kinds of panels. This can be
text or an icon. When clicked, it takes you to another JMRI window or an external
web page or file. Steve Todd also built in web support for remote viewing.
Dick Bronson improved the NS-2008 signal set.
Removed the ability to run the NCE serial interface at 19,200 baud. This speed has been
found to cause problems with the NCE command station. The default is now 9,600 baud. If you were
running at 19,200 baud, you'll have to reconfigure your NCE command station to run at 9,600.
John Crellin provided decoder definitions for the MRC 1619 through 1624 decoders,
and updated the TCS X definition.
On MacOS X, change the script in the launcher icons to properly handle
Oracle versions of Java.
Michael Mosher updated the SoundTraxx Diesel Tsunami definitions and provided a new BLI Light definition.
Paul Bender fixed a bug in the JMRIClient implementation that prevented the names of CBUS turnouts and sensors from being passed to the server.
Ken Cameron made the following changes to NCE systems:
- Added preliminary support for the SB5 and Twin systems.
- Expanded support for the updated PowerCab (1.65) and the updated USB (7.*)
- Changed the way NCE systems figure out which menu options are supported for a given connection type.
- Removed the multiple line format of the Cab Monitor based on user feedback and headaches it caused the code.
- Cab Monitor now displays AIU inputs bits as functions on the cab.
- Added USB Interface support to allow changing the USB cab number
- The following changes were made to network services:
- The JSON Server can be automatically started when JMRI starts -- Randall Wood
- The JSON Web Servlet can update or add turnouts, sensors, and other objects -- Randall Wood
- Fixed a problem with help links that reported a 404 error through the default browser. -- Dan Boudreau
- On LocoNet systems with transponding, fix a spurious power-off when doing ops-mode decoder reads.
- You can now use the "Start Up" pane in preferences to have any of the six
Operations windows open when the program starts. You can also use that to
put buttons on the PanelPro or DecoderPro startup window to open the Operations
windows without going through the menus.
- In the past, all menu items were listed under the Preferences "Start Up" choices
for a new action or button. This is slowly changing so that only valid ones,
based on the currently configured connection(s), are displayed. This is meant to
make it easier to find the ones you're looking for. This is a subtle change to
the code, so please let us know if something has gone awry. About 1/3 of the
system-specific items have been removed so far, with the migration intended to
be complete by the time JMRI 3.4 is released this coming summer.
- Added the possibility to copy a selection from the System Console to the clipboard -- Matthew Harris
- Michael Mosher updated the Tsunami decoder definitions
- Michael Mosher added a new NCE N103 decoder definition
- Nigel Cliffe provided definitions for the Harman DCC "Signalist" decoders
- The DCC manufacturers list was updated with the most recent NMRA assignments
- There's now a
layoutblocks variable predefined
for access to the LayoutBlockManager from Jython scripts.
- Mattias K updated the LocoNet support to track the time that LocoNet messages were received.
- Dick Bronson updated the definitions for RR-CirKits products
- Stephen Lowens updated the SoundTraxx Tsunami Rapido definition
- Dave Heap updated the ESU V4 decoder definitions
- Nigel Cliffe provided a definition for Harman DCC "Signalist" decoders.
- Decoder definition for the MPM RRR cars and advanced light functions decoder from Wekomm - Alain Carasso
- Improved internationalization for the About dialog - Jens E Christensen
- Improvements to JSON server and protocols:
- JSON clients can now add, edit, and delete consists. - Randall Wood
- Begin versioning the JSON protocol so clients can use an explicit JSON protocol version. - Randall Wood
- Include the JSON protocol version in the ZeroConf advertisement for both network services that support the JSON protocol. - Randall Wood
- Allow the JSON socket connection hello message to be read using an HTTP GET to /json/hello - Randall Wood
- Allow the JSON hello message to be requested by JSON clients through the socket connection. - Randall Wood
- Add a JSON method to enumerate all advertised ZeroConf services; this is intended to allow a client outside the ZeroConf boundary with only knowledge of the Web service to request a JSON-formatted list of all network services (WiThrottle, SRCP, LocoRMI, etc...) with ports and connection information. - Randall Wood
- Improved web server performance with a large number of clients or large number of
requests per client. - Steve Todd
- Request administrator rights when installing - fix for bug highlighted by Suzie Tall
- The TCS decoder definition files have been realigned with great help from TCS.
All old definitions are still there, but three new families have been created from which
only the one with the latest firmware (called Jan 2012) is always visible.
If you identify a decoder on the programming track the correct decoder definition
file will be called. The decoder files now also leverage the unique decoder type
ID provided by TCS. When identifying the decoder not only a large family will
populate but only the right decoder featuring its correct firmware will be shown.
- There's also a new feature in the tool allowing to replace obsolete decoder definition
files with their current replacement.
To do this, select "Update Decoder Definitions" from the "Debug" menu.
In this release, the only decoder definitions that are available for
update at the TCS ones. If you have TCS decoders and want to use the most
recent decoder definitions, please back up your files and then go ahead with doing
- An initial decoder definition file for the soon to be released WOW sound decoder
So far only the NON sound related CV's are supported, as the sound CV's
require additional rework of the code base.
- Peter Ulvestad improved the Atlas 342 and 345 decoder definitions
- Nigel Cliffe improved some CT Elektronik decoders.
- David Heap improved the Help Locations window.
- Dave Sand contributed a new ManageBlocks.py sample script
- Andrew Crosland added dynamic changing of speed step modes to the SPROG throttle
- Andrew Crosland made changed to the Bachrus Speedo following user feedback
- Change window layout to show dial and graph together
- Added optional grid overlay
- Added selectors for programming track or main track operation (doesn't do very much at present)
- Added User editable title string
- Dave Heap added further Patches to fix ESU V4 Indexed CVs decoder definitions, plus some code in LocoFile.java to correct existing roster entry files as they are read, in order to match corrected definitions.
- Joan de Castro added additional Catalan translation.
- Prevent potential NPE during JSON operations
- Set JSON protocol version for 3.4