GopherTrunk v0.4.0 — social announcement drafts
One-click copy-paste blurbs for posting the v0.4.0 release. Each block below is a fenced code block so the rendered-markdown “copy” button grabs exactly what you’d paste.
Release: https://github.com/MattCheramie/GopherTrunk/releases/tag/v0.4.0
Reddit — title
GopherTrunk v0.4.0 — DMR Tier III now self-configures: it learns the LCN band plan off the air, decodes real control channels, and follows trunked voice with no hand-entered frequency table
Reddit — body
**[GopherTrunk](https://gophertrunk.org) v0.4.0 is out** — pure-Go digital-trunking scanner for RTL-SDR / HackRF / Airspy. P25 (Phase 1+2), DMR (AMBE+2 voice), NXDN, Motorola Type II, EDACS, LTR, MPT 1327, dPMR, D-STAR, YSF, M17, plus APRS, POCSAG + FLEX paging, and AIS / DSC / ADS-B. No CGO, single static binary for Linux / macOS / Windows.
**What's new since v0.3.9:**
* **DMR Tier III trunk autoconfiguration** (#638) — a Tier III control channel only ever transmits a Logical Channel Number, never an absolute frequency, so following voice used to require a hand-entered `dmr_band_plan`. GopherTrunk now learns it from the wideband stream: it watches which carriers key up in response to each granted LCN, decode-confirms a live DMR burst, fits the base frequency + channel spacing, hot-swaps the plan into the running control channel, and writes it back to your config so it survives a restart.
* **Real over-the-air DMR control-channel decode** (#636) — a symbol-AGC normalises the matched-filter level to the slicer scale, so real off-air BPTC(196,96)/RS payloads finally pass FEC and Tier III/II lock end-to-end instead of only the synthesized fixtures. The CSBK opcode table was rebuilt to the ETSI values (#640), and data grants, MBC assembly, inbound/ack CSBKs, and the embedded Reverse Channel are now parsed (#643, #646).
* **DMR Tier III voice fixed** — recorded Tier III audio defaults to the 2-slot interleaved decoder so two timeslots no longer splice into "encrypted"-sounding noise (#644), and the voice-grant LCN is read from the correct bits so the band-plan learner converges (#639).
* **Per-call loudness normalization** (#627) — optional EBU R128 / BS.1770 normalization of recordings (and/or the distributed MP3), in pure Go with no ffmpeg, so calls from different talkgroups play back at a consistent level. Plus an onset-clip fix that caps per-frame AGC gain at the limiter knee (#635).
* **Signal plots** — the new **Mixer** plot completes parity with OP25's six Plots tabs, and the Spectrum panel gains a live spectrum-analyzer trace above the waterfall (#634).
* **Fixes** — wideband symbol-clock drift corrected so marginal wideband captures decode (#633, #402), and a live Hunt no longer dead-ends when no control SDR is configured (#641).
**Downloads** (Linux / macOS / Windows, x64 + ARM64): https://github.com/MattCheramie/GopherTrunk/releases/tag/v0.4.0
**Docs:** https://gophertrunk.org
Heads-up: the v0.x line is still flagged prerelease — actively developed, feedback / captures / bug reports very welcome.
Discord
**GopherTrunk v0.4.0 is out** — pure-Go trunking scanner for RTL-SDR / HackRF / Airspy. P25, DMR, NXDN, M17, analog trunked, APRS, POCSAG + FLEX paging, AIS / DSC / ADS-B. Single static binary, zero CGO.
**What's new since v0.3.9 (mostly DMR):**
- **DMR Tier III autoconfiguration** (#638) — learns the LCN band plan off the air (carrier key-up detection + decode-confirm + fit), hot-swaps it into the live control channel, and writes it back to config. No more hand-entered `dmr_band_plan`.
- **Real DMR control-channel decode** (#636) — symbol-AGC makes off-air BPTC/RS FEC pass so Tier III/II actually lock; CSBK opcode table rebuilt to ETSI (#640); data grants, MBC assembly, inbound/ack + Reverse Channel CSBKs parsed (#643, #646).
- **Tier III voice fixed** — 2-slot interleaved decoder stops "encrypted"-sounding timeslot splicing (#644); voice-grant LCN read from the right bits (#639).
- **Loudness normalization** (#627) — pure-Go EBU R128 / BS.1770, no ffmpeg, recording and/or distributed copy; plus an AGC onset-clip fix (#635).
- **Plots:** new Mixer plot (OP25 parity) + spectrum-analyzer trace above the waterfall (#634).
- **Fixes:** wideband symbol-clock drift (#633/#402), live Hunt with no control SDR (#641).
Download: <https://github.com/MattCheramie/GopherTrunk/releases/tag/v0.4.0>
Docs: <https://gophertrunk.org>