The APB system
Note: You should be familiar with railroad signaling terms, such as track circuit, blocks, ... and have read through the APB basics, by following the links provided on the Signaling main page.
In APB territory, every block between signals must have at least two track circuits, as you may have seen on Carsten's site. This is necessary for direction detection to work. Depending on block lengths and circuit design, the length of a single track circuit may vary on the prototype, but on model railroads both really shouldn't matter.
It's true that there are other implementations of APB where only one circuit between signals is also enough. That version isn't suited so well for the modular arrangements this sytem was planned for.
Overview and hardware
The system was designed for a modular layout, which has greatly influenced the design.
All blocks between signals are divided into two isolated sections, 1 and 2. These sections are fed with track power exclusively through the signal modules' current sensors, thus allowing the entire section to be supervised. At a convenient module border, the track power lines are not connected, but left open. This isolates section 1 and 2.
The current is fed to the signal modules by a feeder line named "APB feeder" (red in the picture above). Boosters can only be attached to this line. As you can see, the existing track modules do not need any modification, and the signaling is completely accomplished by the respective modules.
Connection between signals - APB interface
The first track circuit behind the signal (protected by the signal) is circuit A, the second is B. My installations do always have only detectors for track circuit A, but every A is circuit B for preceding signals. Occupancy information is passed in the APB interface, as described below.
The APB interface - Version 1.2
The APB interface has three distinct properties with these bit masks:
- Aspect, mask 0x07
- Stick, mask 0x08
- Occupancy B, mask 0x10
The Aspect is three bits wide and transmits the signal's current aspect to the previous signal. This can be:
- STOP: 0
- APPROACH: 1
- DIVERGING: 2
- SLOW: 3
- MEDIUM: 4
- LIMITED: 5
- RESTR: 6
- CLEAR: 7
Version 1.2 of the APB interface has provisions for Eastern signal systems, integrating slow, medium, and limited speeds. Additionally, there is now a separate "Restricting" aspect.
The Stick bit is a single bit showing the status of the virtual stick relay. Together with Aspect it determines signal behavior.
Occupancy B tells the preceding signal the status of its (the preceding signal's!) track circuit B, which is circuit A of this signal. This was necessary for my modular system, as every signal node can only monitor the immediately adjacent track circuit. If you have a static installation, you could also program virtual inputs by filtering address, packet type and bit/byte from another node's data stream.
Aspect sequences
The aspect and stick bit together are interpreted by preceding signals. In version 1.2, sequences are defined via tables, with the preceding signal's aspect as index into it. This also implies that sequences are cross-defined between Eastern and Western style signals for compatibility. The following is an example for a Western style behavior, and what I use:
| THIS signal | PRECEDING signal | Name of aspect on PRECEDING signal |
| Stop | Stop | Stop (red) |
| Stop & Stick | Approach | Approach (yellow) |
| Approach | Clear | Advance approach (flashing yellow) |
| Diverging | Clear | Approach diverging (yellow-over-yellow) |
| Slow | Clear | Approach (yellow) |
| Medium | Clear | Approach diverging (yellow-over-yellow) |
| Limited | Clear | Advance approach (flashing yellow) |
| Restricting | Approach | Approach (yellow) |
| Clear | Clear | Proceed (green) |
Note: Stop & Stick is the condition where Aspect is 0-Stop, and the Stick bit it set. Stop refers to the condition where the Stick bit is NOT set. From Approach to Clear, the Stick bit should never be set, but it will not disturb signal behavior if it is.
Signal flow diagram
Now let's take a look at the functional flow diagram of an intermediate APB signal. For now, it's a hand-drawn JPG, and you can find it here.
Look at the conditions for the Stick bit to be set: when the signal is clear (not at Stop) and the first circuit behind it (the one we named A) becomes occupied, it is clear that the movement is made in the direction the signal governs. The signal goes to "Stop&Stick", and this keeps the preceding signal from dropping to red. The next opposing signal gets the information that it's circuit B has been occupied (through the APB interface); it goes to Stop, but it's Stick bit doesn't get set. The tumbling to Stop without setting the Stick propagates through all preceding opposing signals, establishing protection against opposing movements.
How to interlock signals
Every signal nodes transmits the APB interface of its signals. Note that I used a whole byte, the upper 3 bits are for some additional purpose (clearing indication), though the interface itself is only 5 bit wide.
The preceding signals in turn must filter the necessary data packet. This is done the same way Nathan did: by specifying source address, packet type and byte number in the packet.
About CTC control points
The APB interface is also used to interlock CTC nodes. Be it opposing nodes with a stretch of APB intermediates, or immediately adjacent nodes (at sidings, for example), separated only by one block. Also in the latter case there is the need for two circuits!
Basically, at the entry of a block there are virtual APB signals, which are calculated following the normal APB intermediate flow diagram. The status of these virtual signals is used for interlocking purpose. For example, the virtual signal at the entry into the line to the next siding could be at Stop, without the stick bit set, informing us of an opposing movement. Thus, no route into the block could be set.
The output to the preceding signals is actively controlled. For example, when a route into a block is set, the Stick bit is actively cleared and the Aspect forced to Stop, giving the condition Stop without stick. This condition results in all preceding signals going to Stop, too. Tumbledown is in effect and protection against opposing movements is established.
Current developments: specialization for modular "FREMO americaN" layouts
As mentioned elsewhere, I've developed this signaling application for modular arrangements, which are set up by the americaN group of the Friendscircle of European Model Railroaders FREMO. americaN features single track modules in N-scale, and is operation-oriented. The traffic control system preferred by most members is dark territory and TWC; CTC and signaling came along with my entry into this group.
In order to create acceptance for CTC and the signaling modules, it had been crucial to design a system which does not need any changes in existing modules, as well as in basic wiring schemes for future modules. Moreover, cars are not and will not be equipped with resistor-axles, making their detection with current sensors impossible. This last issue has been overcome by using infrared sensors at every block boundary, but other things impede correct functioning of the signal system.
For instance, if a spur track coming off the main track is not electrically isolated from the latter and fed from the APB feeder, a locomotive on it will draw current through one of the adjacent current sensors, keeping the block occupied and, more problematic, the direction of travel set, even if the train is clear of the main track.
One possible remedy would be to mandate isolation of those spurs, but this understandably not acceptable to most of the group members that aren't interested in signaled operation in any way.
The remedy realizes two software functions:
- active clearing of occupancy by ignoring current sensor detection
- active occupancy by forcing occupancy even if no train is detected by current or infrared sensors
These functions have been now been implemented.
