The Field Notebook is a 14-part operator’s tutorial that reads the
GopherTrunk debug.log one
line family at a time. The
Cookbook told you
which lines prove a rig is alive;
From Spec to Shipping
argued that the log is an instrument, not a diary. This series is the
instrument’s manual: for each line — startup WARNs, lock and hunt lines, the
TETRA and DMR decode-status counters, the carrier-offset WARN, the DMO noise
meter versus its traffic counter, overruns and host_drops, the MRC health
line, capture and recorder lines, the voice chain’s teardown reasons — it
answers the same three questions. What does each field measure? What does a
healthy rig print? Which deep dive do you open when it doesn’t?
The running thread is that almost every field report in the issue tracker already contained its own diagnosis in a line nobody read: a counter that was a noise meter mistaken for traffic, a success-only line that carried no information, a WARN firing on one sample of a ten-second condition. The series ends with the one-page field card and with how to turn a log into a bug report that gets fixed — what to paste, which capture to make, and what “verified” means before anyone closes the issue.
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 log excerpts for the deep read.
New here? Start with When decoding fails in the Scanning module for the big picture, then come back for the lines.<ol class="post-list series-list"><li class="post-card"> <h2 class="post-card__title">The Field Notebook, Part 1: Startup — The Lines Before the First Lock</h2> <p class="post-card__meta"> Tutorials </p><p class="post-card__desc">An operator’s reading of GopherTrunk’s startup log block — the two “gophertrunk starting” lines, device opened and gain set, and the config WARNs the daemon prints before its first lock, including the gain-in-tenths trap, two systems on one control tuner, and the pool gate that used to log nothing.</p></li><li class="post-card"> <h2 class="post-card__title">The Field Notebook, Part 2: Lock Lines — Locked, Lost & Transitions</h2> <p class="post-card__meta"> Tutorials </p><p class="post-card__desc">An operator’s reading of GopherTrunk’s control-channel lock family — cc-hunt trying and locked, the per-protocol cc locked lines, the cc.lost events behind a re-hunt, cchunt hunt failed with its IQ diagnosis, the camped idle state, and the transition counter that turns “it drops sometimes” into a number.</p></li><li class="post-card"> <h2 class="post-card__title">The Field Notebook, Part 3: The TETRA Decode-Status Line</h2> <p class="post-card__meta"> Tutorials </p><p class="post-card__desc">An operator’s field-by-field reading of GopherTrunk’s tetra decode status line — sb_bursts, bsch_ok and bsch_fail, sch_pdus and sch_pdus_fail, frag_abandons — the “locked but deaf” signature where bsch_ok climbs while sch_pdus stays zero, and the signal-time resync and payload-drought watchdogs that recover it.</p></li><li class="post-card"> <h2 class="post-card__title">The Field Notebook, Part 4: The Carrier-Offset WARN — Alias Buckets & Persistence</h2> <p class="post-card__meta"> Tutorials </p><p class="post-card__desc">An operator’s reading of GopherTrunk’s issue</p></li><li class="post-card"> <h2 class="post-card__title">The Field Notebook, Part 5: The DMR Activity Line</h2> <p class="post-card__meta"> Tutorials </p><p class="post-card__desc">How to read GopherTrunk’s widebandt2 channel decode activity line for conventional DMR — dibits, sync_hits, fec_pass, beacons, late_entries, rekeys, csbk_crc_fail and deaf_heals — what a healthy IPSC tap prints, what the deaf-tap heal WARN’s receiver internals mean, and which DMR deep dive to open when a counter goes wrong.</p></li><li class="post-card"> <h2 class="post-card__title">The Field Notebook, Part 6: The DMO Status Line — Noise Meters & Traffic Counters</h2> <p class="post-card__meta"> Tutorials </p><p class="post-card__desc">How to read GopherTrunk’s tetra dmo decode status line — dsb_total against dsb_schs_crc, the dnb_total noise meter against dnb_qualified, tch_crc, distinct_fn and the per-transmission scramble-seed fields — plus the seed recovered, seed changed and voice-follow lines around it, what healthy DMO prints, and when a counter means a defect.</p></li><li class="post-card"> <h2 class="post-card__title">The Field Notebook, Part 7: Overruns & host_drops — Reading a Downstream Signal</h2> <p class="post-card__meta"> Tutorials </p><p class="post-card__desc">How to read GopherTrunk’s overrun family — the soapyremote SDR overruns WARN with device_overflows and host_drops, the ccdecoder decode can’t keep up WARN, the same-carrier voice tap dropped_chunks line and the runtime heartbeat — why each one points downstream at the decoder rather than at the radio, and the CPU story behind the 10 Sep dual-TETRA rig.</p></li><li class="post-card"> <h2 class="post-card__title">The Field Notebook, Part 8: The MRC Health Line</h2> <p class="post-card__meta"> Tutorials </p><p class="post-card__desc">How to read GopherTrunk’s soapyremote MRC diversity branches health line — branch_dbfs, coherence, branch_gain_db, branch_phase_deg, updates and holds, lock_gate — the anchor and inter-branch delay lines around it, the four WARNs and how their text history changed, and which Weak-Signal or Analog Edge post to open when a two-antenna rig stops earning its keep.</p></li><li class="post-card"> <h2 class="post-card__title">The Field Notebook, Part 9: Capture Lines — Aligning a Capture to the Log</h2> <p class="post-card__meta"> Tutorials </p><p class="post-card__desc">How to read GopherTrunk’s siglab capture-started, capture-ended and capture-aborted log lines, line a recorded IQ file up with the daemon’s decode log by timestamp, and recognise the two capture failures — a centre carved at the wrong frequency and a FLAC rate refusal — before they cost you an afternoon.</p></li><li class="post-card"> <h2 class="post-card__title">The Field Notebook, Part 10: Recorder Lines — Spans, Segments & Dead Keys</h2> <p class="post-card__meta"> Tutorials </p><p class="post-card__desc">How to read GopherTrunk’s recorder log — call started and call ended with its reason field, the audio_pct that catches a recording shorter than its call span, the dead-key drops that leave nothing on disk, the per-transmission segment rolls, and the retention sweeper lines that tidy up behind them.</p></li><li class="post-card"> <h2 class="post-card__title">The Field Notebook, Part 11: Voice-Chain Lines — Frames, Colours & Teardown Reasons</h2> <p class="post-card__meta"> Tutorials </p><p class="post-card__desc">How to read GopherTrunk’s composer voice-chain log — the voice-follow start and end lines, speech_frames and tch_frames, the bfi_count bad-frame counter, the TETRA DMO seed lines, and the undecoded_drops and concurrency_suppressed counters that look alarming but work exactly as designed.</p></li><li class="post-card"> <h2 class="post-card__title">The Field Notebook, Part 12: Web Symptoms That Are Really Log Stories</h2> <p class="post-card__meta"> Tutorials </p><p class="post-card__desc">Five GopherTrunk web-console complaints — History hours behind, an empty table, a reconnect storm, a permanent symbol: poor badge, a silent 0.1-second recording row — traced through the daemon log to the seam that broke: the UTC render, the r.rows key, the pre-upgrade 404, symbol_proto, and a voice chain that decoded nothing.</p></li><li class="post-card"> <h2 class="post-card__title">The Field Notebook, Part 13: From Log to Issue — What to Paste, What to Capture</h2> <p class="post-card__meta"> Tutorials </p><p class="post-card__desc">How to turn a GopherTrunk debug.log into a bug report that gets fixed — the three blocks to paste, aligning a capture’s clock to the log’s, which IQ capture answers which question (gophertrunk capture, pre-combine diversity_capture, on_cc_sync_loss), and the verified-language policy that decides when an issue may close.</p></li><li class="post-card"> <h2 class="post-card__title">The Field Notebook, Part 14: The One-Page Field Card</h2> <p class="post-card__meta"> Tutorials </p><p class="post-card__desc">The series finale — one card for reading any GopherTrunk debug.log: the five lines to read first on any report, one table per protocol family mapping each line to healthy, worry-when and the part that explains it, the noise-meter-versus-traffic-counter list, and an honest note on what the log still cannot tell you.</p></li></ol><p class="blog-feed-link"> See all tutorials or subscribe via RSS. </p>