Release Notes for JMRI 1.4 production release
Date: April 8, 2004
From: Bob Jacobsen
Subject: Production version 1.4 of JMRI/DecoderPro is available for download
Although there are many important items on the to-do lists, it was
time to put out a new production version. There are several known bugs
that remain in this version, and we'll probably continue to find new
ones. For information on bugs, please see our bug tracker at:
Requests for enhancements (RFEs) are tracked via:
Please feel free to add to either of these!
- Panel files written by 1.3.11 and later versions may not be readable
with versions before 1.3.0. Older files will remain readable, but if
you edit them with this version and then store them, you might not be
able to read them if you go back to version 1.2.5.
- There is no OS/2 version of this test release because our OS/2
test machine is no longer online. If you have a suitable OS/2
machine and are willing to host our release testing, please let me
- If you are building your own copy of the program from the source
code using Ant, please make sure to update the build.xml file.
There have been some changes in the build procedure during the
- These downloads are significantly larger than version 1.3.5 and
previous. This is due to the addition of a help system starting in
test version 1.3.8.
- LocoNet sensor numbering has been changed starting in version
1.3.4! This will effect people who have panel files (.xml files
containing panel definition) for LocoNet block occupancy sensors.
The sensor numbers now start with 1, not 0, so you'll have to edit
the panel files to change e.g. LS0 to LS1, LS23 to LS24, etc. This
does not effect input via other (non-LocoNet) protocols, including
C/MRI, NCE AIU, etc. If you use LocoNet sensor numbers for the
Speedometer, you'll have to increase them by one also.
- If you have pre-1.2.3 roster entries that use Zimo decoder
definitions, you'll have to recreate them. The Zimo decoder
definitions have been completely reworked in a better organization
starting with test version 1.2.3.
Please use these links for downloading, including the
"?download" at the end. That adds to SourceForge's advertising
statistics, which makes them happy to host our stuff.
Changes since production version 1.2.5:
- Many bugs when using JMRI with Java 1.1.8 (Classic Mac) found and
removed; again runs complete test suite there.
- Roster printout includes a graphical speed table (D Miller)
- Bug preventing access to C/MRI sensor 128 fixed
- C/MRI monitor display was NFG for bytes with high bit set; fixed.
- Throttle bug fix: stop at 100% (Paul Bender)
- Printing bug fix: Some hex values not formatted right (Dennis Miller)
- Roster "Delete" entry changed to "Delete entry" to avoid confusion
- More German translations (Simon Ginsburg)
- Lenz improvements (Paul Bender)
- System info panel for inquiring about XPressNet command
station version, etc (P Bender)
- LI101 tool update (P Bender)
- Configuration improvements (advanced preferences):
- Allow rename of roster file location
- Make adv prefs panel display faster by deferring list
- "Start action" now has more options
- Can now add buttons to main window at startup time
via advanced preferences
- Can configure default roster values, e.g. Owner
- Signal improvements:
- Signal table lets you configure, control signals via GUI
- "Simple signal logic" works, including protecting facing
- "SE8cSignalExample.xml" file provided to show SE8c operation
on a loop+siding layout.
- Control panel improvements:
- Italic text problematic in menu; fixed
- Displays name of panel, allows editing
- Can enable/disable pop-up menus, drag&drop, click to activate
by checkboxes on the editor panel
- Icon file chooser now stays in place
- Load/store file chooser sees new files
- Several minor graphics bugs (screen refresh) fixed
- LocoNet improvements:
- The EStop buttons for the individual slots in the LocoNet
slot monitor now act on button-down, without waiting for
a complete click.
- Fix BDL16 programmer GUI
- Bring SE8c programmer up to date with new SE8c features
- PM4 programmer crashed if opened with no LocoNet present; fixed
- Updates to Cornwall RR signals, panel
- Jython support in startup scripts.
- Create utility package to handle string parsing, hex output formatting, etc.
- Advanced preferences panel now has scroll bars if it gets too big.
I'd appreciate feedback on this; the sizing and resizing logic might
not be right yet.
- Printing now removes duplicates, has better borders. Fixed a bug that
prevents decoders with more than 80 CVs from printing. (Dennis Miller)
- Fixed bug(s) in roster that prevents changing the roster location.
That feature in the advanced prefs should now work. (Paul Bender)
- Wangrow now shows as an explicit choice in the preferences, and as a
separate system type.
- XpressNet improvements: Turnout messages corrected, should now work.
Internal improvements to ops mode programming and throttle. (Paul
- Improvements to LocoNet Monitor output text for INPUT_REP, SW_REP
messages. (Suggested by David Townend, more changes to come)
- Larger space for address on PM4 programmer and add PM42 options,
- Fixed bug causing inconsistent addressing of LocoNet sensors; see
note under warnings.
- Digitrax Zephyr is a DCS50, not DB50 (pointed out by Ron Wojtylko)
- Fixed wrong logic for one signal in SE8cSignalExample
- Fixed missing "on" bit in SE8c signal messages
- Jar file now carries index, manifest, so it should be possible to
launch JmriDemo directly from it.
- Update some signal logic for the Cornwall RR signals 6A, 6B, 18A and
18B, add Conewago pocket.
- LI100/LI101 Communications timing bug fix (corrects LI101 lock up
problems) (Paul Bender)
- Internal code cleanup in the XPressNet Tools (Paul Bender)
- Empty DecoderPro tabs are now grayed-out; an advanced option is
provided to suppress them completely if desired.
- Another attempt at advanced preferences panel scroll bars and
limiting the size of the panel so it fits on the screen. I'd
appreciate feedback on this; the sizing and resizing logic might not
be right yet.
- More improvements to the LocoNet monitor display of addresses.
- French translation available for many menus and labels. (Francois Taburet)
- LocoNet fast clock tool now available: lets you set and query the clock.
- CornwallRR program has a new crossover installed, a better algorithm
for setting the turnouts at power up, some minor improvements to the
signal logic, and a new graphic (Nick Kulp)
- Fixed a bug that was causing some preference options to appear multiple times.
- DS54 definition file now correctly displays CV47
- Jack Shall updated the appearance and added ToolTips in the
DecoderPro comprehensive programmer.
- Dennis Miller added a "Help" system, which is accessed from the main
menubar. Initial contents are Joe Ellis' DecoderPro manual (with
some modifications), plus some additional pages.
- Paul Bender added an initial version of a consist-manager tool, based
on a very general infrastructure. It should work for advanced (CV19)
consists on any system currently supporting ops mode programming.
- DecoderPro will now use "Direct Bit" programming mode first if it's
available in both the command station and decoder (previously,
priority had been given to paged mode)
- Paul Bender added a Command Station Configuration manager. This code
attempts to enable only the portions of the JMRI library that are
useable with a given command station. For example, with the Lenz
Compact/Atlas Commander, the Programmer is disabled since these units
do not support programing from an XPressNet device. He also added
code to the tools menu to disable items for which a manager does not
- MERG decoders updated (Len Royles, Phil Grainger and others)
- Support added for the SPROG command station, including initial
throttle support. This has had only limited testing, so feedback
would be greatly appreciated!
- Alex Shepherd added support for the LocoNetOverTcp protocol.
- Plugin system added: See http://jmri.org/Technical/plugins.html
- Mac OS X now puts it's menus on the main menubar, making the
applications much more Mac-like; Updates to icons, etc, on Macintosh
- Alex Shepherd added a new "LocoBuffer statistics tool" which allows
users of current LocoBuffer versions to view statistics on LocoNet
- A new "Decoder ID" page has been added to the web which is based on
the current DecoderPro definitions automagically:
- Paul Bender added response message handling routines to Lenz Turnout
Code. Forced send of an "off" after an "on" is sent to an accessory
decoder. This corrects the "multiple fire issue" some people are
seeing (And I have been able to replicate using a Switch-It, and a
button to throw the turnout back to it's starting position).
Turnouts displayed through JMRI (either through a Control Panel, the
Turnout tool, or the turnout table) will now react to commands sent
via another XpressNet device on systems that have feedback.
- Paul Bender started work on Lenz Sensor code. Skeleton in place.
Feedback encoders should be reflected in the sensor table, though
they are not currently handled. (this has not been tested).
- Paul Bender made modifications to the throttle GUI code so that it
actually registers as a PropertyChangeListener with the system
dependent throttle code. He also modified the throttle GUI and back
end code, so the "Dispatch" button can be shut off on systems for
which this makes no sense.
- Code for finding "DTD" files reworked in an attempt to fix startup
problems on certain XP systems. Not really clear if it worked,
feedback greatly appreciated.
- Paul Bender added ops mode programming support to Lenz.
Fixed bug in LocoNet monitor where the Throttle ID field was being
- Initial public release of Jython support for scripting and control
- Bug that prevented moving the Roster location (see advanced
preferences) is probably fixed.
- Bug preventing display of SE8c example on some systems
(http://jmri.org/apps/Signalling/SimpleSignalExample.html) is believed fixed.
- Initial inclusion of "PacketPro" application for testing decoders
- XpressNet connection can now be made via an XPA telephone adapter &
modem (Paul Bender)
- Tooltips can now be added to items in the decoder definition files.
If present, they override the definitions in the programmer
- Phil Grainger added the Digitrax DH83FX decoder, and the needed 5th
output function to the Digitrax "Basic" decoder definition.
- Robin Becker updated the Soundtraxx LC Steam and Diesel decoder definitions
- Wayne Eric provided a decoder definition for the MRC AD370 sound decoder.
- Ian Havercroft updated the version identification in ESU decoders so
they successfully identify.
- Digitrax DZ123 definition added, with ident info courtesy Robert Johnson
- Jack Shall updated the Lenz 80 decoder file.
- DH163 can now do direct-bit mode programming
- Fix problem with creating two copies of roster entries, Bug 871882
- Allow multi-line comments in roster comment fields: Dennis Miller
- New NCE D13SR Torque Compensation decoder file from Michael Mosher
- Panes from decoder files (but not programmer files) are active even
if they contain no variables (Requested by Manhart Matthias)
- LocoNet Throttles were behaving poorly in version 1.3.8, with the
speed slider not moving correctly. Fixed.
- Fix problem with not prompting to save file when closing window after
changing a speed table entry, bug 881556
- Better diagnostics if a LocoNet RMI connection (LocoNet
server/client) fails (RFE 874488)
- Peter Brandenburg has contributed a new CT_Elektronik_Sound_GE_70_80
decoder definition file.
- Fixed bug 874472 causing DecoderPro not to have a LocoNet menu when
connected via a Loconet server
- Added size information to several more decoders. (Doesn't effect
DecoderPro operations, but does appear on the selection web pages)
- Improved formatting of the throttle ID in the LocoNet Monitor
(suggested by Glen Colbert)
- Added title to PowerPanel frame so that it's easier to find the icon
- Lenz LI100/LI101 connection has improved timeout logic, so that it
doesn't slow the computer at startup
- New TCS M1 decoder definition from Eddie Delozier
- Paul Bender improved and extended the XPressNet configuration tools.
- Fixed a technical bug in the debug Programmer that would cause
occasional intermittent test failures.
- Fix bug where programmer window would close even when close operation
was cancelled during save
- Updated Ant control files to separate out development uses from the
less-common functions, which improves build time
- Added sample scripts for a siglet and a simple automaton to the
jython directory. Added PacketPro.bat for Windows. These features are
still quite preliminary, as evidenced by a lack of documentation, and
is certain to change.
- Soundtraxx DSD, DSX, LC decoders updated by Robin Becker
- Bug where decoders that differ only in family name, esp. certain NCE
decoders, could not be properly selected.
- Roco LocoMouse has now been tested to work (Paul Bender)
- QSI decoder in the Lionel Challenger now identifies (Walter Thompson)
Additional QSI models added using identification info provided by
- Tooltips now displayed in the decoder-selection tree from the
comments in the definition files (Jack Shall)
- Tooltips added to some NEC, Digitrax decoders (Jack Shall)
- New TCS M1 decoder definition contributed by Eddie Delozier.
- Lenz sensor inputs now supported (Paul Bender)
- Problem with Lenz throttles in top part of speed range corrected (Paul Bender)
- Added "Load Throttle" as one of the available buttons/startup actions
in advanced preferences. Also added I8N to those items (only English
at present), and made the mechanism easy to extend.
- Added example of creating your own button via a script
- Various small improvements to panel load/store to improve robustness
of storing signaling information
- "Simple Signal Logic" tool now allows a signal to drop red if any one
of up to four blocks is occupied. Old panel files still work, but
will be automatically rewritten in a new format when stored again.
- Fixed bug #912806: Read Sheet doesn't read CV7, CV8
- Fixed bug #879990: Changing Roster Entry pane fields doesn't set file-dirty
- Michael Green provided an update to the SoundTraxx LC Diesel PNP FX
decoder definition to fix some misleading typos
- Michal Basta provided internationalization for the Czech language, so
DecoderPro is not available in Czech both with and without
- (Paul Bender) Improvements to handling of XPressNet input sensors.
Added a timeout for sending turnout "off" messages on certain Lenz
- Added CV7, CV8 to the Digitrax DS54 programmer (Walt Thompson)
- Paul Bender fixed some problems with XpressNet throttles that first
appeared in JMRI 1.3.10. These included odd behavior in 128 and 28
step mode, and the speed scale being wrong in 28 step mode.
- Nick Kulp contributed three new sets of signal icons, available at:
- Michael Green provided new decoder definitions for the S Helper
Service F3 and F7 DCC Sound decoders. These decoders were custom
manufactured by SoundTraxx for S Helper Service's engines.
- The sample panel for Nick Kulp's PanelPro clinic is in the distribution at
- Paul Bender improved handling of XPressnet turnout and sensor
messages for certain Lenz command stations.
- Windows installer no longer removes old files from the xml, resources
and lib directories, so that user-added files will be kept.
- Paul Bender updated the XPressNet algorithms for driving turnouts,
with help from Marco Forcone
- Fix a problem with the SE8 example file that kept the background from
being visible. (Bug 928363)
- Randy Jones provided decoder ID for the BLI AC5 Cab Forward
- Larry Meaney provided decoder ID for the Digitrax DN163K0b decoder
- Paul Bender changed the handling of flow control on an XPressNet port
when hardware flow control is disabled.