JMRI (Java Model Railroad Interface) is widely used for DCC decoder programming, rosters, panels, sensors, and layout control. RailScanPro can work with JMRI data in several places, including roster import/export and RailCommand layout import.
What JMRI Can Provide
| Feature | Provided By |
|---|---|
| Locomotive roster | JMRI roster data imported into RailScanPro |
| Decoder details | JMRI/DecoderPro data used to seed or verify locomotive records |
| Layout/panel data | JMRI panel or layout data imported into RailCommand where supported |
| Hardware context | JMRI can remain part of the local hardware ecosystem |
| Car routing / waybills | RailScanPro (RailCommand) |
| Inventory, photos, reports | RailScanPro |
For live train running, prefer the RailCommand desktop app and local runtime workflow. JMRI may still be part of your hardware environment, but RailCommand's operator docs should be followed for live RailCommand sessions.
Prerequisites
- JMRI 5.0 or later running on a computer on your local network
- A saved JMRI roster or exported layout/panel file, depending on the workflow
- RailScanPro access to the target organization and layout
- A RailCommand layout when importing layout-specific data
Roster Import
Use roster import when you want RailScanPro to know about locomotives already defined in JMRI.
- In RailScanPro, open
/app/settings/integrations/jmri. - Choose the roster import flow.
- Upload or select the JMRI roster data.
- Review matched locomotives.
- Approve new draft records or update existing inventory records.
RailScanPro is the home for photos, collection details, reporting, and operational assignments. JMRI can remain the home for DecoderPro-specific decoder setup if that is how your railroad is managed.
Roster Export
Use roster export when you want RailScanPro data available for JMRI workflows.
Open /app/settings/integrations/jmri/export and follow the export prompts.
Layout Import
Use layout import when you want an existing JMRI panel or layout to become a starting point for RailCommand.
- Create or open a RailCommand layout.
- Open
/app/railcommand/layouts/{LayoutId}/jmri-import. - Import the JMRI file.
- Review topology, blocks, sensors, turnouts, and signals.
- Add RailCommand-specific operating details such as industries, staging, car routing, routes, and session data.
Live Dispatching Context
RailCommand CTC and desktop operator surfaces depend on current layout, hardware, runtime, and session state. If your railroad uses JMRI for detectors, turnouts, or command-station access, confirm the RailCommand hardware and runtime setup before assuming live state will appear.
Useful RailCommand pages:
- Connection manager:
/app/railcommand/connection - Hardware settings:
/app/railcommand/layouts/{LayoutId}/hardware - CTC panel:
/app/railcommand/layouts/{LayoutId}/ctc-panel - Desktop app:
/downloads
Troubleshooting
Roster import does not find locomotives - Confirm the JMRI roster was saved/exported and that the file is the one you intended to import.
Imported locomotives do not match existing inventory - Check road name, road number, DCC address, manufacturer, and model number. You may need to approve draft records manually.
Layout import looks incomplete - JMRI panel data may not contain all RailCommand operating details. Add industries, staging, car routing, and session details after import.
Live hardware state is missing - Check RailCommand hardware setup, local runtime status, the command station, and whether JMRI is actually part of the configured live path.
Next Steps
- RailCommand Layout and Panel Editors — define the layout that JMRI data can support
- Operations Intro — understand the full operations system
- Car Cards & Waybills — add car routing on top of JMRI hardware control