GopherTrunk v0.1.9 — social announcement drafts
Copy-paste drafts for posting the v0.1.9 release. Two versions below: a longer one for Reddit and a tighter one for Discord.
Release: https://github.com/MattCheramie/GopherTrunk/releases/tag/v0.1.9
Title: GopherTrunk v0.1.9 — call streaming to Broadcastify/RdioScanner, IQ recording & replay, analog trunking voice
Body:
GopherTrunk v0.1.9 is out. GopherTrunk is a pure-Go digital-trunking
radio scanner for RTL-SDR — P25 (Phase 1 + 2), DMR, NXDN, Motorola Type II,
EDACS, LTR, MPT 1327, and more. No CGO, no librtlsdr/libusb at build or
runtime, single ~10 MB static binary for Linux, macOS, and Windows, with a
headless daemon, a TUI cockpit, and a browser web console.
This release closes a big chunk of the gap with SDRtrunk. What’s new since v0.1.8:
- Outbound call streaming. Completed calls are encoded to MP3 (with a
pure-Go encoder — still zero CGO) and streamed out to Broadcastify
Calls, RdioScanner, OpenMHz, and live Icecast/ShoutCast. Per-feed
system filters; a talkgroup can opt out with
stream: false. - Wideband IQ recording + offline replay. Tee a live tuner’s IQ stream to a baseband WAV, then mount that capture — or one of SDRtrunk’s — back as a virtual tuner and decode it with no radio attached.
- Analog trunking voice. Motorola Type II / SmartZone, EDACS, LTR, and MPT 1327 calls now decode to audio through the FM voice chain.
- GPS / location subsystem. Subscriber-unit GPS fixes are decoded off the air, logged, and served over the API for map display (strict NMEA-0183 parser).
- Protocol-agnostic affiliation tracker. A live “which radio unit is on
which talkgroup” table that works uniformly across P25, DMR (all tiers),
and NXDN. Served at
GET /api/v1/affiliations. - DMR vendor-trunking recognition. FID-aware CSBK dispatch — Motorola Capacity Plus / Capacity Max voice grants now decode correctly instead of emitting bogus grants from opcode collisions.
- Per-talkgroup controls. Mute, icon assignment, and per-talkgroup record / stream opt-outs (CSV column, JSON field, or PATCH endpoint).
- Decoded-message log. An SDRtrunk-style timestamped text log of every trunking event — grants, control-channel lock/loss, affiliations, registrations, patches, talker aliases, decode errors.
- P25 control-channel fixes (#275). The C4FM path now uses the spec C4FM filter (instead of root-raised-cosine) and strips interleaved status symbols on the control channel — better lock on live RTL-SDR hardware.
Downloads (Linux/macOS/Windows, x64 + ARM64): https://github.com/MattCheramie/GopherTrunk/releases/tag/v0.1.9
Project & docs: https://gophertrunk.org
Heads-up: the v0.1.x line is still prereleases — actively developed, and feedback / captures / bug reports are very welcome.
Discord
Discord renders Markdown — headers (#/##/###), **bold**, -
bullets, and -# subtext. Paste the block below as-is.
## GopherTrunk v0.1.9 is out
Pure-Go digital-trunking scanner for RTL-SDR — P25/DMR/NXDN/analog trunked, single static binary, zero CGO.
### What's new since v0.1.8
- **Call streaming** — calls now stream to Broadcastify Calls, RdioScanner, OpenMHz, and Icecast/ShoutCast (pure-Go MP3, still no CGO)
- **IQ recording + replay** — record baseband to WAV, replay captures as virtual tuners with no radio attached
- **Analog trunking voice** — Motorola Type II/SmartZone, EDACS, LTR, MPT 1327 now decode to audio
- **GPS / location** — subscriber GPS fixes decoded, logged, and served for map display
- **Affiliation tracker** — live unit-to-talkgroup table across P25/DMR/NXDN
- **DMR vendor trunking** — Motorola Capacity Plus / Capacity Max grants decode correctly
- **Per-talkgroup controls** — mute, icon, record, and stream opt-outs
- **Decoded-message log** — SDRtrunk-style event log
- **P25 #275 fixes** — spec C4FM filter + control-channel status-symbol stripping for better live lock
**Download:** <https://github.com/MattCheramie/GopherTrunk/releases/tag/v0.1.9>
**Docs:** <https://gophertrunk.org>
-# v0.1.x is a prerelease line — actively developed, feedback welcome.