Protocol Decoders is a 12-part deep dive into how GopherTrunk turns a demodulated symbol stream into structured control-channel messages — the grants that the Trunking Engine acts on. Where SDR Internals gave the decoders one survey episode, this series walks each standard in turn: P25 Phase 1 and Phase 2, DMR Tier 2/3, NXDN, dPMR, TETRA, and the EDACS / LTR / MPT-1327 legacy family — framing, FEC, PDUs, opcodes, and the state machines that hold it together.
A single mystery runs through the whole series: an intercepted Motorola talker-alias field that decodes to garbage. We plant it in Part 1 and pay it off in Parts 10–11 with a clean-room cryptanalysis (issue #773) — the recovered substitution table, the affine keystream model, the ruled-out dead ends, and the honest verdict: not yet cracked. It’s the same emitter the Crypto Lab series calls Mercury.
Authorized use only. The alias-hunt posts are for security researchers, licensed operators, and educational/CTF use. GopherTrunk’s alias decode stays gated (
CipherVerified = false) and clean-room (Apache-2.0, no GPL source read) until a real alias decodes end-to-end.
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.<ol class="post-list series-list"><li class="post-card"> <h2 class="post-card__title">Protocol Decoders, Part 1: Anatomy of a Control-Channel Decoder</h2> <p class="post-card__meta"> Deep dives </p><p class="post-card__desc">How every GopherTrunk control-channel decoder shares one shape — symbols to framing to FEC to PDU to opcode to bus event — behind a single pipeline interface and a protocol-keyed factory registry.</p></li></ol><p class="blog-feed-link"> See all deep dives or subscribe via RSS. </p>