Also known as: SYNC PDU, DM-SYNC PDU, TETRA synchronisation PDU
The TETRA SYNC PDU is the small MAC broadcast that bootstraps every TETRA receiver: carried on the BSCH (block 1 of the synchronisation downlink burst) and always scrambled with colour code 0, it is the one message a cold receiver — with no configuration at all — can decode, and it carries exactly the fields needed to unlock everything else.1 Once the SYNC PDU is in hand, the receiver knows the cell’s scrambling identity and its position in time, and every other logical channel becomes decodable.
What the fields buy
- Colour code (6 bits), MCC (10), MNC (14) — concatenated MSB-first these form the 30-bit extended colour code that seeds the scrambler for every channel except the BSCH itself. This is the deliberate bootstrap: the BSCH stays at colour 0 so anyone can read it, and hands over the key to the rest. (Colour 0 is still real scrambling — the seed is non-zero — a fact that has bitten more than one implementation.)
- Timeslot number (2 bits), frame number (5), multiframe number (6) — the cell’s position in the TDMA hierarchy: 4 timeslots per frame, 18 frames per multiframe, with frame 18 reserved for control. A receiver that decodes two SYNC PDUs and sees FN advancing at the right cadence has proof of a genuine time lock, which makes FN advance a useful liveness signal long before payload decodes.
One layout, two modes
The direct-mode variant — the DM-SYNC PDU, broadcast in the DSB of a
TETRA DMO transmission (EN 300 396-3) — reuses the same field
layout, so a single parser serves both trunked and direct mode. GopherTrunk’s
ParseSyncPDU (internal/radio/tetra/sync_pdu.go) decodes the 60 type-1 bits for either;
its bit offsets are byte-for-byte identical to the osmo-tetra reference parser. Two DMO
caveats are worth knowing: on air the DMO SCH/S carries MNI 0 (MCC = MNC = 0), so a
direct-mode network’s real mobile network identity
cannot be learned from this PDU; and the DM colour code that scrambles DMO traffic is not
recoverable from the SCH/S either — both must come from configuration or empirical
recovery.
Relevance to SDR
The SYNC PDU is the hinge of GopherTrunk’s TETRA cold start: hunt a carrier, decode BSCH at colour 0, parse the SYNC PDU, form the extended colour code, and only then do BNCH/SCH/F/SCH/HD decode — no operator-supplied colour needed. Two hard-won operational rules attach to it. First, confirm identity changes: a single mis-corrected BSCH can decode with a wrong-but-CRC-valid MCC/MNC, so GopherTrunk requires two consecutive agreeing SYNC PDUs before rewriting a locked cell identity (the alternative was bogus “cc locked mcc=996” flaps). Second, FN liveness is the lock heartbeat for camped channels — a DMO channel between transmissions stays “locked” on the strength of advancing frame numbers rather than decode rate, so inter-PTT silence does not trigger a re-hunt. The bring-up traps around this PDU’s neighbours are collected in TETRA lock facts.
Sources
-
ETSI EN 300 392-2 (TETRA Voice plus Data, Air Interface) — ETSI, §21.4.4.2 SYNC PDU field layout and §8.2.5.2 scrambling-code formation. ↩