Author: Bob Jacobsen
Keywords: hardware layout java model railroad JMRI CMRI decoderpro panelpro tools loconet lenz nce easydcc dcc nmra

# JMRI: Tools

JMRI provides a range of powerful tools for working with your layout:

- Common Tools
- Block Tools
- Routing and Control Tools
- System-specific Tools
- Other Tools

Or create your own tools by Scripting JMRI.

## Common tools

The following tools in the Tools menu work with most DCC hardware connections:

  ### Throttles

  You can open multiple software Throttles to run your DCC locomotives.

  ### Turnouts

  JMRI calls just about any output to the layout a "Turnout". The Turnout object has 2 states: Closed (On) and Thrown (Off).
  For outputs such as Lights and Signals JMRI provides special objects (see below).

  ### Lights

  Lights are digital output bits that function as on/off switches. Lights were created to provide easy control for fascia panel lights and scenery lighting. Lights can also be used for any purpose that requires an on/off switch. A light can be used, for example, to activate an electromagnetic decoupler for a pre-determined time in response to a fascia panel button.

  ### Sensors

  A Sensor is JMRI's way of representing an input from the layout.

  ### Signals

  Signal Heads and Signal Masts are how JMRI represents and controls signals on a layout. They are a specific kind of output device that can be set to various Appearances (Red, Yellow, Green, Flashing Yellow, etc.) or Aspects (Stop, Clear, Approach limited etc.) following prototype rules.

  ### Consisting

  JMRI provides tools for managing locomotive consists.

  ### Reporters

  Reporters are JMRI's way of representing information reported back from the layout and can contain arbitrary information.

  ### Memory Variables

  A JMRI Memory Variable can hold any type of object specified by the user.

## Block Tools

  ### Blocks

  Blocks are sections of track whose occupancy may be individually monitored in JMRI. Dividing your track into Blocks is optional. Block occupancy is indicated by the state of an occupancy Sensor.

  ### Sections

  A Section is a group of one or more connected Blocks that may be allocated to a Train traveling in a given direction. Sections were created to solve the direction problem that can occur when using Blocks directly.

  ### Transits

  A Transit is a group of two or more connected Sections that describes a route around the layout of a Train traveling in a given direction. A Section may be in multiple Transits, and may be in a given Transit multiple times.
  Transits and Sections are essential to Dispatcher

## Routing and Control Tools

  ### Routes

  Routes are a tool for driving multiple turnouts when something happens on the layout. You can have a panel switch through all the Turnouts in your yard throat, etc. They can also change the status of Sensors, play sound files, and invoke scripts. They have some simple logic capabilities for deciding when to set the Route's outputs.

  ### LRoutes

  LRoutes extend the capabilities of Routes by implementing them as a Logix. LRoutes can be defined with an unlimited number of Sensors, Turnouts, Lights, and/or SignalHeads for actions or controls. LRoutes provide an easy starting point for creating new Logix since they may be extended to include any of the Logix capabilities.

  ### Entry/Exit (NX) Routing

  NX Routing allows you to build a dynamic valid path between two locations on a Layout Editor panel.

  ### Logix

  A Logix is a tool for entering powerful logical expressions that can control parts of a layout. Each one can monitor multiple inputs and logical operations through containing a number of Conditional expressions, each of which can take simple actions. For more powerful control, combine the logical reasoning of a Logix with the powerful output controls of a Route.

  ### LogixNG

  The Next Generation of Logix capabilities with a modular structure for extending and the ability to create more complex logic without scripting.

## Other Tools

  ### Audio

  JMRI audio objects hold information about sounds that can be played-back by the computer.

  ### Fast Clocks

  JMRI can both provide various types of Fast Clocks on the computer screen, and also work with the fast clocks already installed on your DCC layout.

  ### Speedometer

  A tool for determining the scale speed of your locomotives. You can use this while setting them up, to catch speeders, to match the running speeds of two locomotives before running them in a consist or for whatever you'd like.

  ### Timetable

  Create a timetable to manage train movements. Display a graph that can help schedule meets.

  ### Virtual Sound Decoder

  Provides throttle-controlled locomotive sound simulation without the need of an on-board sound decoder.

  ### Where Used

  Search JMRI for references to a selected item based on its type. For example, see where a sensor is used.

  ### Dispatcher(Pro)

  The Dispatcher tool provides functions and organizes information relating to dispatching trains on a model railroad layout. Its main function is the allocation of sections of track to various Trains running around the layout. This set of tools has evolved into a full DispatcherPro application.

  ### Operations(Pro)

  The Operations tool has evolved to an advanced OperationsPro application, allowing you to generate Trains and produce computer generated Manifests and Switch Lists for your railroad from a roster of rolling stock, schedules and destinations. This set of tools has evolved into a full OperationsPro™ application.

