If you've gotten this far, good for you. You must be really interested!

Automated Operations Control Centre (AOCC)

As explained earlier, automatic train control is governed by the Automated Operations Control Centre and the Track Occupancy Status system.

In practice, this means that a Windows computer with a DCC interface runs JMRI which in turn runs a considerable number of scripts, each of which is customized for a particular purpose in the operation of the layout.

The scripts are written in JMRI/Jython, an adaptation of the popular computer programming language Python. Jython runs under Java and most of the rules of Python apply but Jython supplies some critical routines to interface the language to one of several DCC products.

In order to run trains automatically, several systems are required in addition to the conventional DCC components. These are all integrated under the AOCC which, simply put, is a set of master scripts which monitor layout operation and run other scripts as required.

Track Occupancy Status (TOS) system

This system is a fundamental component of the AOCC and is a background system against which most other systems operate.

The Track Occupancy Status system depends on detecting when a train passes a particular location on the layout. When this happens, a DCC sensor is activated and a message is transmitted over loconet. This message can then be interpreted by other scripts and appropriate actions taken.


The layout is divided into "locations" and sometimes "sub-locations". Each "location" consists of one or more detectors. Each detector is made up of several (typically 3 or 4) magnetic reed switches a small distance apart on a track at a given location. These devices are wired in parallel and connected through a resistor (10K ohms) to a Digitrax BDL168 block detector.

A detector location is shorter than a conventional block which is typically a length of track a few feet or more long. On the other hand, a detector location can be thought of as more of a point location on layout. In some ways, that can be an advantage in that the location of a train is known precisely, rather than only knowing that the train is somewhere in a block.

For example, if a train is traveling in a given direction and reaches a detector location, the system might wait a certain number of seconds and then sound the horn for a crossing. This, of course, depends on the distance the detector is from the ideal point where the horn should be sounded, the speed of the train, and possibly other factors as well. The AOCC keeps track of everything and it works fine. When new trains are added to the layout, their speed might have to be fine-tuned a bit for optimal performance.

Detector components are illustrated below:

Magnetic Reed Switch (normally open)

Sensor location on main lines

When a detector car passes over a detection location, a BDL168 (Digitrax block detector) acts as if a locomotive or a car with a resistive wheelset is detected in a conventional block detection system and sends out a message on Loconet that that block is in use. That is, a sensor is reported as being Active.

Detector car - located at head end of train just behind locomotive(s)

The messages generated by the activation of a detection location/block occupancy indication are monitored by computer scripts running under JMRI and any required action can then be taken. A typical action might be to wait for a given sensor to become active (indicating that a train is at that location) and then throw a turnout, sound the whistle or horn, change a signal aspect, wait a given number of seconds, or any one of a number of other actions.

Since the script accurately keeps track of each train (by engine number), its direction of travel, where it was last detected, its speed and other factors, it can report that the given train is now at the newly detected location and instigate the updating of tables, computer logs, track diagrams and train locations among other things.

continued on Technical - Page 4

More details on any of the above can, of course, be obtained by contacting RHJ Rail.

top of page

RHJ Rail is owned and operated by Richard H. Johnson
© Copyright 2020 Richard H. Johnson