Cab Bus

== NCE Cab Bus ==
===Description===
 In addition to NCE, Wangrow's System One and PSI's DYNATROL also employed the Cab Bus protocol. There are two physical forms of the Cab Bus wiring. Cab Bus connections between the throttle and the command station or throttle network use a 6P4C or 6P6C RJ connector, which can use four or six conductors in the cable. The 6P6C is specifically for the Power Cab. 
NCE employs a Control Bus to connect boosters to the command station. The Control Bus uses a four-wire cable.
====Systems Employing the Cab Bus====
*North Coast Engineering (NCE)
*Wangrow Electronics Inc.
*PSI Dynatrol Digital
=== Cab Bus Overview===
The Cab Bus is polled network. Devices on the network do not speak until spoken to. The command station software controls the polling frequency and sequence. Cabs are not polled in numerical order. If a cab does not respond to a ping after several attempts, the command station will stop pinging that address. The command station will periodically ping all addresses, to discover new devices or acknowledge dormant throttles. It will ping addresses on a random basis to speed up operations when more than 30 cabs are on the bus. For faster response active cabs are polled more often than inactive cabs. 
The Cab Bus connects up to 63 Hand-Held Cab Controllers to the Command Station. Data on the bus runs at 9600 bps, eight data bits, no parity, two stop bits and meets RS-485 specifications. 
The limitations of the polled network are the number of devices (nodes) on the network, and speed. As more devices are added, their response time increases. At some point the electrical limits of the network will be reached, or a software-imposed limit. This determines the total number of nodes which can be connected to the network. Optimal polling cycles are determined by the hardware's speed and bandwidth. 
The Cab Bus system is a polled system. Devices are continually in receive mode unless specifically addressed by the command station, at which time the command station relinquishes the bus to allow the device to respond. When throttles are polled, they respond by transmitting any change in status.
The bus should be a continuous daisy chain without "branches" of any significant length (longer than 8 feet). The RS-485 Specifications suggest data rates up to 10Mbits/sec are possible, or at lower speeds for distances up to 1200 m. As a rule, a 50 m cable should allow signalling rates up to 2Mbits/s. NCE suggests no longer than 300 m (1000ft) is acceptable, with branches not longer than 6 m.
==== Cab Bus ====
The Cab Bus can connect up to 63 Cabs to the command station.
Data on the bus is 8N2 (eight bits, no parity, 2 stop bits) following the RS-485 specification. 
The cabs are in listen mode until they are specifically addressed by the command station (polled), at which time control of the bus is passed to the cab. All data sent from the cab is required to have bit 7 set to 1. A "ping" has bit 6 equalling 0, all other commands or data will have bit 6 set to 1 
==== Operation ====
The cabs are continuously polled (pinged) for any change in status. When polled, the cab will reply with either a 2-byte response indicating a button press (first byte) then the second byte with speed information, or with a five-byte message indicating the device address (2 bytes), then the operation (2 bytes) followed by a one byte XOR checksum.
The cab will begin transmitting approximately 780 µS after receiving the last stop bit from the command station.
===== Cab Addressing =====
Cab addresses 0 and 1 are reserved. Cab 0 is the broadcast address of the command station. Cab 1 is reserved for future applications.
====== Cab Address 2 ======
This Cab Address is special. Cabs on other addresses can have their capabilities limited, such as preventing the ability to change CVs or use the Momentum keyThe Momentum key makes changes to CVs 3 & 4 using Ops Mode Programming.. The Cab on address 2 is the master cab, and retains all its functionality. 
==== Normal Operation ====
* Command station pings an address
* Cab answers
** If the cab has nothing to send, it does not have to respond.
* If command station has data for the cab, it is sent after the cab finishes transmitting
* Repeat process by pinging the next address
If a cab does not respond for several pings, it may be dropped from the queue for inactivity. Its address will then be pinged periodically until it responds to a ping. 
===== Response Time =====
Under normal circumstances, with 10 cabs in operation, a cab will be pinged about 23 times a second.
 