## System-specific Tools

### Acela Tools

When JMRI is connected to a layout via this system, an Acela menu is shown:

- Acela Monitor
- Send Acela Packets
- Configure Nodes

### Bachrus Tools

When JMRI is connected to Bachrus MTS-DCC, you can use the:

- Speedo Console

### C/MRI Tools

When JMRI is connected to a layout via this system, a CMRI menu is shown:

- CMRI Network Manager (enable/disable individual nodes)
- CMRI Metrics
- CMRI Monitor (displays traffic sent and received to CMRI nodes)
- Configure C/MRI Nodes
- List Assignments (lists input/output bit assignments for each node)
- Run Diagnostic

### CAN Tools

When JMRI is connected to a layout via CAN, the CAN menu contains:

- Monitor tool
- Send Frame tool

### MERG CBUS Tools

When JMRI is connected to a layout via CBUS, the MERG menu is shown:

- Console
- Send Frame
- Event Capture Tool
- Event Table
- Node Config Tool

### DCC-EX Tools (including DCC-EX EX-CommandStations)

When JMRI is connected to a layout via DCC-EX (including DCC-EX EX-CommandStations), the DCC-EX menu is shown:

- DCC-EX Traffic Monitor
- Send DCC-EX Command
- Track Current Meter
- Configure Sensors and Turnouts
- Load DCC-EX over TCP Server

### EasyDCC Tools

When JMRI is connected to a layout via EasyDCC, the EasyDCC menu is shown:

- Command Monitor
- Send Command

### ESU ECoS Tools

- Ecos Preferences
- Command Generator
- Ecos Status

### Grapevine Tools

When JMRI is connected to a layout via this system, the Grapevine menu gives access to:

- Node Table
- Configure Nodes

### LocoNet (Digitrax) Tools

A full range of tools are available from the LocoNet menu when JMRI is connected to a (Digitrax) LocoNet DCC layout.
You may also access them by double clicking the Loco Tools icon in the JMRI installation folder. To name just a few:

- DS64 Configuration Tool
- LocoNet Monitor
- Sound Loader
- SE8C Configuration Tool
- Slot Monitor

### Märklin Tools

- Monitor Marklin Commands
- Send Marklin Commands

### NCE Tools

When JMRI is connected to a layout via this system, an NCE menu is shown:

- Send Command
- Send Macro
- Edit Macro
- Edit Consist
- DCC Packet Analyzer
- Monitor Clock

### OpenLCB Tools

When JMRI is connected to a layout via this system, an OpenLCB menu is shown:

- Traffic Monitor
- Send Frame
- Configure Nodes
- Start Hub
- Firmware Update

### RPS Tools

When JMRI is connected to a layout with RPS Sensors, an RPS menu is shown:

- RPS Monitor
- Receiver Control
- Polling Control
- Debugger Window
- Tracking Display
- Sound Speed Control
- RPS Alignment

### SPROG Tools

When JMRI is connected to a layout with SPROG, a SPROG menu is shown:

- SPROG Slots Monitor
- SPROG Command Monitor
- Send SPROG Command
- SPROG Console
- Get SPROG Firmware Version
- SPROGx Firmware Update

### XBee Tools

When JMRI is connected to a layout with XBee, an XBee menu is shown:

- XBee Node Configuration

### XPressNet (Lenz) Tools

When JMRI is connected to a layout with XPressNet, an XPressNet menu is shown:

- XPressNet Monitor
- LZV100 Configuration Tool
- LI101 Configuration Tool
- XPressNet System Information

## Scripting JMRI

If JMRI lacks a preprogrammed tool to do what you want, you can write a Script that does exactly what's needed, including user interaction. Instead of defining our own language, JMRI Scripting uses the "Python" language that's commonly used in web development. Although it will take a little time to get used to it, in the end it provides a lot of power to control your layout anyway you'd like.

Run your own scripts or scripts shared by other JMRI users from the Scripting {Old: Panels} ⇒ Run Script... menu.