DMR End to End is a 14-part deep dive into the GopherTrunk DMR stack — the world’s most widely deployed digital PMR protocol, followed from a raw 4800-symbol-per-second 4FSK carrier all the way to two simultaneous recorded calls, direct-mode handhelds and decrypted Enhanced Privacy voice. Where Protocol Decoders gave DMR one episode and the Cookbook two recipes, this series walks every layer at full depth: bursts, sync words and polarity, the two TDMA cadences, the BPTC/Golay/Reed-Solomon FEC stack, link control and late entry, conventional IPSC repeaters decoded as two calls, the idle beacon, Tier III trunking, direct mode and the gaps that blinded the receiver, wideband decoding and the deaf-heal, AMBE+2 voice, Enhanced Privacy, and the testing discipline behind all of it.
The running thread is that one DMR carrier carries two of everything — two timeslots, two sync polarities, two tiers of trunking, two decode cadences — and the receiver only works when it knows which one it is looking at. Almost every DMR bug in the issue tracker was the decoder assuming the wrong twin: a repeater’s back-to-back bursts where a handheld leaves gaps, a voice burst read as a data slot type, two talkgroups folded into one call. The series ends honestly, with the field runs and captures still open.
Every post reads three ways: a TL;DR + cheat-sheet for skimmers, bold headers, tables, and diagrams for the medium read, and full prose with real code for the deep read.
New here? Start with the DMR Tier 2/3 lesson in the Digital Trunking module for the lay of the land, then come back for how GopherTrunk actually decodes it.<ol class="post-list series-list"><li class="post-card"> <h2 class="post-card__title">DMR End to End, Part 1: The 4FSK Carrier & the Tier Family</h2> <p class="post-card__meta"> Deep dives </p><p class="post-card__desc">What a DMR carrier actually is — 4800 symbols per second of four-level FSK in a 12.5 kHz channel, dibits riding on ±648 and ±1944 Hz deviations, two 30 ms timeslots sharing one frequency, three tiers on one wire format, and the 48 kHz FM-discriminator chain GopherTrunk sizes around all of it.</p></li><li class="post-card"> <h2 class="post-card__title">DMR End to End, Part 2: Bursts, Sync Words & Polarity</h2> <p class="post-card__meta"> Deep dives </p><p class="post-card__desc">How GopherTrunk turns a raw DMR dibit stream into bursts — the 132-dibit layout with its central sync, the nine 48-bit sync words and the polarity flip that maps every data sync onto a voice sync, the Golay-protected slot type that routes each burst, and the one FEC-valid burst that fixes a stream’s polarity.</p></li><li class="post-card"> <h2 class="post-card__title">DMR End to End, Part 3: Two Slots, One Carrier — Repeater vs Simplex Cadence</h2> <p class="post-card__meta"> Deep dives </p><p class="post-card__desc">How GopherTrunk follows a DMR voice superframe across six bursts when only the first carries a sync — the 132, 264 and 288-dibit cadences, embedded-LC and AMBE-FEC cadence detection, the relative Phase label separating two interleaved calls, and the simplex handheld whose empty slot a single-slot decoder sliced as voice.</p></li></ol><p class="blog-feed-link"> See all deep dives or subscribe via RSS. </p>