Site map
Every page on GopherTrunk, grouped by section. Search engines should use the machine-readable XML sitemap — that’s the one to submit in Google Search Console.
Guides & documentation
- ADS-B / Aviation
- AIS / Marine
- APRS / AX.25
- Advanced
- Architecture
- Basics
- Bookmarks & frequency manager
- CC Activity panel
- Constellation panel
- Cutting a release
- DMR encryption
- DSC / Marine Distress
- Decoders that need live RF captures
- Downloads
- Eye diagram panel
- Get started
- GopherTrunk v0.1.9 — social announcement drafts
- GopherTrunk v0.2.2 — social announcement drafts
- GopherTrunk v0.2.3 — social announcement drafts
- GopherTrunk v0.2.4 — social announcement drafts
- GopherTrunk v0.2.5 — social announcement drafts
- GopherTrunk v0.2.6 — social announcement drafts
- GopherTrunk v0.2.9 — social announcement drafts
- GopherTrunk v0.3.1 — social announcement drafts
- GopherTrunk v0.3.2 — social announcement drafts
- GopherTrunk v0.3.5 — social announcement drafts
- GopherTrunk v0.3.6 — social announcement drafts
- GopherTrunk v0.3.7 — social announcement drafts
- GopherTrunk v0.3.8 — social announcement drafts
- GopherTrunk v0.3.9 — social announcement drafts
- GopherTrunk v0.4.0 — social announcement drafts
- GopherTrunk v0.4.1 — social announcement drafts
- GopherTrunk v0.4.2 — social announcement drafts
- GopherTrunk v0.4.3 — social announcement drafts
- GopherTrunk v0.4.4 — social announcement drafts
- GopherTrunk v0.4.5 — social announcement drafts
- GopherTrunk v0.4.6 — social announcement drafts
- GopherTrunk v0.4.7 — social announcement drafts
- GopherTrunk v0.4.8 — social announcement drafts
- GopherTrunk v0.4.9 — social announcement drafts
- GopherTrunk v0.5.0 — social announcement drafts
- GopherTrunk v0.5.1 — social announcement drafts
- GopherTrunk v0.5.2 — social announcement drafts
- GopherTrunk v0.5.3 — social announcement drafts
- GopherTrunk v0.5.4 — social announcement drafts
- GopherTrunk v0.5.5 — social announcement drafts
- GopherTrunk v0.5.6 — social announcement drafts
- GopherTrunk v0.5.7 — social announcement drafts
- Hardening & operations
- Hardware setup
- Hunting & mapping unknown systems
- Import (PDF / CSV)
- Intermediate
- Launcher
- Linux install
- Live config editing
- M17 link layer
- MDC1200 / Motorola Signaling
- Mixer plot
- Opt-in features
- P25 Phase 1 demodulator calibration
- POCSAG paging decoder
- Plots (signal scopes)
- Radio IDs panel
- Reference specifications
- Reference specifications
- Roadmap
- SigLab — offline signal workbench
- Site map
- Status & known gaps
- Support
- Symbol histogram panel
- Symbol scope panel
- TUI
- The Story of GopherTrunk
- Tuning panel
- Vocoders
- Voice calibration
- Web console
- What is GopherTrunk?
- Windows install
- Windows user guide
- cryptolab — optional RF cryptographic-research toolkit
- macOS install
- rigctld TCP integration
Learn
Structured learning paths. See all learning paths.
Learn RF & SDR — from newbie to expert
- Learn RF & SDR — from newbie to expert
- Analog modulation — AM, FM, SSB
- From antenna to audio — the GopherTrunk signal path
- Antennas 101
- Calibration & troubleshooting
- Clock recovery & symbol timing
- Decibels & signal power
- The demodulation pipeline
- Digital modulation & constellations
- Analog vs. digital voice
- Encryption & what you can decode
- The FFT & reading a waterfall
- Filtering & decimation
- Finding & identifying systems
- Frequency, bands & the spectrum
- Gain, AGC & avoiding overload
- Glossary of RF & SDR terms
- IQ data & complex signals
- Legal & ethical monitoring
- Other signals you'll meet
- How signals travel
- The digital protocol landscape
- What is a radio wave?
- Sample rate, bandwidth & Nyquist
- SDR hardware — RTL-SDR, HackRF, Airspy
- How an SDR receiver works
- Anatomy of a signal
- Symbols, baud & bitrate
- Tuning for a clean lock
- Vocoders — IMBE & AMBE+2
- What is software-defined radio?
- What is trunked radio?
Learn Git & GitHub — from first commit to advanced workflows
- Learn Git & GitHub — from first commit to advanced workflows
- Authentication: SSH keys & tokens
- Commit hygiene & best practices
- Branch protection, reviews & CODEOWNERS
- Branches explained
- Cherry-pick, bisect & the reflog
- Your first repository
- Forking & the fork workflow
- How Git thinks: snapshots, not diffs
- CI/CD with GitHub Actions
- Pages, Gists, Discussions & wikis
- .gitignore & tracking the right files
- Glossary of Git & GitHub terms
- Installing & configuring Git
- Rewriting history with interactive rebase
- Issues, labels & Projects
- Resolving merge conflicts
- Merging & fast-forwards
- Pull requests & code review
- Rebasing & a linear history
- Tags, releases & semantic versioning
- Remotes: clone, fetch, pull & push
- The staging area & commits
- Stashing work in progress
- Reading status & diffs
- Submodules, hooks & worktrees
- Undoing changes: restore, reset & revert
- Viewing history with log & show
- What is GitHub?
- Why version control?
- Branching strategies: trunk, GitHub Flow & Git Flow
Intro to Software Development — from punch cards to your own solo stack
- Intro to Software Development — from punch cards to your own solo stack
- Abstraction, coupling & cohesion
- Architecture patterns: layered, event-driven & plugins
- Behavioral patterns: observer, strategy, state
- From machine code to high-level languages
- Build systems, CI/CD & automation
- Choosing your stack
- Writing readable code
- Compiled, interpreted & JIT
- From looms to microprocessors
- Concurrency & streaming patterns
- Concurrency & parallelism
- Creational patterns: factory, builder, singleton
- A practical decision framework
- Your environment & daily workflow
- Documentation, tech debt & maintenance
- DRY, KISS, YAGNI & separation of concerns
- Start with requirements
- Glossary of software development terms
- PCs, the internet & the age of cheap compute
- Paradigms & language families
- Matching language to domain
- Language-level security
- A tour of today's major languages
- Memory — manual, GC & ownership
- Packaging & distributing your software
- The performance ↔ productivity trade-off
- Keeping quality high alone
- Errors, edge cases & defensive programming
- From idea to project
- The software life cycle — Waterfall to Agile
- Shipping v1 & maintaining solo
- SOLID & object-oriented design
- The solo developer — wearing every hat
- Structural patterns: adapter, facade, decorator
- Testing — unit, integration & beyond
- The people who built programming
- Type systems & safety
- Version control & collaboration
- What is a design pattern?
- What is software?
- Why language choice matters (and when it doesn't)
Learn Digital & Trunked Radio — from analog roots to decoding every system
- Learn Digital & Trunked Radio — from analog roots to decoding every system
- The analog trunking era: SmartNet, EDACS, LTR & MPT-1327
- Analog vs. digital voice
- Anatomy of a trunked call: request, grant, release
- The birth of trunking: sharing channels
- Control-channel signaling: what the data says
- Conventional vs. trunked radio
- Digital modulation for trunking: C4FM, π/4-DQPSK & CQPSK
- DMR: Tier II & Tier III
- dPMR, D-STAR & System Fusion
- EDACS, LTR & MPT-1327
- Encryption & authentication
- Finding the control channel
- Following a system end to end
- Framing, error correction & interleaving
- Glossary of digital & trunked radio terms
- Identifying what you're hearing
- Motorola SmartNet / SmartZone & Type II
- Multi-site & simulcast in practice
- NXDN
- P25 Phase 1
- P25 Phase 2: TDMA
- Sites, simulcast & roaming: multi-site systems
- Standards & who sets them: APCO, ETSI, TIA & the DMRA
- Talkgroups, radio IDs & affiliation
- TDMA vs. FDMA: fitting more calls on a channel
- TETRA
- The control channel: the system's heartbeat
- The digital leap: P25, TETRA & DMR are born
- Troubleshooting a digital decode
- Trunking flavors: dedicated vs. distributed, message vs. transmission
- From voice to bits: vocoders
- Why radio went digital
Intro to Hardware — from the cloud to the microcontroller
- Intro to Hardware — from the cloud to the microcontroller
- Arduino & the maker ecosystem
- CPU, memory, storage & I/O
- Choosing your development machine
- Combining tiers: device, server & cloud
- Cost, power & performance trade-offs
- A practical decision framework
- Dedicated servers
- Desktop computers
- Developing for mobile devices
- ESP32 & wireless microcontrollers
- Glossary of hardware terms
- The hardware spectrum — cloud to microcontroller
- Home servers & self-hosting
- Programming languages & where they run
- Laptops
- Matching hardware to the project type
- Programming microcontrollers: languages, use cases & limits
- Programming & running software on an SBC
- The Raspberry Pi & its alternatives
- SBC use cases, strengths & drawbacks
- Smartphones
- Start with your requirements
- Tablets
- Virtual private servers (VPS)
- Web & shared hosting
- What is a microcontroller?
- What is a single-board computer?
- What is computer hardware?
- Worked examples: picking hardware for real projects
Intro to Using AI in Software Development — from how models work to shipping with them
- Intro to Using AI in Software Development — from how models work to shipping with them
- Agentic coding & "vibe coding"
- Agentic & command-line tools
- App, IDE, agent — or all three?
- Chat-assisted coding
- Choosing your model & provider
- Choosing your method
- Code & "sentence" completion
- Coding models compared
- The context window, in detail
- Getting started today
- Glossary of AI-for-development terms
- How AI models are trained
- How a model decides: tokens & prediction
- AI inside your editor
- Interfaces: app, API, CLI & IDE
- One model, or a combination?
- Prompting for code
- Feeding the model the right context
- Security, privacy & ethics
- Skills & AI config files
- Using the provider's app
- The provider & model landscape
- Choosing where on the spectrum to work
- The types of AI models
- Understanding the cost
- Usage limits & tiers
- Verifying AI-written code
- What is AI, for a developer?
Software Licensing & Agreements — from open source to selling your own
- Software Licensing & Agreements — from open source to selling your own
- The AGPL: copyleft over the network
- Apache 2.0: permissive with a patent grant
- Auditing dependencies & SBOMs
- What to check before you agree
- Choosing your license, step by step
- Choosing an open-source license
- Commercial license models
- Contributor agreements: CLAs & DCO
- Copyleft in products: the viral question
- Copyright & software ownership
- Dual licensing & relicensing
- EULAs & terms of service
- Glossary of software-licensing terms
- The GPL: strong copyleft
- How to read a software agreement
- Key clauses in a commercial license
- License compatibility
- License vs contract
- Licensing across jurisdictions
- The main clauses, decoded
- MIT & BSD: minimal permissive
- NDAs & the rest of the landscape
- The risks of depending on open source
- Patents, trademarks & trade secrets
- Meeting permissive obligations
- Permissive vs copyleft
- Privacy policies & data agreements
- Proprietary & closed-source licensing
- Public domain, Unlicense & CC0
- Putting it all together
- The risk clauses: who pays when it breaks
- SLAs & support agreements
- Source-available & "fair source"
- A framework for choosing
- The licensing spectrum
- Can you sell software built on open source?
- Weak copyleft: LGPL, MPL, EPL
- What is a software license?
- What open source really means
- Where to get licensing help
- Which agreements does your software need?
- Writing a license to sell software
Field Guide
Long-form reference articles. See the Field Guide overview.
- ADS-B
- AFSK
- AI accelerator
- AMBE
- AMBE+2
- AMD
- APCO International
- API
- APRS
- ARM Cortex-M
- ARM architecture
- AVR / ATmega
- AX.25
- Abstraction
- Advanced Encryption Standard (AES)
- Affiliation
- Airspy
- Airspy HF+
- Alan Turing
- Algebraic attack
- Aliasing
- All-in-one computer
- Amplitude
- Amplitude modulation (AM)
- Analog-to-digital converter (ADC)
- Andrew Viterbi
- Android
- Antenna
- Antenna gain
- Application-specific integrated circuit (ASIC)
- Arduino
- Arduino (company)
- Arm Holdings
- Asynchronous programming
- Attenuation
- Automatic Identification System (AIS)
- Automatic frequency control (AFC)
- Automatic gain control (AGC)
- BCH code
- BIOS & UEFI
- BPTC
- Banana Pi
- Bandwidth
- Bare-metal programming
- Bare-metal server
- Baseband
- Battery technology
- BeagleBone
- Behavioral patterns
- Bias tee
- Bits & bytes
- Blade server
- Block cipher
- Bluetooth
- Bootloader
- Broadcom
- Brute-force attack (exhaustive key search)
- Build systems
- Build vs buy a PC
- Bytecode
- C
- C#
- C++
- C4FM
- CI/CD
- CIC filter
- CMA equalizer
- COBOL
- CQPSK
- CSBK
- CUDA
- Cache memory
- Capacity Plus
- Carrier wave
- Cellular modem
- Central processing unit (CPU)
- Channel grant
- Channelizer
- Chipset
- Chosen-plaintext attack
- Chromebook
- Cipher
- Ciphertext-only attack
- Claude Shannon
- Clean code
- Clock recovery
- Clock speed
- Cloud computing
- Coaxial cable
- Code coverage
- Codec 2
- Colocation
- Compact position reporting (CPR)
- Compiler
- Compute Module
- Computer case
- Computer hardware
- Computer monitor
- Concurrency vs parallelism
- Constellation diagram
- Constraint propagation
- Container
- Content delivery network (CDN)
- Control channel
- Conventional radio
- Convolutional code
- Cooling & thermals
- Costas loop
- Coupling & cohesion
- Creational patterns
- Cross-compilation
- Cryptanalysis
- Cryptographic hash function
- Cryptographic key
- Cryptography
- Cyclic redundancy check (CRC)
- D-STAR
- DC offset (DC spike)
- DMR Tier I
- DMR Tier II
- DMR Tier III
- DRY, KISS & YAGNI
- DTMF
- Data center
- Decibel (dB)
- Decimation
- Declarative programming
- Dedicated server
- Demodulation
- Design patterns
- Desktop computer
- Dibit
- Differential cryptanalysis
- Digital Mobile Radio (DMR)
- Digital Selective Calling (DSC)
- Digital Voice Systems (DVSI)
- Digital down-converter (DDC)
- Digital filter
- Digital-to-analog converter (DAC)
- Dipole antenna
- Docker
- E-reader
- EDACS
- ESP32
- ETSI
- EUROCAE
- Eben Upton
- Edge AI
- Edge computing
- Edwin Armstrong
- Electromagnetic spectrum
- Embedded system
- Encryption
- End-to-end testing
- Error handling
- Espressif Systems
- Ethernet
- Eye diagram
- FDMA
- FFSK
- FIR filter
- FLEX
- FORTRAN
- Fast Fourier transform (FFT)
- Federal Communications Commission (FCC)
- Federico Faggin
- Feistel network
- Fiber-optic
- Field-programmable gate array (FPGA)
- File system
- Firmware
- Flash memory
- Floyd M. Gardner
- Foldable phone
- Forward error correction (FEC)
- Fourier transform
- Frequency
- Frequency analysis
- Frequency bands (HF/VHF/UHF)
- Frequency modulation (FM)
- Frequency-shift keying (FSK)
- Functional programming
- GFSK
- GMSK
- GPGPU
- GPIO
- GPS receiver
- Gaming PC
- Garbage collection
- Gardner timing recovery
- Gateway
- Go
- Golay code
- Google Coral
- Gordon Moore
- Goroutines
- Graphics processing unit (GPU)
- Guglielmo Marconi
- HAT add-on board
- HackRF One
- Hamming code
- Hard disk drive (HDD)
- Hardware acceleration
- Harry Nyquist
- Heinrich Hertz
- High availability
- Home automation
- Home server & self-hosting
- Hypervisor
- ICAO
- IEEE
- IIR filter
- IMBE
- IP address
- IQ data
- Imperative programming
- In-system programming
- Infrastructure as a service (IaaS)
- Input/output (I/O)
- Instruction set architecture (ISA)
- Integrated circuit
- Integration testing
- Intel
- Interleaving
- Intermediate frequency (IF)
- International Telecommunication Union (ITU)
- Internet of Things (IoT)
- Interpreter
- Interrupt
- Ionospheric propagation
- I²C
- JEDEC
- JIT vs AOT compilation
- Jack Kilby
- James Clerk Maxwell
- Java
- JavaScript
- Jensen Huang
- John P. Costas
- John von Neumann
- Joseph Fourier
- Julia
- Kerckhoffs's principle
- Keyboard
- Keystream
- Known-plaintext attack
- Kotlin
- Kubernetes
- LAN & WAN
- LISP
- LTR (Logic Trunked Radio)
- Laptop
- Libre Computer
- Linear-feedback shift register (LFSR)
- Linus Torvalds
- LoRa
- Load balancer
- Local oscillator
- Logic gate
- Low-noise amplifier (LNA)
- M17
- M17 Project
- MATLAB
- MDC-1200
- MPT 1327
- Magnetic tape
- Managed hosting
- Massimo Banzi
- Matched filter
- Memory hierarchy
- Memory management
- Microcontroller (MCU)
- Mini PC
- Mobile app development
- Mobile operating system
- Mocking
- Mode S
- Modem
- Modulation
- Moore's law
- Motherboard
- Motherboard form factor
- Motorola Type II
- Mouse
- Mueller–Müller timing recovery
- Multi-band excitation (MBE)
- Multipath propagation
- NRZI
- NVIDIA
- NVIDIA Jetson
- NVMe
- NXDN
- Near-field communication (NFC)
- Network interface card (NIC)
- Network switch
- Network-attached storage (NAS)
- Neural processing unit (NPU)
- Noise floor
- Numerically controlled oscillator (NCO)
- Nyquist–Shannon sampling theorem
- ODROID
- Obfuscation
- Object-oriented programming
- Ofcom
- One-time pad (OTP)
- Operating system
- Optical disc
- Orange Pi
- P25 Phase 1
- P25 Phase 2
- PCI Express (PCIe)
- PHP
- PIC microcontroller
- POCSAG
- PPM frequency correction
- Package manager & dependency management
- Path loss
- Peripheral
- Personal computer
- Phase
- Phase-shift keying (PSK)
- Platform as a service (PaaS)
- Polarization
- Power over Ethernet (PoE)
- Power supply unit (PSU)
- Printer
- ProVoice
- Project 25 (P25)
- Public-key cryptography
- Pulse shaping
- Pulse-width modulation (PWM)
- Python
- Quadrature amplitude modulation (QAM)
- Qualcomm
- R
- R820T / R820T2 tuner
- RAID
- RC4 (ARC4) cipher
- REST
- RISC-V
- RP2040
- RTCA
- RTL-SDR
- RTL2832U
- Rack server
- Radio ID
- Radio horizon
- Radio propagation
- Radio wave
- RadioReference
- Random-access memory (RAM)
- Raspberry Pi
- Raspberry Pi Foundation
- Raspberry Pi Pico
- Read-only memory (ROM)
- Real-time operating system (RTOS)
- Reed–Solomon code
- Refactoring
- Reginald Fessenden
- Resampler
- Rest channel
- Reverse proxy
- Richard Hamming
- Robert Noyce
- Rock Pi (Radxa)
- Root-raised-cosine filter
- Router
- Ruby
- Rust
- S-box (substitution box)
- SAT/SMT solving
- SAW filter
- SBC cluster
- SD card
- SOLID
- SPI
- STM32
- Sample rate
- Scalability
- Scrambling (whitening)
- Semantic versioning
- Semiconductor
- Sensor
- Server
- Serverless computing
- Signal-to-noise ratio (SNR)
- Single sideband (SSB)
- Single-board computer (SBC)
- Smartphone
- Smartwatch
- SoC vs discrete
- SoapySDR
- Software as a service (SaaS)
- Software-defined radio (SDR)
- Solid-state drive (SSD)
- Sophie Wilson
- Standing wave ratio (SWR)
- Static binary
- Static vs dynamic typing
- Steve Wozniak
- Storage (SSD, HDD, flash)
- Stream cipher
- Structural patterns
- Substitution-permutation network (SPN)
- Superheterodyne receiver
- Swift
- Symbol rate (baud)
- Symmetric-key cryptography
- System Fusion (YSF)
- System bus
- System on a chip (SoC)
- TDMA
- TETRA
- TSBK
- TSMC
- Tablet
- Talkgroup
- Teensy
- Telecommunications Industry Association (TIA)
- Tensor processing unit (TPU)
- Test-driven development (TDD)
- The hardware spectrum
- Thin client
- Threads
- Thunderbolt
- Touchscreen
- Transistor
- Trellis-coded modulation
- Trunked radio
- Type system
- TypeScript
- UART
- USB
- Unit testing
- Upconverter
- Vector processor
- Version control
- Virtual private server (VPS)
- Virtualization
- Viterbi algorithm
- Vocoder
- Voice channel
- Volatile vs non-volatile memory
- Von Neumann architecture
- Watchdog timer
- Wavelength
- Wearable computer
- Web & shared hosting
- Webcam
- Wi-Fi
- Wireless access point
- Workstation
- Zadig
- dBFS
- dBm
- dPMR
- eMMC
- eSIM
- iOS
- rtl_tcp
- x86
- π/4-DQPSK
Blog
Index & archive pages, then every post.
- Blog
- Blog: Announcements
- Blog: Deep dives
- Blog: Releases
- Blog: Solution Postmortem
- Blog: Tutorials
- Build in the Open: GitHub + Claude Code from idea to release
- RF Front End: driving RTL-SDR, Airspy & HackRF in pure Go
- SDR Internals: building a software-defined radio in pure Go
- RF Front End, Part 12: The SDR Pool & USB Hotplug Watchdog (2026-06-29)
- Build in the Open, Part 12: Optimizing & Securing Your Repository (2026-06-29)
- RF Front End, Part 11: HackRF One — Signed 8-Bit IQ End to End (2026-06-28)
- Build in the Open, Part 11: Releases — Cadence, Pre-Release vs. Release, SemVer & Changelogs (2026-06-28)
- RF Front End, Part 10: Airspy R2/Mini & HF+ — Real Samples to Complex Baseband (2026-06-27)
- Build in the Open, Part 10: Websites, Support Pages & GitHub Pages (2026-06-27)
- RF Front End, Part 9: RTL-SDR III — IQ Streaming & the GC-Churn Bug (2026-06-26)
- Build in the Open, Part 9: Documentation Done Right — What Lives Where (2026-06-26)
- RF Front End, Part 8: RTL-SDR II — The R82xx Tuner & the Blog V4 Deafness (2026-06-25)
- Build in the Open, Part 8: Testing — How to Build and Write Tests (2026-06-25)
- RF Front End, Part 7: RTL-SDR I — Bringing Up the RTL2832U (2026-06-24)
- Build in the Open, Part 7: GitHub Actions — Which Workflows to Create and Why (2026-06-24)
- RF Front End, Part 6: USB on macOS & Windows (2026-06-23)
- Build in the Open, Part 6: Planning & Tracking Work — and Inviting Contributors (2026-06-23)
- RF Front End, Part 5: USB on Linux — USBDEVFS & Async URBs (2026-06-22)
- Build in the Open, Part 5: Branching & the Three Ways to Merge to Main (2026-06-22)
- RF Front End, Part 4: Talking to USB Without libusb (2026-06-21)
- Rebuilding GopherTrunk from Source: Update to the Latest Version with Git and GitHub (2026-06-21)
- Build in the Open, Part 4: Git & GitHub Fundamentals (Using the Web Interface) (2026-06-21)
- RF Front End, Part 3: The Driver Registry & Enumeration (2026-06-20)
- Build in the Open, Part 3: Brainstorming Features with Claude & Writing the README as Your Roadmap (2026-06-20)
- RF Front End, Part 2: The Device Contract (2026-06-19)
- Build in the Open, Part 2: Choosing Your Language, Platforms & Tech Stack (2026-06-19)
- RF Front End, Part 1: Why Drive Radios in Pure Go? (2026-06-18)
- Build in the Open, Part 1: Picking What to Build — How Pros Decide (2026-06-18)
- SDR in Pure Go, Part 14: APIs, Testing & the Pure-Go Story (2026-06-16)
- SDR in Pure Go, Part 13: Recording, Composition & Streaming (2026-06-15)
- SDR in Pure Go, Part 12: Voice Coding — IMBE, AMBE+2 & MBE (2026-06-14)
- SDR in Pure Go, Part 11: The Trunking Engine & Event Bus (2026-06-13)
- SDR in Pure Go, Part 10: Protocol Decoders as State Machines (2026-06-12)
- SDR in Pure Go, Part 9: Framing & Forward Error Correction (2026-06-11)
- SDR in Pure Go, Part 8: Equalization, Diversity & the FFT (2026-06-10)
- SDR in Pure Go, Part 7: Symbol Timing & Sync Recovery (2026-06-09)
- SDR in Pure Go, Part 6: Demodulation — FM, C4FM, GFSK & More (2026-06-08)
- SDR in Pure Go, Part 5: Tuning & Channelization — DDC vs. Polyphase (2026-06-07)
- SDR in Pure Go, Part 4: DSP Foundations — Filters, NCO & AGC (2026-06-06)
- SDR in Pure Go, Part 3: The SDR Pool & Streaming Concurrency (2026-06-05)
- SDR in Pure Go, Part 2: SDR Devices & the Driver Registry (2026-06-04)
- SDR in Pure Go, Part 1: What Is Software-Defined Radio? (2026-06-03)
- Welcome to the GopherTrunk blog (2026-05-27)