JMRI Changelog

New in version 3.7.1 Dev

January 17th, 2014
  • OpenLCB library updated to better handle hub operations.
  • Several internal updates for how CV reading and writing is changed to improve handling of indexed CVs. If you have your own code or scripts that write or read CVs directly, check to see if we've broken anything, please.
  • Improved the handling of decoders that contain only long addresses, no short addresses.
  • Peter Ulvestad updated the Hornby 8249 default values.
  • Nigel Cliffe and Dave Heap fixed problems with international characters in four Python scripts: AAR105.py, RailDriver.py, RocoCrane46902.py, Zimo_pseudo_programmer.py
  • Added sample scripts
  • New feature, you can now let the program create your locomotive consists for you.
  • New feature, you can now adjust all of your train departure times by a selected number of hours.
  • New feature, you can now edit or view two locations at the same time.
  • The train edit window now shows if there are road or load restrictions for the train.
  • Fixed a bug in track copy where the car types serviced weren't copied to the new track.
  • Fixed a bug in train copy where the train build options weren't copied to the new train.
  • Fixed a bug in the router when the option to return a car to staging is enabled, and the car get's a custom load from staging.
  • improved the handling of DCC addresses.
  • updated the XPressNet network connections (LIUSB-Server, LIUSB-Etherenet, and XnTCP) to allow automatic reconnection attempts in the event of a dropped network connection.
  • improved support in the generic network client for automatic configuration. This includes improvements to the generic mDNS/ZeroConf/Bonjour automatic configuration tools.
  • added mDNS support to the Lenz LIUSBEthernet adapter.
  • updated the BN 1989 signal definitions.

New in version 3.5.6 (December 11th, 2013)

  • Fixed a problem with starting the LocoNetOverTcp server when running the JMRI faceless app.
  • Created a new signal head type "Triple Output RGB".
  • New feature for folks using schedules to route cars. On a per train basis, you can ask the program to pull cars with a final destination where the train being built doesn't provide the most efficient route for the car.
  • Updated the "Show cars types serviced" tool for a train.
  • Improved the tooltips for lots and lots of decoder definitions to make them more consistent.
  • Added Digitrax decoder types.
  • A bug in SRCP support was fixed

New in version 3.4 (December 10th, 2013)

  • 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 editor.
  • 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 formating 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 appropriate.
  • 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 issue.
  • 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 of text.
  • 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 window.
  • 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 purposes.
  • 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
  • Editors:
  • 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:
  • 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.
  • SignalMast:
  • 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.
  • Entry/Exit(NX):
  • 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 Pro:
  • 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 poing.
  • 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 dispather 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 Marklin-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 specifically below.
  • 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 idle.
  • Added filesystem browsers to the default path and file entries in the Preferences
  • VSD file can now explcitly 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 realligned 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 this update.
  • An initial decoder definition file for the soon to be released WOW sound decoder is included. 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 Electonik 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

New in version 2.4 (December 23rd, 2008)

  • Many updates to decoder definitions and new decoder definitions.
  • New systems and devices supported:
  • CBUS
  • ESU ECoS
  • Maple Systems
  • RPS
  • Many new decoders, including:
  • New Lenz Standard decoder definition
  • Several new MRC sound decoder definitions
  • New Team Digital SRC16 definition
  • Multiple updates for ESU decoders
  • Many new Tsunami definitions, including several diesels
  • New definition for the Hornby 8249
  • Many new and updated QSI definitions
  • New features:
  • A new operations section to help you build car manifests for your railroad
  • New "Import Decoder File" and "Import Decoder URL" items in the Debug menu to make it easier to install new decoder definitions
  • New icons for medium B&O signal heads, small B&O signal heads, medium PRR signal heads. and some improvements to the small PRR signal heads
  • Support for Sections and Transits, which are used in layout automation
  • Much more robust startup procedures are now used
  • You can now create and edit roster entries from the Roster menu, without a layout connection
  • The new "Window" menu lets you rapidly move to any open window
  • JMRI now uses British railroad terminology when the language is set to "en_GB"
  • JMRI windows can now be accessed from a web browser
  • Updates:
  • Throttle tool has been updated to improve it's interface and operation. It now gets labels for the function buttons from the individual roster entry, so you can label the proper buttons with the sounds, etc, they control.
  • Updated the Lenz XPressNet code to take advantage of XPressNet 3.6 capabilities if available.
  • The Layout editor has been improved with many features: snap-to-grid, zooming, a reporter icon, train markers, selectable scroll bars.
  • Many new and updated help pages.
  • New sample scripts:
  • NumberInput, showing how to use a series of sensors on a control panel to e.g. enter a track number in a memory
  • ParallelPortTest and ParallelPortTurnouts, which demonstrate connecting JMRI to layout hardware through a parallel (printer) port.
  • RosterLoop shows how to access the entire locomotive roster
  • RobotThrottle for automated running of trains
  • USBThrottle for configuring a USB joystick or other control to act as a throttle.