The Operator’s Cookbook is a 14-part series of complete, copy-paste GopherTrunk builds — one working rig per part, antenna to browser. Every other tutorial series on this blog is organized by subsystem; this one is organized by what you’re trying to build. Each part is a full recipe: the hardware list, a working config.yaml, the first-run verification (the exact log lines and web panels that mean it’s working), a troubleshooting table, and variations to grow into.

The recipes run from a $40 P25 starter rig through DMR Tier III, two-slot conventional DMR, TETRA TMO and Direct Mode, analog FM with tone-out paging, multi-dongle SDR pools, remote radios over the network, streaming to Broadcastify and friends, a FLAC-everything archival rig, a headless Raspberry Pi appliance, and a two-antenna diversity build — ending with the kitchen-sink config, annotated line by line. The cookbook tells you what to do; The Hunt, Running It For Real, Recording, Composition & Streaming and The Analog Edge tell you why it works.

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 configs for the deep read.

New here? Start with What do I need for GopherTrunk? for the hardware basics, then pick the recipe that matches your area.<ol class="post-list series-list"><li class="post-card"> <h2 class="post-card__title">The Operator’s Cookbook, Part 1: The $40 P25 Starter Rig</h2> <p class="post-card__meta"> Tutorials </p><p class="post-card__desc">A complete first GopherTrunk build — one RTL-SDR dongle, the stock whip, and a laptop decoding a local P25 Phase 1 system, with a copy-paste config.yaml, the exact log lines a healthy first run prints, and a troubleshooting table for when it won’t lock.</p></li><li class="post-card"> <h2 class="post-card__title">The Operator’s Cookbook, Part 2: A DMR Tier III Network, End to End</h2> <p class="post-card__meta"> Tutorials </p><p class="post-card__desc">A complete GopherTrunk build for trunked DMR — one wideband dongle on a Tier III control channel, the LCN-to-frequency band plan problem (and letting GopherTrunk learn the plan off the air), plus the log lines, colour codes and timeslots that tell you it’s working.</p></li><li class="post-card"> <h2 class="post-card__title">The Operator’s Cookbook, Part 3: One Repeater, Two Conversations — Conventional DMR</h2> <p class="post-card__meta"> Tutorials </p><p class="post-card__desc">A single-dongle GopherTrunk build for a conventional DMR Tier II repeater — two independent talkgroups on TS1 and TS2 decoded as two simultaneous calls, with the interleaved two-slot voice path, embedded-LC routing, colour-code pinning, and the honest edge cases.</p></li><li class="post-card"> <h2 class="post-card__title">The Operator’s Cookbook, Part 4: A TETRA TMO Rig</h2> <p class="post-card__meta"> Tutorials </p><p class="post-card__desc">A complete GopherTrunk build for a TETRA trunked-mode network — one dongle camped on a 25 kHz control carrier, the CC equalizer that now ships enabled, MCC/MNC identity, four-slot same-carrier voice through the clean-room ACELP vocoder, and the sync-loss troubleshooting that came from real field logs.</p></li><li class="post-card"> <h2 class="post-card__title">The Operator’s Cookbook, Part 5: TETRA Direct Mode — Scanning DMO</h2> <p class="post-card__meta"> Tutorials </p><p class="post-card__desc">A complete GopherTrunk recipe for TETRA DMO — radio-to-radio direct mode with no infrastructure. One dongle camped on a simplex frequency, the tetra-dmo protocol, colour-code auto-recovery, the tetra_mcc/tetra_mnc keys an MNI≠0 network requires, and an honest account of what is still on-air-gated.</p></li><li class="post-card"> <h2 class="post-card__title">The Operator’s Cookbook, Part 6: Analog FM & Tone-Out Paging</h2> <p class="post-card__meta"> Tutorials </p><p class="post-card__desc">A complete GopherTrunk recipe for conventional analog FM — a real scan list with squelch, CTCSS/DCS tone gating and per-channel hangtime, plus Quick Call II two-tone fire paging alerts, built on the scanner.conventional and tone_out config sections with every key verified.</p></li><li class="post-card"> <h2 class="post-card__title">The Operator’s Cookbook, Part 7: Many Systems, One Box — The SDR Pool</h2> <p class="post-card__meta"> Tutorials </p><p class="post-card__desc">A complete GopherTrunk recipe for monitoring several trunked systems from one daemon: pinning dongles by serial, control vs voice vs wideband roles, sizing the shared voice pool against concurrent calls, and the priority, scan-list and preemption rules that decide who gets a radio.</p></li><li class="post-card"> <h2 class="post-card__title">The Operator’s Cookbook, Part 8: Radios Far Away — SoapyRemote, rtl_tcp & ka9q</h2> <p class="post-card__meta"> Tutorials </p><p class="post-card__desc">A complete GopherTrunk recipe for putting the antenna where reception is and the decoder where the CPU is: sdr.soapy_remote, rtl_tcp and ka9q_radio config, the network bandwidth math per format, validated antenna-port selection, and why host_drops means your decoder stalled — not your network.</p></li><li class="post-card"> <h2 class="post-card__title">The Operator’s Cookbook, Part 9: Sharing the Feed — Broadcastify, OpenMHz & Friends</h2> <p class="post-card__meta"> Tutorials </p><p class="post-card__desc">Turn a working GopherTrunk rig into a public feed — copy-paste broadcast config for Broadcastify Calls, RdioScanner, OpenMHz, Icecast and webhooks, the MP3 transcode and loudness settings that make uploads sound right, and a troubleshooting table for uploads that fail or vanish.</p></li><li class="post-card"> <h2 class="post-card__title">The Operator’s Cookbook, Part 10: The Archival Rig — FLAC, Retention & the Call Log</h2> <p class="post-card__meta"> Tutorials </p><p class="post-card__desc">The keep-everything GopherTrunk build — lossless FLAC voice recordings at roughly half the size of WAV, FLAC IQ taps, the SQLite call log, retention sweeps that actually run, DSD-FME-playable vocoder sidecars, and disk-budget math with real byte rates.</p></li><li class="post-card"> <h2 class="post-card__title">The Operator’s Cookbook, Part 11: The Closet Appliance — Pi, systemd & Docker</h2> <p class="post-card__meta"> Tutorials </p><p class="post-card__desc">Turn a GopherTrunk rig into a headless 24/7 appliance — a Raspberry Pi or mini-PC under a hardened systemd unit, Docker with USB pass-through, honest LAN auth posture, sdr doctor preflight, runtime heartbeats and USB watchdogs, and the graceful shutdown that finally takes milliseconds.</p></li><li class="post-card"> <h2 class="post-card__title">The Operator’s Cookbook, Part 12: Two Antennas, One Signal — A Diversity Build</h2> <p class="post-card__meta"> Tutorials </p><p class="post-card__desc">A complete GopherTrunk diversity build — a two-channel SDR over SoapyRemote with diversity mrc, reading the MRC health line (coherence, branch_phase_deg), choosing mrc vs mrc-static by hardware class, and the pre-combine capture A/B that proves whether combining actually helps.</p></li><li class="post-card"> <h2 class="post-card__title">The Operator’s Cookbook, Part 13: Naming Everything — Aliases, Labels & Exports</h2> <p class="post-card__meta"> Tutorials </p><p class="post-card__desc">Turn every talkgroup and radio ID on your GopherTrunk rig into a name — the real talkgroup_file and rid_alias_file CSV columns, naming things live from the web console with the labels layer, harvesting talker aliases off the air, and exporting the merged catalogue back to CSV.</p></li></ol><p class="blog-feed-link"> See all tutorials or subscribe via RSS. </p>