OpenLCB "Download Firmware" Tool

Table of Contents
Example of the Download Firmware Window

General information

Some OpenLCB devices allow users to update the firmware (internal program) via the OpenLCB connection. The OpenLCB Download Firmware tool provides a mechanism to perform updates via an OpenLCB connection.

This tool supports firmware update files distributed in ".hex" file format (sometimes referred to as the Intel "I8HEX" file format).

The tool automatically determines how to interpret the firmware update and performs a number of file and data integrity checks before the update information can be used. If any issues are identified in the firmware file, the user is informed and the tool will not allow the user to update the device with what could be erroneous firmware information.

Disclaimer

This tool is capable of modifying the firmware in OpenLCB devices in ways that could make the devices inoperable. The developers of this tool have attempted to reduce the chances that the tool would corrupt a OpenLCB device's firmware. We cannot guarantee that there is no risk of corrupting device firmware when using this tool. It is impossible for the tool developers to predict every way of using the tool and it is impossible to predict the nuances of various devices, firmware files, computer operating systems, computer-to-OpenLCB interface hardware, etc.

In cases where a firmware update attempt does not apply properly, it is often possible to re-apply the firmware update to the device to restore proper device functionality. This has been recommended by at least one OpenLCB device manufacturer and has been found to be effective in some cases by the developers of this tool.

Use this tool at your own risk.

Updating Device Firmware Contents

To use this tool to update a OpenLCB device's firmware:

What if my device does not work correctly after updating the firmware?

Sometimes the device firmware update process does not appear to work, and the device may fail to provide its normal functionality. Often, repeating the firmware update process one or more times will solve the problem. This has been recommended by at least one OpenLCB device manufacturer and has been found to be effective in many cases by the developers of this tool.

In other cases, a device may not be easily restored to proper operation after a firmware update attempt. In this case, consult the device manufacturer for further instructions.

Consult your device documentation and, if necessary, the device manufacturer's technical support if your device fails to function properly after updating its firmware.

Error Messages

This tool can identify problems at two different stages of the firmware update process. The tool checks for problems within the firmware update file when reading the file. When the user activates the "Download" button, the tool checks the validity of the parameters which the user can change in the tool window for obvious problems. (Many download files don't have parameters, so this might not apply to you) If any issues are found at either of these stages, the tool will update the message at the bottom of the tool window. If a parameter is found to be out of range, that parameter value will be shown with red text instead of black text. The "Download" and "Verify" buttons will not perform any useful function if any of the parameters are invalid.

Typically, when this type of pop-up window appears, a message in the JMRI "console" log will provide additional technical detail about the problem. The firmware update file provider may find this information useful in correcting firmware update file issues.

The tool may also create a pop-up window under certain circumstances.

"You Must Select An Input File" Pop-up Window

The tool will open a pop-up window with this message if the user uses the "Cancel" button on the file selection pop-up window. The tool cannot perform a firmware update if no firmware file is selected.

"File Not Found" Pop-up Window

The tool will open a pop-up window if the file selected by the user does not exist. The pop-up window will state that the file was not found. Use the "Select" button to re-specify the correct firmware file.

"Invalid value for Options key" Pop-up Window

The tool will open a pop-up window if the file selected by the user contains a value for the "Options" key which is not supported by this tool. Consult the device manufacturer for advice if this occurs.

"Firmware file cannot be read." Status Message

This status message is shown when an abnormal event occurs which prevents the tool from reading the file from the disk. This is typically a problem with the computer or the media from which the file is being read.

"Invalid parameter(s) above." Status Message

This message indicates that one or more of the values are out of range. Usually it is unnecessary for the user to change any of the parameter values because either the tool's default values are appropriate or because the firmware file specifies the required values. If an invalid value is found in one of the parameter entry fields, the invalid parameter will be highlighted in red. To resolve the problem, close the Firmware Download tool, then re-open it and re-read the file. Be careful not to change any of the parameter field values. If the tool still identifies a value as invalid, consult the device manufacturer.

"Do not have any firmware information to send." Status Message

This status message indicates that the firmware file did not contain any valid firmware information. Consult the device manufacturer for a valid firmware file.

"Firmware content in the file is not understood" Status message

When the tool reads a firmware file which it does not understand, it will show the message "Firmware content in the file is not understood by this reader." in the status line at the bottom of the tool window. Consult the device manufacturer for support - usually this means that the manufacturer must provide a new firmware file.


What this tool does and does not do

The table below shows some capabilities and limitations of this tool.

"Download Firmware" Tool Capabilities "Download Firmware" Tool Limitations
This tool can read a firmware update file from the computer's local storage. This tool does not acquire firmware update files from manufacturers.
This tool can send the contents of a firmware update file to the node with a request that the associated device update its firmware based on the contents of the transfer. This tool cannot know whether any of the firmware update file information was successfully programmed into a OpenLCB device's memory.
This tool cannot know whether any of the firmware update file information actually matches or is different from information within the device's firmware.
This tool does not read the contents of a OpenLCB node's firmware.

Some devices which support firmware update via this tool

The table below lists some devices which are believed to allow firmware updates using this tool. This list is not necessarily complete, and does not necessarily apply to all versions of the listed devices.

Manufacturer Product
??? ???
???
???
Table updated June, 2015

Other Notes

If you need additional help

If you experience difficulty with this tool and believe that your problem is caused by the tool, seek help through the JMRI Users at Groups.io.

If you believe that your problem is related to the firmware update file or the hardware itself, consult the hardware instructions and the hardware manufacturer's technical support.

OpenLCB Technical Note

This tool relies for reliable operation on an OpenLCB feature called "Freeze/Unfreeze". For more information on that, including issues of standards compliance, please see the package documentation.

(This is the package/jmri/jmrix/openlcb/swing/downloader/LoaderFrame help page)