JMRI

JMRI

open_source

JMRI is a free, open-source Java software suite for model railroad computer control, featuring DecoderPro, PanelPro, OperationsPro, and support for 50+ hardware systems.

About

JMRI is a comprehensive, open-source Java application designed for model railroad enthusiasts who want to control and automate their layouts using a computer. The project provides several integrated applications: DecoderPro® simplifies the programming of DCC decoders with a graphical interface; PanelPro™ allows users to design real-time control panels that mirror physical layouts; OperationsPro™ manages car routing and generates train manifests for crews; DispatcherPro™ handles dispatching and throttle management; and SoundPro™ adds audio support. JMRI supports an extraordinarily wide range of hardware including Digitrax LocoNet, NCE, DCC-EX, Lenz XPressNet, SPROG, ESU ECoS, Märklin CS2, and dozens more. Beyond basic control, JMRI includes advanced automation tools: Logix and LogixNG provide no-code/low-code rule engines for automating layout behavior; Warrants enable automatic train running; and a full scripting API allows Java and Jython scripts to extend functionality. It runs on Windows, macOS, Linux, and Raspberry Pi OS. JMRI is ideal for hobbyists who want to move beyond manual control without building an entire custom system from scratch, as well as developers who want to contribute to or extend an active open-source project.

Key Features

  • DecoderPro® DCC Decoder Programming: Graphical interface for reading and writing DCC decoder CVs, simplifying the configuration of locomotive decoders from any connected computer.
  • PanelPro™ Control Panel Designer: Build and operate graphical control panels that reflect the real-time state of your layout, including turnouts, signals, sensors, and blocks.
  • LogixNG No-Code Layout Automation: Visual, rule-based automation engine (LogixNG) that lets users automate layout behaviors like signaling, routes, and train movements without writing code.
  • OperationsPro™ Car & Train Operations: Manage freight car routing across the railroad, generate train manifests, and provide operating instructions for realistic session-based operations.
  • Broad Hardware Support: Compatible with 50+ DCC command stations, networks, and protocols including Digitrax, NCE, Lenz, DCC-EX, ESU, SPROG, Märklin, MQTT, LocoNet, and many more.

Use Cases

  • Programming DCC locomotive decoders with a guided graphical interface instead of manually entering CV values.
  • Designing and displaying real-time graphical control panels for a model railroad layout.
  • Automating signal logic, turnout routing, and train movements using the no-code LogixNG rule engine.
  • Managing prototype-style freight car operations, generating switch lists and train manifests for operating sessions.
  • Integrating and controlling a wide variety of DCC command stations and hardware devices from a single unified software platform.

Pros

  • Completely Free & Open Source: JMRI costs nothing and is backed by an active community of contributors, with continuous updates and a rich ecosystem of decoder definitions.
  • Exceptional Hardware Compatibility: Supports an unmatched range of DCC systems, command stations, and protocols, making it suitable for virtually any model railroad hardware setup.
  • Cross-Platform Java Runtime: Runs natively on Windows, macOS, Linux, and Raspberry Pi, so users are not locked into a single operating system.
  • Extensible via Scripting: Advanced users can write Java or Jython scripts to extend functionality well beyond what the GUI provides, offering unlimited customization.

Cons

  • Steep Learning Curve: The breadth of features and the complexity of DCC concepts can be overwhelming for beginners just getting started with computer-controlled model railroading.
  • Dated User Interface: As a long-running open-source project, parts of the UI feel dated compared to modern commercial software, which may deter newer users.
  • Desktop-Only Application: JMRI is primarily a desktop application with no native mobile app, though it does include a built-in web server for limited remote access via browser.

Frequently Asked Questions

Is JMRI free to use?

Yes, JMRI is completely free and open-source software released under an open-source license. There are no subscription fees or paid tiers.

What operating systems does JMRI support?

JMRI runs on Windows, macOS, Linux (multiple distributions), and Raspberry Pi OS on Raspberry Pi hardware, as it is built on the Java platform.

What DCC systems and hardware does JMRI work with?

JMRI supports over 50 hardware systems including Digitrax LocoNet, NCE, Lenz XPressNet, DCC-EX, SPROG, ESU ECoS, Märklin CS2, CBUS, Zimo, and many more command stations and network protocols.

Do I need programming experience to use JMRI?

No. Most features like DecoderPro and PanelPro are fully graphical. LogixNG provides no-code automation. Scripting is optional for advanced users who want to extend the system with Java or Jython.

Can I control my layout remotely with JMRI?

Yes. JMRI includes a built-in web server and supports WiFi throttles, allowing you to monitor and control parts of your layout from a web browser or compatible throttle app on another device.

Reviews

No reviews yet. Be the first to review this tool.

Alternatives

See all