JMRI® is...
Adding signals to your layout with JMRI.
JMRI tools for working with your layout:
Layout Automation
Use JMRI to automate parts of your layout and operations:
Supported Hardware
JMRI supports a wide range of DCC systems, command stations and protocols.
By the community of

JMRI Help:

Contents Index
Glossary FAQ

Donate to

JMRI: Signaling Quickstart

The following step by step instructions describe in detail how to set up Signaling in JMRI.

Start to use JMRI Signaling in 7 steps

Thanks to Suzie Tall.


  1. Launch PanelPro and from the Tools > Tables > Turnouts menu add the turnouts on your layout to the Turnout Table.
  2. Next add the physical signals you installed on the layout to the Signal Mast Table:
    1. The easiest way: if you are using an accessory decoder that can drive the Signal Masts natively and supports the NMRA Standard 9.2.1 Extended Accessory Protocol (PDF) just add the Signal Mast using the 'DCC Signal Mast Decoder driver' and when prompted, input the Aspect numbers configured in your decoder against each Aspect. Decoders like the Signalist SC1 have different Signal Mast types preconfigured and you just select the correct table with a CV and get the Aspect numbers from the manual. Other decoders will need some setting up to define the Aspects to be displayed to an Aspect number. See your decoder manual for what to do here.
    2. If you have more basic signal decoders (the Digitrax SE8c for example) or a command station that does not support the Extended Accessory Protocol (Lenz for example) you will first have to configure the individual Signal Heads that make up each Signal Mast in the Signal Head Table and then go to the Signal Mast Table, add the appropriate Signal Mast Type (eg. AAR-2 Triple Head Searchlight) and configure it using the Signal Head Controlled Mast driver, adding in the Signal Heads that you have previously defined.
    Pick one of the available Signaling Systems, such as AAR-2 in our example, and stick with that. It is a bit of a faff but not too much work. (For more information on the individual signaling systems distributed with JMRI, see this page; for more info on how this works, see the page on aspect signaling)
  3. Go back to the front screen of PanelPro and from the Panel > New... menu create a new panel with Layout Editor and draw your track plan.
  4. Right click on the Turnouts and anchor points on the panel where you want signals and choose 'Set SignalMasts'. You can then choose from the list of Signal Masts that you entered in the Signal Mast Table for each possible location. Not all anchorpoints or turnouts will have a full complement of signals.
    You will probably have some locations (e.g. in a hidden section) where you do not have a physical signal but in the real prototype there would be one - in these cases just add a Virtual signal of the appropriate type by using a Virtual connection type in the Signal Mast Table.
  5. Right click on each signal and click 'Signal Mast Logic > Discover'. JMRI will then magically create all the required logic to set the aspect of that signal, based on the turnouts and aspects of the next signals on all possible routes.
  6. Add your sensors to the Sensor Table to any Blocks that have physical block detector feedback on the layout and assign each Sensor to its layout Block. Skip this bit if you are not using block detection and just setting the signals manually to hold behind the train.
  7. Run the trains and watch the signals change following your chosen rules. Note that there has been no need to refer to the rulebook and no need to create Logix or anything like that. It is just a case of inputting your layout configuration, Signaling System (AAR-2 in our example) and hardware.


Magic SignalMan Set Up

Thanks to Jim Duncan.

With Dick Bronson's new SignalMan hardware all you need to do is:

  1. Choose the signal system (searchlight, color light, PRR, B&O, etc.).
  2. Create a new Signal Mast by clicking the "Add" button at the bottom of the Signal Mast Table.
    Do NOT try to define individual Signal Heads. You do this when you assign which ports are lit as you setup the programming on the boards in the field!
  3. Define what aspects the mast is allowed to display.
  4. Set up the signal connections:
    • Choose the Block the signal protects
    • Select the next signal down the line:
      • If there is one route only:
        • Select the next Signal down the line that each signal protects
      • If there is more than one route past signal:
        • Select the Turnout and Thrown/Closed state
        • Select block protected for given route
        • Select signal protected on this route
        • Repeat for all possible routes past this signal
  5. Program your board to respond to the signal number sent on the control line:
    • Define the ports lit for each Signal Aspect:
      • Select Signal Aspect to display from pull down list in the decoder file
      • Select Port (head and lamp, e.g. H1R, H2G, etc.)
      • Repeat for all aspects that the Signal is allowed to display
  6. Load the programming to the SignalMan board.
  7. Connect your hardware signals.
  8. Open the Tools > Tables > SignalMasts menu, go through each Signal Aspect and observe signal behavior to check your programming and connections
    Hint: It's easier to reprogram the board than it is to change the wiring connections!


Back to the Signaling main help page.