To poll all 63 addresses, the frequency per cab will be 3 to 4 pings/second, assuming 63 cabs in use and all are responding with a simple 2-byte response. Most NCE users will never experience this level of performance.
==== Discovery ====
The command station polls the cab bus at regular intervals. In addition to the known addresses, it generates a random address during each polling sequence. This is done to discover any new devices which have been added to the Cab Bus.
Once an address is on the polling list, it stays there. During large or long operating sessions, restarting the system when time permits will clear the list of device addresses, removing any inactive devices and allowing the command station to create a new list with active devices. This is important if cabs are being added and removed from the cab bus during the session, as polling addresses which are inactive add unnecessary overhead and bus performance suffers.
==== Additional Information ====
The Cab Bus is a polled network, as opposed to a CSMA/CD network such as Digitrax's LocoNet. As the network expands, throughput decreases as more devices are polled. 
Under polling, the device must silently wait until addressed, whether or not it has a message to send. A CSMA/CD network does the opposite, a device sends a message without being asked and will continue sending the message until it determines it was successful.
==== RS-485 Throughput ====
Speed in bit/s multiplied by the length in metres should not exceed 108. Thus a 50-meter cable should not signal faster than 2 Mbit/s.
50 × 2M = 100 × 1,000,000 = 100,000,000 or 108 
:Therefore, 300 m cable = 10^8 ÷ 300 ≈ 0.3 Mbits/sec. (100,000,000 ÷ 0.33^6 ≈ 333 m)
=== Wireless Interference ===
An unfortunate consequence of the CAB Bus's polling nature is constant messaging traffic to all cabs on the bus. With wireless throttles, this generates a lot of radio traffic. Which is not a problem in a home or club setting. It becomes a hurdle with nearby layouts using wireless throttles in an exhibition environment. The volume of radio traffic the Cab Bus generates will swamp nearby receivers, as they are all on the same band.
=== Cab Addresses ===
=== Cab Bus Wiring ===
Proper wiring is important. While the CAB Bus may work, at some point in the future when additional devices are added bus problems will occur. Spending extra time and using a little more wire will avoid those problems in the future. The underlying electrical issues were always there, it only takes a few more devices on the bus to bring them to the surface. 
As mentioned above, the maximum length of the Cab Bus is 500' in a continuous run (daisy chain), any branches off the bus should be no more than 8 feet long. The Cab Bus and its throttle panels should be arranged in a daisy chain fashion, one feeding the next. Attempting to save wire by using stubs off the main bus to feed throttle panels will result in issues. If stubs are needed, they must be very short, no longer than the length of a coiled throttle cable.
It is important to arrange and wire the Cab Bus in a linear fashion. NCE does not recommend splitting the Cab Bus nor the use of stubs. As this is a serial protocol, it is meant to go point to point. It cannot be wired as a star, nor should it form a closed loop.
=== Cab Bus Power Requirements ===
NCE recommends the addition of a Cab Bus power source every 40 feet, dependant on the number of cabs installed/in use.
As more Cabs are added to the bus, more power will be required. Additional power supplies can be added, UTP panels have the facility to connect using a 3.5mm barrel plug. See the manual for the cab bus panel for additional details.
If the number of cabs in use overload the command station, the system can become unstable and possibly crash.
=== Control Bus ===
This is used to connect between boosters and the command station. It uses a 4P4C RJ-H plug and socket, carries a low level DCC signal for the booster.
Boosters have two connections to allow pass-through to additional boosters.
Rapid flashing of the status light indicates the control bus isn't connected to the booster. It will do this when the programming track is active. 
=== UTP Panels ===
The UTP has four connections, and can be used as a three-way splitter to split the cab bus into three segments. See the NCE website for details. There is a newer version available which allows for the use of CAT5 cabling between UTPs.
=== Cab Bus Panel ===
Similar to the UTP, but only four connections, two for the cab bus and the remaining pair are for cabs.
=== Digitrax UP5 ===
The Digitrax UP5 is not compatible with the cab bus without modifications.
=== NCE Cab Bus Cables ===
==== Connectors ====
The NCE Bus connections are as follows:
# Control Bus: RJ-H / RJ9 4P4C, four wire cable between boosters and command station.
# Cab Bus: RJ12, 6P4C. Cabs may be directly connected to the command station. This bus connects the command station to throttle panels (UTPs) around the layout.
=== Power Cab Cable ===
The Power Cab comes with two Cab Bus cables:
# A flat six conductor cable for use in its Power Cab mode
# A coiled, four conductor cable for use in its Pro Cab Mode, when connected to an external command station.Always use this cable for Pro Cab (throttle only) mode to avoid adding interference to the Cab Bus.
 The Power Cab comes with a custom RJ12 6P6C cable. Do not attempt to make your own. Replacements are available from NCE. Third party cables lack the heavy gauge conductors to carry the track current. 
==== Cables ====
Cab Bus Cables	Cab Bus Cables	Cab Bus Cables 	Cab Bus Cables 	DCCWiki.com
Cable 	RJ Connector 	Description 	Purpose 	Notes
Control Bus 	RJH/RJ9 4P4C 	Four wire cable 	Control bus between Boosters and Command Stations 	Max length: 300 ft. / 91m
Cab Bus 	RJ12, 6P4C 	Four wire flat or coiled cable	Connect Cabs to Cab BusPro Cab cables require the four center conductors for proper operation.	Only 4 connections in plug are used
Cab Bus 	RJ12, 6P6C 	Flat six wire cable 	Power Cab to layout 	Carries power, specifically designed for the Power CabUsing a cable other than that supplied by NCE voids the warranty.
For additional examples, such as interfacing with Lenz or Digitrax boosters, see the NCE System Technical Manual.
=== Additional Cab Bus Resources ===
==== External Resources ====
* MERG: Protocol.Zip file.
* NCE Cab Bus
* Electronics: Cab Throttle
* NCE Default Polling Lists
==== NCE Helpdesk ====
There are a number of useful articles on the Cab Bus on the NCE website:
* NCE DCC Cables Explained for more information on Cab Bus cables, and how to order a new one for your Power Cab.
* NCE System Technical Manual
* 
* LocoNet Wiring
* Digitrax NCE cab bus cross reference
* RJ12 Wiring Diagram
* NCE-DCC: Cables Explained
* Cab Ids 101
* PB105/PB110 Connection Information for non-NCE DCC Systems
=== Videos ===
Category:Throttle Network
Category:NCE
Category:Wangrow