How to Decode an RDM Discovery Unique Branch Dump

A Discovery Unique Branch dump starts with 0xFE preambles and 0xAA, not CC 01. Twelve EUID bytes encode the UID. Checksum is the 16-bit sum of those twelve bytes only.

This page uses the same encoder as 23 Vitest cases. Paste the sample in the RDM Packet Decoder Online.

Discovery Unique Branch checksum window: 0xFE preamble excluded, twelve EUID bytes sum to 0x077b
Twelve EUID bytes after 0xAA. Preamble 0xFE is outside the checksum window.

What is a Discovery Unique Branch dump?

It is the responder answer to DISC_UNIQUE_BRANCH. E1.20 discovery walks UID ranges. A responder in range replies with this encoded body so a collision still has a detectable shape.

It is not DMX start code 0x00 and it is not an Ethernet frame. Classifiers that force Message Length minus 24 will misread it.

How is a DUB response encoded?

Layout is 0 to 7 bytes of 0xFE, one 0xAA separator, twelve EUID bytes, four encoded checksum bytes. This sample uses 7 preamble bytes. Decode kind is dub.

fe fe fe fe fe fe fe aa ab 5d ea dd aa f5 ba 55 aa 55 aa 55 af 57 fb 7f
RegionCountThis sample
Preamble 0xFE7Dropped from the checksum
Separator 0xAA1Marks the start of EUID
EUID12ab 5d ea dd aa f5 ba 55 aa 55 aa 55
Encoded checksum4af 57 fb 7f

How do I decode 0xFE 0xAA pairs into a UID?

Each original UID byte is sent as two slots: value OR 0xAA, then value OR 0x55. Recover with AND. For manufacturer byte 0x09 the pair is 0xab and 0x5d.

UID byteOR 0xAAOR 0x55AND recovers
0x090xab0x5d0x09
0xc80xea0xdd0xc8
0xa00xaa0xf50xa0
0x100xba0x550x10
0x000xaa0x550x00
0x000xaa0x550x00

Recovered UID on this sample is 09c8:a0100000. Decode ok is true.

Which bytes go into the DUB checksum?

Only the twelve EUID bytes. Expected 0x077b, received 0x077b, pass true. Worked additive math lives on how to calculate an E1.20 checksum.

Flip the last encoded checksum byte and this encoder reports DUB_CHECKSUM_MISMATCH: expected 0x077b, received 0x0780.

Is DISC_UNIQUE_BRANCH the same as the 0xFE response?

No. The controller request is a normal 0xCC PDU, command class DISCOVERY_COMMAND, PID DISC_UNIQUE_BRANCH (0x0001), parameter data twelve bytes of lower then upper UID.

This encoder's request starts 0xcc 0x01. Named PID is DISC_UNIQUE_BRANCH. GET IDENTIFY from Load Example classifies as rdm, not dub.

cc 01 24 ff ff ff ff ff ff 09 c8 01 00 cd f9 01 01 00 00 00 10 00 01 0c 00 00 00 00 00 00 ff ff ff ff ff ff 0f 9c

What does a collision look like versus silence?

No responder in range: empty UART. One clean responder: preamble, 0xAA, sixteen encoded bytes, checksum PASS. Two responders at once: overlapping 0xFE/0xAA streams. The recovered AND pairs fail the twelve-byte sum.

Firmware logs that print BranchComplete with zero bytes are a capture or timing problem, not a 0xCC checksum miss. Dropping the first three 0xFE bytes still classifies as dub here (kind dub, ok true) because the remaining preamble still leads to 0xAA.

What should I paste into the decoder?

Paste the DUB body, not a pcap, not an ENTTEC 0x7E-0xE7 wrap. If the dump starts CC 01 it is a command or DISC request. See what CC 01 means and the ENTTEC wrapper note.

Open RDM Packet Decoder OnlineChecksum how-to

Frequently asked questions

How do I decode an RDM Discovery Unique Branch dump?

Count 0xFE preambles (0 to 7), require 0xAA, recover six UID bytes by ANDing each EUID pair, then checksum the twelve EUID bytes only.

Is a DUB response a 0xCC frame?

No. DISC_UNIQUE_BRANCH on the wire as a controller request starts CC 01. The responder answer starts with 0xFE and 0xAA, not 0xCC.

How is a Discovery Unique Branch checksum calculated?

Sum the twelve encoded UID bytes after 0xAA. On this sample that total is 0x077b. Preamble 0xFE bytes are not in the sum.

What does collision / invalid DUB checksum mean?

Two responders talking at once, or a corrupt encoding. This parser still names the UID bytes it recovered. The decode stays FAIL.

Can I paste a DUB dump into the browser decoder?

Yes. HEX stays in this browser. Load the DUB sample or paste FE AA bytes. There is no upload.