DCC-R

Overview

On this page:
Specs | Uid

Abstract

DCC-R adds automatic logon and firmware update over main tracks to the DCC protocol.

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.

Vendor ID (VID)

Maintained by NMRA 

The 16-bit Vendor ID uses the vendor key assigned and maintained by NMRA ensuring unique vendor IDs. The vendor key maintained by NMRA has 12-bits. The remaining upper nibble is reserved and must be set to 0000.

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.

Decoder ID (DID)

Maintained by vendor

The 32-bit DID is the serial number of a decoder. A DID is only unique in the context of a given PID.

Product ID (PID)

Synthesized from VID and HID

The 32-bit PID is a synthesized number by simply concatenating the VID and HID. Any PID uniquely identifies a decoder model. For example, the PID(0x00e90001) identifies the decoder model “1103” of Vendor “00e9”.