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
- Account
- Advanced
- Airspy vs RTL-SDR vs HackRF for Scanning
- Antenna Mast & Mounting Hardware Guide (2026)
- Architecture
- Basics
- Best Aviation Scanner (Airband)
- Best DMR Scanner (Tier II & III, Color Codes)
- Best Fire & EMS Scanner (Medical & Fire Dispatch)
- Best LNA for SDR (and When You Need One)
- Best Marine Scanner (VHF Boating, 2026)
- Best NXDN Scanner (IDAS, NEXEDGE, RAN)
- Best P25 Scanner (Phase I & II, Simulcast)
- Best Police Scanner Under $100 (2026)
- Best Police Scanner Under $200 (2026)
- Best Police Scanner Under $500 (2026)
- Best Police Scanner for Arizona (2026)
- Best Police Scanner for Beginners (2026)
- Best Police Scanner for California (2026)
- Best Police Scanner for Florida (2026)
- Best Police Scanner for Georgia (2026)
- Best Police Scanner for Illinois (2026)
- Best Police Scanner for Michigan (2026)
- Best Police Scanner for New York (2026)
- Best Police Scanner for North Carolina (2026)
- Best Police Scanner for Ohio (2026)
- Best Police Scanner for Pennsylvania (2026)
- Best Police Scanner for Texas (2026)
- Best Police Scanner for Washington (2026)
- Best Police Scanners (2026 Buyer's Guide)
- Best RTL-SDR for Scanning (2026)
- Best SDR Antenna for Scanning
- Best SDR for GopherTrunk (2026 Buyer's Guide)
- Best SDR for HF (Shortwave, Ham, Utility)
- Best SDR for P25 Trunking (GopherTrunk)
- Best Scanner Antennas (2026)
- Best Scanner for NASCAR & Racing (2026)
- Best Scanner for Neighborhood Watch & Home Safety
- Best Scanner for Railfans (2026)
- Best Scanner for Road Trips & Travel (2026)
- Best Scanner for Storm Chasing & Weather (2026)
- Best Scanner for Truckers
- Best Single-Board Computer for GopherTrunk (2026)
- Bookmarks & frequency manager
- CC Activity panel
- Cheap Police Scanners (Best Under $150 + Free Options)
- Cheapest Way to Scan Digital Radio (SDR + GopherTrunk)
- Constellation panel
- Cutting a release
- DMR encryption
- DMR voice quality
- DSC / Marine Distress
- Decoders that need live RF captures
- Design: Neighbor-site following (multi-site)
- Digital vs Analog Police Scanners: Which Do You Need?
- Downloads
- Edit profile
- Event API & webhooks
- Eye diagram panel
- Forum
- Forum thread
- Get started
- GopherTrunk Build Lists — Complete Shopping Lists for Every Setup
- GopherTrunk Bundle — the capture-to-analysis case format
- GopherTrunk Multi-Dongle Build — Wideband & Multi-Site Parts List
- GopherTrunk Outdoor Base Station Build — Rooftop Antenna Parts List
- GopherTrunk PC Build — Complete Parts List for a Desktop or Laptop Scanner
- GopherTrunk Portable Build — Field & Battery Scanner Parts List
- GopherTrunk Raspberry Pi / SBC Build — Complete 24/7 Scanner Parts List
- 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
- GopherTrunk v0.5.8 — social announcement drafts
- GopherTrunk v0.5.9 — social announcement drafts
- GopherTrunk v0.6.4 — social announcement drafts
- Handheld vs Base/Mobile Scanners
- Hardening & operations
- Hardware setup
- How Police Scanners Work (2026 Explainer)
- How to Program a Police Scanner
- Hunting & mapping unknown systems
- Import (PDF / CSV)
- Intermediate
- Is It Legal to Own a Police Scanner? (2026)
- Launcher
- Linux install
- Live config editing
- M17 link layer
- MDC1200 / Motorola Signaling
- Mixer plot
- Moderation
- Multi-Dongle & Wideband SDR Setup for GopherTrunk
- Opt-in features
- P25 Phase 1 demodulator calibration
- POCSAG paging decoder
- Plots (signal scopes)
- Police Scanner Buying Guide (2026)
- Police Scanner Encryption Explained (2026)
- Police Scanner vs SDR + GopherTrunk: An Honest Comparison
- Police, Fire & EMS Scanner Frequencies by Service
- Profile
- RF Scope — protocol-agnostic RF network analysis
- RTL-SDR Blog V3 vs V4: Which to Buy
- Radio IDs panel
- Roadmap
- Run GopherTrunk 24/7 on a Raspberry Pi
- SDR Cables & Connectors Guide
- SDR Filters: Fix Overload & Interference
- SigLab — offline signal workbench
- Site map
- Spectrum waterfall
- Status & known gaps
- Support
- Symbol histogram panel
- Symbol scope panel
- TETRA Scanner: What Works (and GopherTrunk)
- TUI
- The Story of GopherTrunk
- Tuning panel
- Vendored third-party JS
- Vendored third-party JS
- Vocoders
- Voice calibration
- Web console
- What Hardware Do I Need to Run GopherTrunk? (Complete Checklist)
- What is GopherTrunk?
- Windows install
- Windows user guide
- cryptolab — optional RF cryptographic-research toolkit
- macOS install
- rigctld TCP integration
Learn
Structured learning content. See all learning.
Learning paths
Optional guided routes through several modules toward competence in a domain.
- Learning Path — RF Software Development
- Learning Path — RF Hardware
- Learning Path — Software Engineering Foundations
- Learning Path — AI Software Development
- Learning Path — Cybersecurity
- Learning Path — Digital Trunking & Scanning
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
- Front-end filters, LNAs & overload
- Gain, AGC & avoiding overload
- Glossary of RF & SDR terms
- IQ data & complex signals
- Legal & ethical monitoring
- Noise, SNR & sensitivity
- 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
- The GitHub CLI, Git LFS & repo security
- 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
Linux & the Command Line — from first command to confident operator
- Linux & the Command Line — from first command to confident operator
- Conditionals & loops
- Environment variables & PATH
- The filesystem hierarchy
- Finding files & text
- Your first commands
- Your first shell script
- Functions, exit codes & error handling
- Getting a shell
- Glossary of Linux & command-line terms
- History, tab completion & shortcuts
- Monitoring, disk & logs
- Navigating & listing files
- Installing software with a package manager
- File permissions
- Pipes & redirection
- Processes & jobs
- Running GopherTrunk on Linux
- Scheduling with cron & timers
- Services & systemd
- SSH & working remotely
- sudo & becoming root safely
- Text-processing tools
- The shell explained
- Users, groups & root
- Variables, arguments & input
- Viewing & editing files
- What is Linux?
- Why the command line?
- Wildcards, globbing & expansion
- Creating, copying & moving files
Networking & the Internet — from your first packet to a service on the open web
- Networking & the Internet — from your first packet to a service on the open web
- Clients, servers & peers
- Making requests with curl
- DHCP & joining a local network
- DNS — names to addresses
- Exposing a service safely
- Firewalls & controlling access
- Glossary of networking terms
- GopherTrunk on the network
- How a web request works, end to end
- HTTP — the web's protocol
- Inspecting your network
- IP addresses & subnets
- NAT & private networks
- Network security basics
- Packet capture basics
- Packets & switching
- Port forwarding & dynamic DNS
- Ports & sockets
- Protocols & layers
- Proxies, reverse proxies & load balancers
- Running a server — binding & reachability
- Self-hosting on a home network
- SSH tunnels & transfers
- TCP vs. UDP
- Testing connectivity
- TLS & HTTPS
- VPNs & tunnels
- Web APIs & REST
- WebSockets & real-time connections
- What is a network?
Cybersecurity Fundamentals — from threats and crypto to defending real systems
- Cybersecurity Fundamentals — from threats and crypto to defending real systems
- Authentication basics
- Authorization & access control
- The CIA triad
- Common attacks, in plain terms
- Cryptography in practice
- Defense in depth
- Glossary of cybersecurity terms
- Hardening systems
- Hashing & integrity
- Where to go next
- Malware & endpoint security
- Monitoring & incident response
- Network attacks
- Passwords, MFA & passkeys
- Privacy & data protection
- Wireless & RF security
- Managing secrets & keys
- Secure coding
- Securing networks & services
- Security for developers
- The security mindset
- Digital signatures & certificates
- Social engineering & the human layer
- Staying safe online
- Symmetric & public-key encryption
- Who attacks, and why
- Threats, vulnerabilities & risk
- Web application attacks
- What is cryptography?
- What is cybersecurity?
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
- APIs & talking to other software
- 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
- Data structures & algorithms, briefly
- Storing data — files & databases
- 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
- Data services — GPS, text & registration
- 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
- OTAR & key management
- 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
- Beyond the CPU — GPUs, FPGAs & accelerators
- 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
- Running local & open models
- 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?
Building AI Into Your Software — from your first API call to a feature you ship
- Building AI Into Your Software — from your first API call to a feature you ship
- Building a RAG pipeline
- What it means to build AI into software
- Choosing a model for a feature
- Chunking & retrieval quality
- Feeding the model context & user input
- Cost, latency & rate limits by design
- Embeddings & vector search
- Evaluating AI features
- Few-shot examples & steering output
- Giving agents tools (and MCP)
- Glossary of AI-engineering terms
- Why retrieval — grounding the model in your data
- Handling hallucinations & failure
- How a model API call works
- The model as a probabilistic component
- Multimodal — images, audio & documents
- Observability & monitoring
- Optimizing cost & latency
- Getting usable output back
- Privacy, data & compliance
- Prompt injection & data safety
- Prompts as code — system prompts & templates
- RAG vs. long context vs. fine-tuning
- Shipping your first AI feature
- Streaming responses
- Structured output & JSON
- Tool use & function calling
- Agents — letting the model act in a loop
- Your first API call
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
Learn Go — from your first program to reading real code
- Learn Go — from your first program to reading real code
- Benchmarking & profiling
- Channels
- Concurrency patterns
- Context & cancellation
- Control flow
- Debugging Go
- Dependency management
- Error-handling patterns
- Functions & error handling
- Glossary of Go terms
- Goroutines
- Your first Go program
- Writing idiomatic Go
- Interfaces & composition
- JSON & serialization
- Logging with slog
- Where to go next
- Packages & modules
- Pointers
- Structuring a Go project
- Reading a real Go codebase
- select & synchronization
- Slices, maps & generics
- Strings, bytes & runes
- Structs & methods
- Testing in Go
- The Go toolchain
- The standard library
- Values, variables & types
- Why Go?
- Working with files & I/O
Learn DSP — from samples to decoded bits
- Learn DSP — from radio samples to decoded bits
- Carrier & frequency recovery
- Clock & symbol recovery
- Complex signals & I/Q
- Constellations & symbol mapping
- Convolution & impulse response
- Decimation & resampling
- Demodulation in code
- DSP in GopherTrunk
- Equalization & multipath
- Error correction & framing
- Filter design basics
- FIR filters
- Fixed vs floating point & performance
- Gain & automatic gain control
- Glossary of DSP terms
- IIR filters
- Matched filters & pulse shaping
- Mixing & downconversion
- Real-time processing & buffering
- Sampling & quantization
- SNR, EVM & BER
- Spectrograms & the STFT
- Testing & debugging DSP
- The analytic signal & Hilbert transform
- Decibels & dynamic range
- The eye diagram
- The FFT in practice
- The Fourier transform
- What is a signal?
- What is DSP?
- Windows & spectral leakage
Learn deployment — from your machine to production
- Learn deployment — from your machine to production
- Alerting & on-call
- Backups & persistent data
- Build artifacts & versioning
- CI/CD pipelines
- Optimizing container images
- Container networking & volumes
- Container orchestration
- Container security
- Cost & resource management
- Deploying GopherTrunk end to end
- Deploying to the cloud & VPS
- Multi-container apps with Compose
- Environments & configuration
- Glossary of deployment terms
- Images & registries
- Incident response & runbooks
- Infrastructure as code
- Logging & health checks
- Monitoring & updates
- Observability — metrics, logs & traces
- Production hardening
- Release strategies
- Reverse proxies & TLS
- Scaling & load balancing
- Secrets & configuration management
- Services & systemd
- The deployment lifecycle
- What is a container?
- What is deployment?
- Writing a Dockerfile
- Zero-downtime deploys
Databases & Data — where your application’s data lives, from a first table to production
- Databases & Data — where your application's data lives, from a first table to production
- Aggregation & GROUP BY
- Backups & recovery
- Caching layers
- Choosing a database
- Connecting from your program
- Connection pools
- Constraints & data integrity
- Data, state & persistence
- Data in GopherTrunk
- Data modeling for a real app
- Talking to a database from Go
- Filtering, sorting & limiting
- Glossary of database terms
- Indexes & how queries get fast
- Inserting, updating & deleting
- Joining tables
- Key-value & document stores
- Keys & relationships
- Schema migrations & evolving a database
- Normalization & avoiding duplication
- ORMs vs. raw SQL
- Performance tuning & monitoring
- Querying with SELECT
- Replication, sharding & scaling
- Schemas, columns & data types
- SQL injection & querying safely
- SQL vs. NoSQL
- The relational model — tables, rows & columns
- Time-series & analytical stores
- Transactions & ACID
- Vector databases & similarity search
- What a database is (and why not just files)
- What SQL is
Web Development — how a website becomes a web app, from the browser to production
- Web Development — how a website becomes a web app, from the browser to production
- Accessibility basics
- Anatomy of a modern web app
- Authentication & sessions
- The back end & its database
- Build tools & bundlers
- Building a REST API
- Caching & CDNs
- Choosing your web stack
- The client-server web
- Components & state
- Cookies, tokens & JWTs
- CSS — styling & layout
- Deploying a web app
- Fetching data from the front end
- Forms & user input
- Front-end frameworks
- Glossary of web-development terms
- The GopherTrunk web dashboard
- How the browser works
- HTML — structure & semantics
- HTTP servers & routing
- JavaScript in the browser
- Monitoring & analytics
- Performance & Core Web Vitals
- Responsive design
- SSR vs. SPA vs. static
- Static vs. dynamic sites
- Templating & static site generators
- The DOM — manipulating the page
- Web security essentials
- WebSockets & real-time updates
- What a back end does
- What web development is
Scanning & Monitoring — the practical craft of listening to the radio spectrum
- Scanning & Monitoring — the practical craft of listening to the radio spectrum
- A worked end-to-end monitoring setup
- Alerting on the calls you care about
- Antennas for scanning
- Audio feeds & streaming
- Band plans & where services live
- Building an always-on monitoring post
- Choosing a scanner or SDR
- The community & contributing data
- Conventional vs. trunked, in the field
- Feedlines, connectors & grounding
- Following a call across the system
- Building your frequency records
- Glossary of scanning terms
- GopherTrunk as a scanner
- A short history of scanners
- Identifying an unknown signal
- Logging & recording calls
- Metadata, tagging & searchability
- Multisite, simulcast & roaming
- Programming a trunked system
- RadioReference & system databases
- Reducing noise & interference
- Hardware scanners vs. SDR
- Legal & ethical scanning
- Scanning with SDR software
- Search, scan & discovery
- Setting up your station
- Talkgroups, scan lists & priorities
- What radio scanning is
- What you can (and can't) hear today
- When decoding fails
- Where to go next
Field Guide
Long-form reference articles. See the Field Guide overview.
- 1 dB compression point (P1dB)
- 3GPP (3rd Generation Partnership Project)
- 4FSK
- 5G NR (New Radio)
- 6LoWPAN
- 8PSK
- ACARS
- ACELP
- ACELP LSP codebooks
- ACELP Post_Process
- ACELP adaptive & algebraic codebooks
- ACELP gain quantization
- ADALM-Pluto (PlutoSDR)
- ADS-B
- ADS-B antenna (1090 MHz)
- ADS-C
- AFSK
- AI accelerator
- AMBE
- AMBE+2
- AMBE+2 codebooks
- AMBE+2 on-air FEC
- AMBE+2 tones
- AMBE-3003 packet
- AMD
- AMR / AMR-WB
- ANT+
- APCO International
- API
- APRS
- APRS Mic-E
- ARIB (Association of Radio Industries and Businesses)
- ARM Cortex-M
- ARM architecture
- ARRL (American Radio Relay League)
- ATSC 1.0
- ATSC 3.0 (NextGen TV)
- AVR / ATmega
- AX.25
- Abstraction
- Access-code correlation
- Adaptive filter
- Advanced Audio Coding (AAC)
- Advanced Encryption Standard (AES)
- Affiliation
- Airspy
- Airspy HF+
- Airspy HF+ Discovery
- Airspy Mini
- Airspy R2
- Alan Turing
- Alexander Popov
- Algebraic attack
- Aliasing
- All-in-one computer
- Amplitude
- Amplitude and phase-shift keying (APSK)
- Amplitude modulation (AM)
- Amplitude-shift keying (ASK)
- Analog-to-digital converter (ADC)
- Andrew Viterbi
- Android
- Antenna
- Antenna diversity
- Antenna efficiency
- Antenna gain
- Antenna grounding kit
- Antenna mast
- Antenna mounting hardware
- Antenna tripod mount
- Antenna tuner (ATU)
- Application-specific integrated circuit (ASIC)
- Arduino
- Arduino (company)
- Arm Holdings
- Asynchronous programming
- Atmospheric absorption
- Attenuation
- Attenuator
- Audio output (PortAudio/ALSA)
- Automatic Identification System (AIS)
- Automatic frequency control (AFC)
- Automatic gain control (AGC)
- Automatic modulation classification (AMC)
- BCH code
- BCJR algorithm
- BIOS & UEFI
- BNC connector
- BPSK
- BPTC
- Back-pressure
- Balun
- Banana Pi
- Bandpass sampling (undersampling)
- Bandwidth
- Bare-metal programming
- Bare-metal server
- Barker code
- Base scanner antenna
- Base station (eNodeB / gNodeB)
- Baseband
- Battery technology
- BeagleBone
- Beamforming
- Beamwidth
- Behavioral patterns
- BeiDou (BDS)
- Benchmarking DSP
- Berlekamp–Massey algorithm (BM)
- Bias tee
- Biconical antenna
- Binary-coded decimal (BCD)
- Bit error rate (BER)
- Bit rate vs baud
- Bits & bytes
- Blade server
- BladeRF
- Block cipher
- Block scheduler
- Blocking dynamic range (BDR)
- Bluetooth
- Bluetooth (RF layer)
- Bluetooth Low Energy (BLE)
- Bluetooth SIG
- Bootloader
- Broadcast AM
- Broadcast FM
- Broadcom
- Brute-force attack (exhaustive key search)
- Build systems
- Build vs buy a PC
- Busy/idle status
- Bytecode
- C
- C#
- C++
- C4FM
- CCITT
- CDMA2000 (3G)
- CFAR detection
- CI/CD
- CIC filter
- CMA equalizer
- COBOL
- CORDIC
- COSPAS-SARSAT
- CQPSK
- CRC-16/CCITT
- CSBK
- CTCSS
- CUDA
- Cache memory
- Callback vs stream API
- Capacity Plus
- Carrier wave
- Carrier-to-noise ratio (C/N)
- Cavity filter
- Cellular modem
- Central processing unit (CPU)
- Channel grant
- Channelizer
- Chien search
- Chimney mount kit
- Chipset
- Chosen-plaintext attack
- Chromebook
- Cipher
- Ciphertext-only attack
- Circulator
- Claude Shannon
- Clean code
- Clock recovery
- Clock speed
- Cloud computing
- Coax feedline
- Coax lightning arrestor
- Coax pigtail
- Coaxial cable
- Code coverage
- Code-division multiple access (CDMA)
- Code-excited linear prediction (CELP)
- Codec 2
- Collinear antenna
- Colocation
- Color code (DMR)
- Compact position reporting (CPR)
- Compiler
- Compute Module
- Computer case
- Computer hardware
- Computer monitor
- Concurrency vs parallelism
- Connect Plus
- Connectivity Standards Alliance (CSA)
- Constellation diagram
- Constraint propagation
- Container
- Content delivery network (CDN)
- Contestia
- Continuous wave (CW)
- Continuous-phase modulation (CPM)
- Control channel
- Controller-Pilot Data Link Communications (CPDLC)
- Conventional radio
- Convolutional code
- Cooling & thermals
- Costas loop
- Coupling & cohesion
- Creational patterns
- Crest Factor & PAPR
- Cross-compilation
- Cryptanalysis
- Cryptographic hash function
- Cryptographic key
- Cryptography
- Crystal filter
- CubicSDR
- Cyclic redundancy check (CRC)
- D-STAR
- D-STAR header FEC
- DARPA (Defense Advanced Research Projects Agency)
- DC offset (DC spike)
- DCS
- DDS synthesizer (direct digital synthesis)
- DMR Association
- DMR CACH
- DMR CSBK CRC
- DMR CSBK payloads
- DMR EMB
- DMR Full Link Control
- DMR Multi-Block Control
- DMR RS(12,9)
- DMR Reverse Channel
- DMR Tier I
- DMR Tier II
- DMR Tier III
- DMR band plan
- DMR burst
- DMR embedded LC
- DMR encryption
- DMR slot type
- DMR sync patterns
- DMR vendor FID
- DMR voice superframe
- DRY, KISS & YAGNI
- DSC message format
- DSD (Digital Speech Decoder)
- DSP latency
- DTMF
- DVB-C / DVB-C2
- DVB-S / DVB-S2
- DVB-T / DVB-T2
- Data Encryption Standard (DES)
- Data center
- Decibel (dB)
- Decimation
- Decision-feedback equalizer (DFE)
- Declarative programming
- Dedicated server
- Deframing
- Demodulation
- Dennis Gabor
- Desensitization (desense)
- Design patterns
- Desktop computer
- Dibit
- Differential cryptanalysis
- Differential decoding
- Digital Audio Broadcasting (DAB / DAB+)
- Digital Mobile Radio (DMR)
- Digital Radio Mondiale (DRM)
- Digital Selective Calling (DSC)
- Digital Voice Systems (DVSI)
- Digital down-converter (DDC)
- Digital filter
- Digital-to-analog converter (DAC)
- Diplexer
- Dipole antenna
- Dire Wolf
- Direct mode operation (DMO)
- Direct sampling (direct RF sampling)
- Direct-conversion receiver (homodyne / zero-IF)
- Direct-sequence spread spectrum (DSSS)
- Directional coupler
- Discone antenna
- Discontinuous reception (DRX)
- Discrete Fourier transform (DFT)
- Distance Measuring Equipment (DME)
- Dither
- Docker
- Doppler shift
- Double sideband (DSB)
- Dummy load
- Duplexer
- Duty Cycle
- Dynamic range
- E-reader
- E4000 tuner
- EDACS
- EDACS Control Channel Word
- EDGE (2.75G)
- EPIRB (406 MHz)
- ERP & EIRP
- ESP32
- ESPRIT algorithm
- ETSI
- EUROCAE
- EV-DO (3G data)
- EVRC
- Early-late gate timing recovery
- Eave / J-mount bracket
- Eb/N0 (energy per bit to noise density)
- Eben Upton
- Edge AI
- Edge computing
- Edwin Armstrong
- Effective aperture
- Effective number of bits (ENOB)
- Electromagnetic spectrum
- Embedded SDR
- Embedded system
- Emergency call
- Encryption
- End-to-end testing
- Energy detection
- Enhanced Voice Services (EVS)
- Error handling
- Error vector magnitude (EVM)
- Espressif Systems
- Ethernet
- European Conference of Postal and Telecommunications Administrations (CEPT)
- European Radio Message System (ERMES)
- Eye diagram
- FDMA
- FFSK
- FFTW
- FIR filter
- FIS-B
- FLEX
- FLEX protocol coding
- FM broadcast notch filter
- FM deviation
- FORTRAN
- FT4
- FT8
- FUNcube Dongle
- Fade margin
- Failsoft
- Fano algorithm (sequential decoding)
- Fast Fourier transform (FFT)
- Federal Aviation Administration (FAA)
- Federal Communications Commission (FCC)
- Federico Faggin
- Feedpoint impedance
- Feistel network
- Ferrite choke
- Fiber-optic
- Field strength
- Field-programmable gate array (FPGA)
- File source & sink
- File system
- Fire code
- Firmware
- Fixed-point vs floating-point DSP
- Flash memory
- Flowgraph
- Floyd M. Gardner
- Foldable phone
- Forney algorithm
- Forward error correction (FEC)
- Fourier transform
- Frame synchronization
- Free-space path loss (FSPL)
- Frequency
- Frequency Stability
- Frequency analysis
- Frequency bands (HF/VHF/UHF)
- Frequency counter
- Frequency modulation (FM)
- Frequency-division duplex (FDD)
- Frequency-hopping spread spectrum (FHSS)
- Frequency-locked loop (FLL)
- Frequency-shift keying (FSK)
- Frequency-translating FIR filter (xlating FIR)
- Fresnel zone
- Friis transmission equation
- Front-to-back ratio (F/B)
- Functional programming
- G.191 basic operators
- G.711
- G.722
- G.729
- GFSK
- GLONASS
- GMSK
- GNU Radio
- GNU Radio Companion (GRC)
- GOES HRIT
- GPGPU
- GPIO
- GPRS (2.5G)
- GPS receiver
- GPSDO (GPS-disciplined oscillator)
- GPU DSP
- GSM (2G)
- GSM FR / HR / EFR
- GSMA
- Galileo
- Gaming PC
- Garbage collection
- Gardner timing recovery
- Gateway
- Georg Ohm
- Global Navigation Satellite System (GNSS)
- Global Positioning System (GPS)
- Globalstar
- Go
- Goertzel algorithm
- Golay code
- Gold code
- Golden test vectors
- Google Coral
- Gordon Moore
- Goroutines
- Gqrx
- Graphics processing unit (GPU)
- Gray code
- Ground-plane antenna
- Ground-wave propagation
- Group Delay
- Group call
- Guard band
- Guglielmo Marconi
- Gustav Kirchhoff
- Gustave Solomon
- Guy wire kit
- HAT add-on board
- HD Radio (IBOC)
- HFDL
- HSPA (3.5G)
- HackRF One
- Hadamard code (Walsh–Hadamard)
- Half-band filter
- Hamming code
- Handheld scanner antenna
- Handover (cellular)
- Hard disk drive (HDD)
- Hardware acceleration
- Harmonics
- Harry Nyquist
- Hedy Lamarr
- Heinrich Hertz
- Helical antenna
- Helical filter
- Hellschreiber
- Hendrik Lorentz
- Hierarchical block
- High availability
- High-level Data Link Control (HDLC)
- Hilbert transform
- Home automation
- Home server & self-hosting
- Horn antenna
- HydraSDR RFOne
- Hypervisor
- ICAO
- IEEE
- IIR filter
- IMBE
- IMBE channel coding
- IMBE interleaver
- IMBE parameter quantization
- IMBE scrambler
- IMSI & IMEI
- IP address
- IQ data
- IQ file format
- IQ imbalance
- IQ modulation
- IQ recording & playback
- ISDB-T
- ITU Radiocommunication Sector (ITU-R)
- Identification friend or foe (IFF)
- Image frequency
- Image rejection
- Impedance (Z)
- Imperative programming
- In-system programming
- Infrastructure as a service (IaaS)
- Inmarsat
- Input/output (I/O)
- Instruction set architecture (ISA)
- Instrument Landing System (ILS)
- Integrated Digital Enhanced Network (iDEN)
- Integrated circuit
- Integration testing
- Intel
- Interleaved IQ
- Interleaving
- Intermediate frequency (IF)
- Intermodulation Distortion (IMD)
- International Amateur Radio Union (IARU)
- International Electrotechnical Commission (IEC)
- International Maritime Organization (IMO)
- International Mobile Telecommunications (IMT)
- International Telecommunication Union (ITU)
- Internet of Things (IoT)
- Interpreter
- Interrupt
- Intersymbol interference (ISI)
- Ionospheric propagation
- Iridium
- Irving S. Reed
- Irwin Jacobs
- Isolator
- I²C
- J-pole antenna
- JEDEC
- JIT vs AOT compilation
- JS8Call
- JT65
- JT9
- Jack Kilby
- Jagadish Chandra Bose
- James Clerk Maxwell
- Java
- JavaScript
- Jensen Huang
- Joe Taylor (K1JT)
- John P. Costas
- John von Neumann
- Joseph Fourier
- Julia
- KISS TNC
- Kalman filter
- Karl Jansky
- Kerckhoffs's principle
- Key ID & Algorithm ID (KID / ALGID)
- Key Loader (KFD / KVL)
- Keyboard
- Keystream
- Khadas
- Knife-edge diffraction
- Known-plaintext attack
- Kotlin
- KrakenSDR
- Kubernetes
- LAN & WAN
- LISP
- LTE (Long-Term Evolution)
- LTE-Advanced (LTE-A)
- LTE-M (Cat-M1)
- LTR (Logic Trunked Radio)
- LTR word format
- Laptop
- Late entry
- Least mean squares (LMS)
- Libre Computer
- LimeSDR
- Linear predictive coding (LPC)
- Linear-feedback shift register (LFSR)
- Link budget
- Linus Torvalds
- LoRa
- LoRa Alliance
- LoRa diagonal interleaver
- LoRa whitening
- LoRaWAN
- LoRaWAN MIC
- Load balancer
- Local oscillator
- Log-likelihood ratio (LLR)
- Log-periodic antenna (LPDA)
- Logic gate
- Loop antenna
- Low-IF (low intermediate frequency)
- Low-density parity-check (LDPC) code
- Low-noise amplifier (LNA)
- M-ary FSK
- M17
- M17 Link Information
- M17 Project
- MATLAB
- MBE adaptive smoothing
- MBE spectral-amplitude enhancement
- MBE unvoiced synthesis
- MBE voiced synthesis
- MDC-1200
- MDC1200 frame
- MELP / MELPe
- MIMO (multiple-input multiple-output)
- MMSE equalizer
- MPT 1327
- MPT 1327 codeword
- MSi001 tuner
- MUSIC algorithm
- Magnetic loop antenna
- Magnetic tape
- Managed hosting
- Manchester coding
- Marine VHF Radio
- Massimo Banzi
- Matched filter
- Matter
- Maximal-length sequence (m-sequence)
- Maximum-likelihood sequence estimation (MLSE)
- Memory hierarchy
- Memory management
- Meshtastic
- Meteor scatter
- Meteor-M LRPT
- Microcontroller (MCU)
- Mini PC
- Minimum-shift keying (MSK)
- Mixer (RF)
- Mobile app development
- Mobile operating system
- Mobile scanner antenna
- Mocking
- Mode A/C
- Mode S
- Mode-S Beast protocol
- Modem
- Modulation
- Modulation and coding scheme (MCS)
- Modulation error ratio (MER)
- Modulation index
- Monopole antenna
- Moonbounce (EME)
- Moore's law
- Morse Code
- Motherboard
- Motherboard form factor
- Motorola OSW
- Motorola Type II
- Motorola talker-alias cipher
- Mouse
- Mueller–Müller timing recovery
- Multi-band excitation (MBE)
- Multilateration (MLAT)
- Multipath propagation
- Multisite trunking
- Multithreaded DSP
- N-type connector
- NASA (National Aeronautics and Space Administration)
- NAVTEX
- NB-IoT (Narrowband IoT)
- NFC (RF layer)
- NIST (National Institute of Standards and Technology)
- NMEA 0183
- NOAA APT
- NRZI
- NVIDIA
- NVIDIA Jetson
- NVMe
- NXDN
- NXDN CAC
- NXDN FACCH
- NXDN Frame Structure
- NXDN Frame Sync Word
- NXDN LICH
- NXDN SACCH
- NXDN Scrambler
- NanoVNA
- National Radio Systems Committee (NRSC)
- National Telecommunications and Information Administration (NTIA)
- Near field & far field
- Near-field communication (NFC)
- Near-vertical incidence skywave (NVIS)
- Neighbor site
- Network Access Code (NAC)
- Network IQ streaming
- Network interface card (NIC)
- Network switch
- Network-attached storage (NAS)
- Neural processing unit (NPU)
- Nikola Tesla
- Noise blanker
- Noise figure (NF)
- Noise floor
- Noise source
- Noise temperature (Te)
- Nooelec NESDR
- Norbert Wiener
- NumPy & SciPy for DSP
- Numerical precision in DSP
- Numerically controlled oscillator (NCO)
- Nyquist–Shannon sampling theorem
- OCXO (oven-controlled crystal oscillator)
- ODROID
- OFDMA
- OP25
- Obfuscation
- Object-oriented programming
- Occupied bandwidth
- Ofcom
- Oliver Heaviside
- Oliver Lodge
- Olivia MFSK
- On-off keying (OOK)
- One-time pad (OTP)
- Operating system
- Optical disc
- Opus
- Orange Pi
- Orbcomm
- Orthogonal frequency-division multiplexing (OFDM)
- Out-of-tree module (OOT)
- Over-the-Air Rekeying (OTAR)
- Overlap-add & overlap-save
- Overruns & underruns
- Oversampling
- P25 Algorithm ID (ALGID)
- P25 Common Air Interface (P25 CAI)
- P25 DES-XL / ADP encryption
- P25 Encryption Sync (ES)
- P25 Hamming(10,6,3)
- P25 Header Data Unit
- P25 ISCH
- P25 Identifier Update (IDEN_UP)
- P25 Link Control Word
- P25 Logical Data Unit
- P25 MAC PDU
- P25 NID & DUID
- P25 Packet Data Unit (PDU)
- P25 Phase 1
- P25 Phase 2
- P25 Phase 2 H-DQPSK
- P25 Phase 2 MAC interleaver
- P25 Phase 2 superframe
- P25 Phase 2 sync word
- P25 Reed-Solomon codes
- P25 SACCH & FACCH
- P25 TSBK interleaver
- P25 TSBK opcodes
- P25 TSBK vendor opcodes
- P25 Terminator Data Unit
- P25 encryption keystream generators
- P25 frame sync word
- P25 status symbols
- P25 talker alias (Motorola)
- P25 trellis code
- P25 vendor MAC opcodes
- PCI Express (PCIe)
- PHP
- PIC microcontroller
- PINE64
- PN44 scrambler
- POCSAG
- POCSAG codeword
- PPM frequency correction
- PSK31
- Package manager & dependency management
- Packet framing
- Packet radio
- Pactor
- Parabolic (dish) antenna
- Patch & multigroup
- Patch (microstrip) antenna
- Path loss
- Peripheral
- Personal computer
- Phase
- Phase Noise
- Phase-locked loop (PLL)
- Phase-shift keying (PSK)
- Phased-array antenna
- Phil Karn
- Platform as a service (PaaS)
- Polar code
- Polarization
- Police scanner
- Polyphase filter bank (PFB)
- Pothos
- Power amplifier (PA)
- Power over Ethernet (PoE)
- Power spectral density (PSD)
- Power supply unit (PSU)
- Pre-emphasis & de-emphasis
- Preamble correlation
- Preamplifier (preamp)
- Printer
- Priority scan
- Private call
- ProVoice
- Project 25 (P25)
- Public-key cryptography
- Pulse shaping
- Pulse-amplitude modulation (PAM)
- Pulse-code modulation (PCM)
- Pulse-position modulation (PPM)
- Pulse-width modulation (PWM)
- Puncturing
- Python
- Q Factor (Quality Factor)
- QPSK
- Quadrature amplitude modulation (QAM)
- Quadrature demodulation
- Qualcomm
- Quantization
- R
- R820T / R820T2 tuner
- RAID
- RALCWI
- RC4 (ARC4) cipher
- REDHAWK SDR
- REST
- RF Subsystem (RFSS)
- RF filter
- RF machine learning (RFML)
- RF power meter
- RF switch
- RFID (RF layer)
- RISC-V
- RP2040
- RTCA
- RTL-SDR
- RTL2832U
- RTTY
- Rack server
- Radials & counterpoise
- Radiation pattern
- Radio Access Number (RAN)
- Radio Data System (RDS / RBDS)
- Radio ID
- Radio Society of Great Britain (RSGB)
- Radio horizon
- Radio propagation
- Radio wave
- RadioReference
- Radxa
- Rain fade
- Ralph Hartley
- Random-access memory (RAM)
- Raspberry Pi
- Raspberry Pi Foundation
- Raspberry Pi Pico
- Rayleigh fading
- Read-only memory (ROM)
- Real-time DSP
- Real-time operating system (RTOS)
- Receiver chain
- Receiver sensitivity (MDS)
- Recursive least squares (RLS)
- Reed–Muller code
- Reed–Solomon code
- Refactoring
- Reflection Coefficient (Γ)
- Refraction
- Reginald Fessenden
- Registration
- Remote keyless entry (RKE)
- Resampler
- Resonance
- Rest channel
- Return Loss
- Reverse proxy
- Richard Hamming
- Rician fading
- Ring buffer
- Roaming
- Robert Gallager
- Robert Noyce
- Robert Watson-Watt
- Rock Pi (Radxa)
- Roll-off factor
- Rolling code (hopping code)
- Root-raised-cosine filter (RRC)
- Router
- Ruby
- Rudolf Kalman
- Rust
- S-box (substitution box)
- S-parameters (Scattering Parameters)
- SAT/SMT solving
- SAW filter
- SBC cluster
- SD card
- SDR# (SDRSharp)
- SDRangel
- SDRplay RSP1A
- SDRplay RSP1B
- SDRplay RSPduo
- SDRplay RSPdx
- SILK
- SIMD vectorization
- SINAD (signal-to-noise-and-distortion)
- SITOR
- SMA adapter kit
- SMA connector
- SOLAS
- SOLID
- SPI
- STM32
- Sample buffer
- Sample format (CS8/CS16/CF32)
- Sample rate
- Scalability
- Scattering
- Scrambling (whitening)
- Semantic versioning
- Semiconductor
- Sensor
- Server
- Serverless computing
- Shannon capacity
- Shortwave broadcasting
- SigMF (Signal Metadata Format)
- Sigfox
- Signal classification
- Signal generator
- Signal-processing block
- Signal-to-noise ratio (SNR)
- Simulation-driven SDR development
- Simulcast
- Single sideband (SSB)
- Single-board computer (SBC)
- Single-frequency network (SFN)
- Sky-wave propagation
- Slow-Scan Television (SSTV)
- SmartNet / SmartZone
- Smartphone
- Smartwatch
- SoC vs discrete
- SoapyRemote
- SoapySDR
- Soft-decision demodulation
- Software as a service (SaaS)
- Software-defined radio (SDR)
- Software-defined receiver (SDR receiver)
- Solid-state drive (SSD)
- Sophie Wilson
- Spectral efficiency
- Spectrogram
- Spectrum analyzer
- Speex
- Splitter / combiner
- Sporadic E (Es)
- Spurious Emissions
- Spurious-free dynamic range (SFDR)
- SpyServer protocol
- Squelch
- Standing wave ratio (SWR)
- Starlink
- Static binary
- Static vs dynamic typing
- Steve Wozniak
- Storage (SSD, HDD, flash)
- Stream cipher
- Stream tags
- Stream vs message passing
- Structural patterns
- Subcarrier
- Substitution-permutation network (SPN)
- Superheterodyne receiver
- Swift
- Symbol rate (baud)
- Symmetric-key cryptography
- System Fusion (YSF)
- System ID
- System bus
- System on a chip (SoC)
- TCAS
- TCXO (temperature-compensated crystal oscillator)
- TDMA
- TETRA
- TETRA AACH
- TETRA CMCE & MLE PDUs
- TETRA DMO
- TETRA LLC
- TETRA MAC PDU
- TETRA RCPC code
- TETRA RM(30,14)
- TETRA TCH/S speech coding
- TETRA TEA ciphers (TEA1–TEA7)
- TETRA block interleaver
- TETRA burst formats
- TETRA extended colour code
- TETRA logical channels
- TETRA receiver chain
- TETRA scrambler
- TETRA traffic slot mapping
- TETRA training sequences
- TETRAPOL
- TIS-B
- TPMS (Tire Pressure Monitoring)
- TSBK
- TSMC
- TWELP
- Tablet
- Tactical Air Navigation (TACAN)
- Talkgroup
- Teensy
- Telecommunications Industry Association (TIA)
- Tensor processing unit (TPU)
- Test-driven development (TDD)
- Testing DSP without hardware
- The hardware spectrum
- Thermal noise (Johnson–Nyquist noise)
- Thin client
- Third-order intercept (IP3)
- Thread
- Threads
- Throttle
- Thunderbolt
- Time-division duplex (TDD)
- TinySA
- Touchscreen
- Transistor
- Transmit chain
- Transverter
- Trellis-coded modulation (TCM)
- Tropospheric ducting
- Trunked radio
- Trunking scanner
- Trunking site
- Tucson Amateur Packet Radio (TAPR)
- Turbo code
- Type system
- TypeScript
- UART
- UAT (978 MHz)
- UHD (USRP Hardware Driver)
- UHF connector (PL-259)
- UMTS / W-CDMA (3G)
- USB
- USB extension cable
- USRP (Ettus Research)
- USRP B210 (and AD9361 clones)
- Uniden BC125AT
- Uniden BC75XLT
- Uniden BCD325P2
- Uniden BCD436HP
- Uniden BCD536HP
- Uniden BCD996P2
- Uniden BCD996XT
- Uniden BearTracker BCT15X
- Uniden HomePatrol-2
- Uniden SDS100
- Uniden SDS150
- Uniden SDS200
- Uniden SR30C
- Unit testing
- Unun
- Upconverter
- VARA
- VDL Mode 2
- VHF Omnidirectional Range (VOR)
- VITA 49 (VRT)
- VOLK
- Vector network analyzer (VNA)
- Vector processor
- Version control
- Vestigial sideband (VSB)
- Virtual private server (VPS)
- Virtualization
- Viterbi algorithm
- VoLTE (Voice over LTE)
- Vocoder
- Voice channel
- Volatile vs non-volatile memory
- Von Neumann architecture
- WAV IQ recording
- WSPR
- Watchdog timer
- Waterfall display
- Waterfall rendering
- Wavelength
- Wearable computer
- Web & shared hosting
- Web SDR (OpenWebRX / KiwiSDR)
- Webcam
- Welch's method
- Whip antenna
- Whistler TRX-1
- Whistler TRX-2
- Whistler WS1040
- Whistler WS1065
- Whistler WS1088
- Wi-Fi
- Wi-Fi (802.11)
- Wi-Fi Alliance
- Wide Area Communications Network (WACN)
- Window function
- Winlink
- Wireless M-Bus (wM-Bus)
- Wireless access point
- Workstation
- World Radiocommunication Conference (WRC)
- YSF FICH
- Yagi-Uda antenna (Yagi)
- Z-Wave
- Zadig
- Zero-IF (zero intermediate frequency)
- Zero-copy
- Zero-crossing detection
- Zero-forcing equalizer
- ZeroMQ for SDR
- Zigbee / 802.15.4
- cfile format
- csdr
- dBFS
- dBm
- dPMR
- dPMR CSBK
- dPMR Channel Coding
- dPMR Frame Sync
- dump1090
- eMMC
- eSIM
- gr-osmosdr
- iOS
- libairspy
- libbladeRF
- libhackrf
- libiio
- librtlsdr
- liquid-dsp
- multimon-ng
- 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
- Crypto Lab: breaking radio encryption, ethically
- The Operator's Cockpit: driving GopherTrunk from browser and terminal
- Protocol Decoders: control channels, state machines & the alias hunt
- Recording, Composition & Streaming: turning decoded calls into files, feeds & uploads
- RF Front End: driving RTL-SDR, Airspy & HackRF in pure Go
- RF Scope: Wireshark for the airwaves
- Running It For Real: deploying and hardening a 24/7 SDR service
- SDR Internals: building a software-defined radio in pure Go
- Signal Lab: from first capture to lab-grade VSA
- The Hunt: discovering trunked systems you didn't know were there
- Trunking Engine: from control-channel grant to recorded call
- Voice Coding: turning digital voice frames into audio, in pure Go
- The Hunt, Part 10: Offline vs Live Surveys — Hunting a Recording (2026-08-13)
- Running It For Real, Part 10: Broadcast Backends II — RdioScanner, OpenMHz, Icecast (2026-08-13)
- Recording, Composition & Streaming, Part 13: Outbound Streaming — The Broadcast Manager (2026-08-13)
- The Operator's Cockpit, Part 10: Write Mode — Mutating Config Safely (2026-08-13)
- The Hunt, Part 9: Wideband Multi-Site P25 — Watching Many Channels at Once (2026-08-12)
- Running It For Real, Part 9: Broadcast Backends I — Broadcastify (2026-08-12)
- Recording, Composition & Streaming, Part 12: Live Listening — The Local Audio Path (2026-08-12)
- The Operator's Cockpit, Part 9: The Map — Plotting Sites & Emitters (2026-08-12)
- The Hunt, Part 8: DMR LCN Correlation — Rebuilding a Channel Map (2026-08-11)
- Running It For Real, Part 8: The Opt-In Feature Matrix (2026-08-11)
- Recording, Composition & Streaming, Part 11: Retention & Housekeeping (2026-08-11)
- The Operator's Cockpit, Part 8: Constellation, Eye Diagram & Symbol Scope (2026-08-11)
- The Hunt, Part 7: Locking a P25 System — Candidate to Confirmed (2026-08-10)
- Running It For Real, Part 7: SDR Doctor & Preflight (2026-08-10)
- Recording, Composition & Streaming, Part 10: The Call Log — SQLite Persistence & Never-Downgrade Updates (2026-08-10)
- The Operator's Cockpit, Part 7: Live Spectrum & Waterfall in the Browser (2026-08-10)
- The Hunt, Part 6: Control-Channel Hunting — The Supervisor (2026-08-09)
- Running It For Real, Part 6: The Diagnostics Reporter (2026-08-09)
- Recording, Composition & Streaming, Part 9: CallComplete — The Seam to Everything Downstream (2026-08-09)
- The Operator's Cockpit, Part 6: Client-Side Resampling (2026-08-09)
- The Hunt, Part 5: Autogain & Autotune — Settling the Front End (2026-08-08)
- Running It For Real, Part 5: Structured Logs — Event, Message & Power (2026-08-08)
- Recording, Composition & Streaming, Part 8: Loudness at the Output Stage (2026-08-08)
- The Operator's Cockpit, Part 5: The Live Audio Cockpit (2026-08-08)
- The Hunt, Part 4: Classifying a Signal — Analog, Digital, Encrypted (2026-08-07)
- Running It For Real, Part 4: Metrics That Matter — Prometheus & SDR Tiles (2026-08-07)
- Recording, Composition & Streaming, Part 7: Correctness Guards — Cross-Call Fencing, Encryption Skip & Runtime Toggles (2026-08-07)
- The Operator's Cockpit, Part 4: The Event Stream — SSE to React (2026-08-07)
- The Hunt, Part 3: Peaks & Occupancy — Finding Carriers in the Noise (2026-08-06)
- Running It For Real, Part 3: TLS & Sitting Behind a Reverse Proxy (2026-08-06)
- Recording, Composition & Streaming, Part 6: Segmentation, Naming & Raw Sidecars (2026-08-06)
- The Operator's Cockpit, Part 3: The Connect Screen & Auth Handshake (2026-08-06)
- The Hunt, Part 2: The Wideband Sweep Engine (2026-08-05)
- Running It For Real, Part 2: Auth Posture — Closed-LAN, Auto, Required (2026-08-05)
- Recording, Composition & Streaming, Part 5: WAV on Disk — Crash-Safety, the Tolerant Reader & Clean Cuts (2026-08-05)
- The Operator's Cockpit, Part 2: A React SPA Inside a Go Binary (2026-08-05)
- The Hunt, Part 1: What Discovery Means — From a Blank Band to a Known System (2026-08-04)
- Running It For Real, Part 1: From a Laptop Demo to a 24/7 Service (2026-08-04)
- Recording, Composition & Streaming, Part 4: The Recording Session (2026-08-04)
- The Operator's Cockpit, Part 1: One Engine, Many Front-Ends (2026-08-04)
- Recording, Composition & Streaming, Part 3: Assembling a Call (2026-08-03)
- Recording, Composition & Streaming, Part 2: The Composition Contract (2026-08-02)
- Recording, Composition & Streaming, Part 1: The Output Half (2026-08-01)
- Voice Coding, Part 12: Calibrating & Testing Vocoders Against References (2026-07-31)
- Trunking Engine, Part 12: Control-Channel Hunting, the Call Watchdog & Testing With a Fake Bus (2026-07-31)
- Protocol Decoders, Part 12: Testing Decoders Without Radios (2026-07-31)
- Voice Coding, Part 11: Recording & Encoding — WAV, MP3, Tone-Out & Hardware (2026-07-30)
- Trunking Engine, Part 11: Encrypted-Mode Handling — Follow, Metadata, or Ignore (2026-07-30)
- Protocol Decoders, Part 11: The Alias Hunt II — The Keystream, Dead Ends & Ethics (2026-07-30)
- Voice Coding, Part 10: Enhancement & Loudness — Making It Sound Right (2026-07-29)
- Trunking Engine, Part 10: Sites, Topology & Multi-Site Roaming (2026-07-29)
- Protocol Decoders, Part 10: The Alias Hunt I — Framing the Unsolved Cipher (2026-07-29)
- Voice Coding, Part 9: The Composer — Wiring Frames to the Right Vocoder (2026-07-28)
- Trunking Engine, Part 9: Patches, Supergroups & Physical-Channel RID Recovery (2026-07-28)
- Protocol Decoders, Part 9: Conventional, Wideband & the Symbol Scope (2026-07-28)
- Voice Coding, Part 8: AMBE+2 FEC & the Knox Path (2026-07-27)
- Trunking Engine, Part 8: Affiliation Tracking — Building the Roster From the Event Stream (2026-07-27)
- Protocol Decoders, Part 8: The Legacy Family — EDACS, LTR & MPT-1327 (2026-07-27)
- Voice Coding, Part 7: AMBE+2 — One Decoder, Two Rates (2026-07-26)
- Trunking Engine, Part 7: Recovering the Source Radio ID (Issue #915) (2026-07-26)
- Protocol Decoders, Part 7: TETRA — π/4-DQPSK, Channel Coding & the Sub-Target-Rate Fix (2026-07-26)
- Voice Coding, Part 6: The Call-Startup Acquisition Squelch (2026-07-25)
- Trunking Engine, Part 6: Talkgroups, Aliases & Scan Modes (2026-07-25)
- Protocol Decoders, Part 6: NXDN & dPMR — The Narrowband FDMA Family (2026-07-25)
- Voice Coding, Part 5: IMBE FEC & De-Interleave — Recovering the Bit Soup (2026-07-24)
- Trunking Engine, Part 5: Priority & Preemption When Calls Outnumber Radios (2026-07-24)
- Protocol Decoders, Part 5: DMR Tier 2/3 — Bursts, EMB & FLC (2026-07-24)
- Voice Coding, Part 4: IMBE — Decoding P25 Phase 1 Voice (2026-07-23)
- Trunking Engine, Part 4: The Voice Pool — Allocating Scarce Radios (2026-07-23)
- Protocol Decoders, Part 4: P25 Phase 2 TDMA — The MAC Layer (2026-07-23)
- Voice Coding, Part 3: MBE Synthesis — Voiced Sinusoids + Unvoiced Noise (2026-07-22)
- Trunking Engine, Part 3: Grants — The Engine's Only Input (2026-07-22)
- Protocol Decoders, Part 3: P25 Phase 1 TSBKs & Link Control (2026-07-22)
- Voice Coding, Part 2: The MBE Model — Pitch, Voicing & Spectral Envelope (2026-07-21)
- Trunking Engine, Part 2: The Event Bus — Typed Pub/Sub That Decouples Everything (2026-07-21)
- Protocol Decoders, Part 2: P25 Phase 1 — NID, Sync & the FEC That Gates Lock (2026-07-21)
- Voice Coding, Part 1: What a Vocoder Is & the Pluggable Registry (2026-07-20)
- Trunking Engine, Part 1: From Grant to Recorded Call (2026-07-20)
- Protocol Decoders, Part 1: Anatomy of a Control-Channel Decoder (2026-07-20)
- Signal Lab, Part 10: The Demod Bench — siglab sweep, Regression & Export (2026-07-15)
- RF Scope, Part 10: Advanced — Tuning Segmentation, Selective Analyzers & Pipelines (2026-07-15)
- Crypto Lab, Part 10: The Subject Framework, alias & the Mercury Reveal (2026-07-15)
- Signal Lab, Part 9: Dissecting P25 — TSBK PDUs, Receiver States & the Sync Landscape (2026-07-14)
- RF Scope, Part 9: The Scene Cockpit — Live TUI & Web Console (2026-07-14)
- Crypto Lab, Part 9: The Web Console, Live-Capture Bridge & External Ciphers (2026-07-14)
- Signal Lab, Part 8: Naming the Unknown — Blind Signal-ID & the Wideband Survey (2026-07-13)
- RF Scope, Part 8: Expert Info — Anomalies & What They Mean (2026-07-13)
- Crypto Lab, Part 8: Analog Voice Descrambling — Inversion, Split-Band, Rolling Code (2026-07-13)
- Signal Lab, Part 7: VSA — Lab-Grade Modulation Quality (2026-07-10)
- RF Scope, Part 7: Entropy & Encryption Triage — The Crypto Lab Bridge (2026-07-10)
- Crypto Lab, Part 7: CRC Recovery & the Recipe Pipeline (2026-07-10)
- Signal Lab, Part 6: Synthesize — Building Ideal & Impaired References (2026-07-09)
- RF Scope, Part 6: Topology — Emitters, Frequency Hoppers & Conversations (2026-07-09)
- Crypto Lab, Part 6: The assess Battery — Attacking P25/DMR/TETRA (2026-07-09)
- Signal Lab, Part 5: PSD, Spectrogram & Spectral Occupancy (2026-07-08)
- RF Scope, Part 5: Timing & Periodicity — Recovering the TDMA Frame (2026-07-08)
- Crypto Lab, Part 5: Keystream Reuse — Many-Time-Pad & Crib-Dragging (2026-07-08)
- Signal Lab, Part 4: Constellations & Eye Diagrams — Seeing Modulation Quality (2026-07-07)
- RF Scope, Part 4: The I/O Graph — Per-Channel Activity Over Time (2026-07-07)
- Crypto Lab, Part 4: Classical Ciphers — Brute XOR, Caesar, Vigenère, Substitution (2026-07-07)
- Signal Lab, Part 3: The Browser Console — siglab serve and Live Decode (2026-07-06)
- RF Scope, Part 3: Protocol Hierarchy — What's on the Air (2026-07-06)
- Crypto Lab, Part 3: Randomness — NIST SP 800-22 & the LFSR Signature (2026-07-06)
- Signal Lab, Part 2: Reading the Dashboard — Symbols, Baud, Lock & the 2% Rule (2026-07-03)
- RF Scope, Part 2: From IQ to Bursts — The Segmentation Pre-Pass (2026-07-03)
- Crypto Lab, Part 2: First Triage — classify auto and stats scan (2026-07-03)
- Signal Lab, Part 1: Your First Capture — No Radio Required (2026-07-02)
- RF Scope, Part 1: Wireshark for the RF Physical Layer (2026-07-02)
- Crypto Lab, Part 1: Breaking It Is the Test (2026-07-02)
- RF Front End, Part 14: Diagnostics, Metrics & the Pure-Go Payoff (2026-07-01)
- Build in the Open, Part 14: The CLI Workflow & Claude Code as Your Daily Driver (2026-07-01)
- RF Front End, Part 13: Testing Radios Without Radios (2026-06-30)
- Build in the Open, Part 13: Advanced Git & GitHub Features (2026-06-30)
- 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)