Learning Center

JMRI and RailScanPro: Better Together

JMRI controls your hardware. RailScanPro manages your collection, routes your cars, and dispatches your crews. Here's how they work together without duplicating effort.

JMRI (Java Model Railroad Interface) is the most popular open-source DCC control software in the hobby. Tens of thousands of layouts run JMRI — and for good reason. Its throttle system, turnout control, and programming track integration are mature, reliable, and free.

RailScanPro does different things: inventory management, AI photo identification, car routing, dispatch management, and community features. The two platforms complement each other naturally, and RailScanPro's integration connects them at the right seams.

The Division of Labor

Think of JMRI as the layout's nervous system — it handles electrical signals, decoder programming, and physical control of locomotives and turnouts.

Think of RailScanPro as the layout's brain — it knows what the trains are hauling, where they're supposed to go, and what happened in the last ten operating sessions.

What JMRI Does What RailScanPro Does
Throttle control Inventory management
Decoder programming AI photo identification
Turnout control Car routing & waybills
Block detection Dispatch management
Signal logic Valuation & insurance
WiThrottle server Community & marketplace

Roster Sync

The integration starts with your locomotive roster. Most JMRI users have spent significant time building a roster — entering DCC addresses, decoder types, speed tables, and function mappings for each locomotive.

When you connect RailScanPro to JMRI, it reads your roster automatically. Each entry in JMRI becomes an item in RailScanPro (or is matched to an existing item by road number). You keep all your JMRI configuration; RailScanPro adds photos, AI identification, valuation, and the other inventory layers on top.

The sync is one-directional: JMRI is the master for DCC data. RailScanPro doesn't write back to JMRI. This respects JMRI's role as the authoritative source for hardware configuration.

Block Occupancy on the CTC Panel

RailScanPro's dispatcher view includes a CTC (Centralized Traffic Control) panel — a live display of your track schematic. When connected to JMRI, block occupancy and turnout positions update in real time as trains move and operators throw switches.

This creates a true dispatcher role: someone watching the board while crews operate, issuing movement authorities and managing meets and passes between trains. It's the closest thing to prototype CTC operation you can do on a model layout.

The Setup Process

  1. Enable JMRI's JSON/WebSocket server (in JMRI Preferences → Web Server)
  2. In RailScanPro, go to RailCommand → Integrations → JMRI and enter your JMRI machine's IP address
  3. Click Sync Roster to import your locomotives
  4. Start an ops session — block occupancy data feeds into the dispatcher panel automatically

The full technical walkthrough is in the JMRI Integration Guide.

Do You Need JMRI?

No. RailScanPro's car routing, waybill generation, and session management work without any hardware connection. Many operators use RailScanPro to generate switch lists and run a session entirely on DC with conventional block control — the software provides the organization even without the hardware link.

JMRI integration is an enhancement, not a requirement.

Next Steps