DCC-R
Specs
Similar to DCC-A (RCN-218), my proprietary DCC-R protocol extension adds automatic logon but using 64bit UIDs instead of 48bit. Further, my DCC-R does not require Railcom channel bundling like DCC-A does. The biggest difference though, DCC-R adds firmware update over main tracks allowing to update DCC-R compatible decoders anywhere on the layout while other operation continues.
DCC-A and DCC-R can coexist on the same track. DCC-A recognizes DCC-A decoders while DCC-R recognizes DCC-R decoders. Although both protocol variants can be implemented side by side in a decoder, it is assumed that most decoders implement only one of the two.
The key elements of DCC-R
- 64-bit UID
- vendor encoded into UID
- decoder model encoded into UID
- multicast by vendor and by decoder model
- uses Railcom Channel-2 only
- protects critical data with CRC32
- decoder run level concept
- firmware-update on main tracks
- automatic decoder logon
- high-speed bulk transfer outside of DCC encoding
Unique Identifier (UID)
64bit Unique Identifier (UID)
Synthesized from PID and DID
Any Decoder is uniquely identified by a 64-bit UID. To ensure global uniqueness, the UID is synthesized from VID, HID, PID and DID explained below in detail.
Why is the UID logically separated into two 32-bit IDs?
Railcom Channel-2 can only transfer 36-bit atomically. For this reason, the 64-bit UID must be transferred in two 32-bit cycles. To ensure integrity, each 32-bit fragment must be self-sufficient. The 32-bit PID uniquely describes a decoder model. The 32-bit DID uniquely describe an instance of a specific decoder model. The 64bit UID can therefore be split into two chunks and transferred separately while maintaining integrity.
Hardware ID (HID)
Maintained by vendor
The 16-bit Hardware ID makes a decoder model unique. All decoders of the same kind will all have the same HID. This ID will be maintained by each vendor.
The HID allows vendors to maintain up to 16384 different Decoder designs. Any HID is only guaranteed to be unique within the context of a given VID. For example,
- Vendor-A with VID-A has two decoder models (1 and 2) and assigns them HID1 and HID2
- Vendor-B with VID-B has one decoder model (1) and assigns it HID1
HID1 alone is duplicated and must therefor be interpreted in the context of a VID.

