Field Guide · term

Also known as: DMR CSBK grant parsing, LPCN vs LCN, Tier III grant traps

DMR grant-field gotchas are the places where a reasonable reading of a DMR Tier III channel-grant CSBK is wrong — wrong field boundaries, wrong assumptions about what the grant carries, and wrong expectations about what the sync layer can tell you. Each item below produced a confusing field symptom in GopherTrunk before the correct reading was pinned down.

The grant leads with a 12-bit LPCN

Per ETSI TS 102 361-4, a Tier III channel grant’s payload leads with a 12-bit Logical Physical Channel Number (LPCN), followed by a timeslot bit, then the target and source addresses. It does not end with a 7-bit LCN.

GopherTrunk originally read the “LCN” from the last payload octet — which is actually the low byte of the 24-bit source radio address. The result was a memorable symptom on a Hytera XPT system: the LCN appeared to change on every transmission, because it changed whenever a different radio keyed up. It looked like channel-plan chaos; it was radio identity leaking into a channel field, and the LCN autoconfig learner could never converge because every call introduced a “new” channel. The fix widened the LCN from 7 to 12 bits end to end — parser, band-plan resolver, learner, config, and events (#639).

Encrypted and Emergency are not in the grant

The ETSI DMR channel-grant CSBK does not carry Encrypted or Emergency flags. Those arrive in the voice Link Control once the call is up. A parser that “finds” them in the grant is reading other fields (#639).

Not every grant should be followed

Three grant opcodes look similar and must be treated differently (#626):

  • BTV_GRANT (0x32) is broadcast voice — follow it.
  • PD_GRANT (0x33) and TD_GRANT (0x34) are data grants. GopherTrunk deliberately does not follow them: retuning a voice receiver onto a packet channel just produces garbage audio. They are still observed, because data grants are a perfectly good source of LPCN-to-frequency learning.
  • MBC (Multi Block Control) can carry grants. On systems using a Flexible (rather than Fixed) channel plan, grants arrive as MBC header + continuation blocks; dropping MBC entirely drops those calls.

The reverse channel is not a CSBK

Inbound/outbound reverse-channel signalling does not ride a CSBK at all. It lives in the embedded signalling field of a normal DMR burst, or in a shorter burst with its own sync pattern (MS Sourced RC sync). Searching CSBK opcodes for it finds nothing (#626).

Sync words cannot detect spectrum inversion

DMR’s nine sync words are closed under the polarity flip (dibit + 2) mod 4 — the XOR-0xAAAA… pattern a spectrum-inverted capture produces. An inverted data sync is byte-identical to a clean voice sync, so the sync correlator alone can never tell you the spectrum is inverted; it will happily lock and hand every downstream stage complemented dibits. Only the FEC-protected payload can detect inversion — persistent CRC/FEC failure with a solid sync lock is the tell (compare the TETRA equivalent in TETRA lock facts, and the general catalog in signal signatures) (#264).

Symptom table

Symptom Looks like Actually Fix / check
LCN changes on every transmission; learner never converges Channel-plan chaos, rekeying Last octet is the source radio’s low byte; the LPCN is the first 12 bits Parse per ETSI TS 102 361-4 (#639)
Encrypted/Emergency never set at grant time Parser bug Not present in the grant CSBK Read them from voice Link Control (#639)
Scanner “ignores” PD/TD grants Missing feature Data grants; following them yields garbage audio Deliberate — still mined for LPCN learning (#626)
Calls missing on a Flexible-plan system Weak signal Grants ride MBC header + continuations Decode MBC (#626)
Solid sync lock, but every payload fails FEC/CRC Wrong colour code, encryption Possible spectrum inversion — sync words are closed under the flip Check FEC pass rate with iq_invert toggled (#264)

Provenance

  • #639 — Hytera XPT “LCN changes every call”: the 12-bit LPCN layout and the source-address misread.
  • #626 — DMR data-type coverage: PD/TD vs BTV grants, MBC grants on Flexible plans, and the non-CSBK reverse channel.
  • #264 — RTL-SDR Blog V4 investigation that established the sync-word closure under polarity flip.

See also