⟨ quikchaos ⟩
currently focused on NOAA Weather, WWV time signals, ACARS aviation messaging, ADS-B aircraft tracking, AIS marine vessel tracking, and NOAA APT satellite imagery via basic RTL-SDR dongles.
Disclaimer: All software on this site is provided for personal, educational, and non-commercial research use only. These are hobbyist projects - not certified, validated, or approved for any safety-critical, emergency communications, or operational aviation purpose. See Terms of Use.
ABOUT
I'm quik - network engineer, video gamer, science junkie and tool builder (dh81 on GitLab). I've been around the internet since the late 90s under the handle quikchaos (previously QuiK_ChaoS), mostly lurking in gaming communities, Gentoo forums, photography, and graphic design before shifting back into networking, infrastructure, and system programming.
These days I am learning to develop open-source tools - currently in Rust, but not married to any one language. The SDR projects below are the main focus right now; secure voice network engineering and cybersecurity tooling are next. As of Feb 9th 2026, this work is AI-assisted via Claude Opus as a pair-programming partner - from architecture through implementation and testing (vast disclaimers and thorough changelogs).
I also contribute to QX9, a research group exploring decentralized systems and applied signal intelligence geared toward reliable public safety communications (see Other Projects below).
PROJECTS
Rust implementation of NRSC-5 HD Radio decoding. A port of theori-io/nrsc5 from C to Rust. Stock HD Radio decoder - the core OFDM pipeline used by dh81-sdr-rs for HD Radio mode. CLI matches the original C nrsc5 interface.
Full OFDM demodulation pipeline: acquisition, synchronization, Viterbi FEC, Reed-Solomon coding, and frame assembly. Pure Rust HDC audio decoder (HE-AAC v2: AAC-LC + SBR + Parametric Stereo) with no faad2 or external C dependencies. Hybrid mode blends HD and FM audio using a time-aligned 7-second delay buffer with cross-correlation for automatic fallback. Supports RTL-SDR hardware, RTL-TCP remote servers, IQ file replay, bias tee, direct sampling, and FFT-based auto gain scan.
Link to project: gitlab.com/dh81-labs/nrsc5-rs
Multi-mode SDR receiver split from nrsc5-rs. Provides all non-HD-Radio signal modes plus the radio controller used by quiktool. Depends on nrsc5-rs for the HD Radio pipeline, noaa-wx-rs for SAME/EAS and APT, and rtl-sdr-rs for hardware access.
Signal modes: analog FM (stereo + RDS), analog AM, NBFM, ADS-B 1090 MHz aircraft tracking, AIS marine vessel tracking (161.975/162.025 MHz), ACARS aviation messaging (129-136 MHz VHF), NOAA APT satellite weather imagery, HD Radio (via nrsc5-rs), and NWR/SAME (via noaa-wx-rs). RDS decoding extracts PI, PTY, station name, RadioText, and clock/time from the 57 kHz subcarrier. Includes signal generator, signal monitor, gain scanner, RTL-TCP client, and async USB support. Radio controller with command/event pattern for TUI integration.
Link to project: gitlab.com/dh81-labs/dh81-sdr-rs
TUI dashboard for radio, weather, astronomy, and gaming - built with ratatui + crossterm. Cross-platform (Windows, Linux, macOS). Integrates dh81-sdr-rs and wwv-rs as library dependencies with cpal for real-time audio output. All runtime dependencies are Rust crates - no external binaries required. This is a personal science project and subject to change at the author's whim.
Left sidebar (always visible): local time (PST/PDT) + UTC, DST countdown, moon phase + illumination, planets above/below horizon, zodiac transitions, upcoming holidays (US, CA, AU, GB), radio station/signal/now-playing, weather stats in dual units (imperial + metric).
Radio controls: frequency tuning, seek, mode cycling (FM > Hybrid > HD, AM > AM HD), HD program selection (HD1-HD8), volume, station presets, band scan, WAV recording. Background network polling: Weather Underground (60s), NTP (60s), NOAA SWPC solar (5m), planet positions (5m). Optional config file for Weather Underground API key and station ID.
Link to project: gitlab.com/dh81-labs/quiktool
NOAA Weather Radio receiver, SAME/EAS alert decoder, and NOAA APT satellite weather image demodulator for RTL-SDR. Receives NWR broadcasts on 162.4–162.55 MHz (channels WX1–WX7) and APT imagery from NOAA-15/18/19 satellites on 137 MHz.
AFSK demodulation at 520.83 baud (mark 2083.3 Hz, space 1562.5 Hz). Full SAME protocol decoding with 3-burst majority voting error correction and field validation (originator, event code, FIPS, purge/issue time). 1050 Hz NWR and 853+960 Hz EAS dual-tone attention signal detection. 66 event codes (warnings, watches, statements, emergencies, tests). FIPS county database with state/county name lookup and location filtering. APT demodulator: FM discriminator, AM envelope detection at 2400 Hz subcarrier, per-line normalization, sync tone validation.
Available as both a CLI binary (noaa-wx) and a library crate
with streaming SameDecoder and AptDemod APIs.
Supports gain, PPM correction, and FIPS-based geographic filtering.
Link to project: gitlab.com/dh81-labs/noaa-wx-rs
Time signal decoder for RTL-SDR in direct sampling mode (240 kHz). Supports nine international standards:
HF path: AM demod → 48 kHz audio → Goertzel 1000/100 Hz → BCD decoder.
LF path: envelope magnitude → 250x decimate → baseline EMA → drop detection.
Auto mode detection from tuned frequency (with -s override).
Signal quality monitoring (dBFS, noise floor, tone SNR).
JSON output mode for machine-readable event streams.
Channel-based library API (command/event pattern).
Link to project: gitlab.com/dh81-labs/wwv-rs
RTL-SDR library written in Rust - a port of the Osmocom rtl-sdr library with RTL-SDR Blog modifications. Vendored fork used as a path dependency across all dh81 SDR projects.
Supports Rafael Micro R820T (V3 dongles, 24–1766 MHz) and R828D (Blog V4 - automatic HF/VHF/UHF input switching, 28.8 MHz upconverter, notch filter control). Async bulk USB transfers, gain control, frequency tuning, direct sampling, bias tee, EEPROM read/write. Multiple device opening methods: by index, by serial number, or by file descriptor (Android). Device enumeration and listing. Includes FM receiver example with demodulation.
Link to project: gitlab.com/dh81-labs/rtl-sdr-rs
Shared DSP primitives for the dh81 SDR project family. Provides common signal-processing building blocks used across dh81-sdr-rs, noaa-wx-rs, and wwv-rs.
Link to project: gitlab.com/dh81-labs/dh81-sdr-common
SIGNAL MODES
| Mode | Frequency | Modulation | Project | Standard |
|---|---|---|---|---|
| FM HD Radio | 87.5–108.0 MHz | OFDM + HE-AAC v2 | nrsc5-rs | NRSC-5-D |
| FM Analog | 87.5–108.0 MHz | WBFM Stereo | dh81-sdr-rs | - |
| AM Broadcast | 530–1700 kHz | AM Envelope | dh81-sdr-rs | - |
| NWR/SAME | 162.4–162.55 MHz | NBFM + AFSK | noaa-wx-rs | 47 CFR Part 11 |
| ADS-B | 1090 MHz | PPM / Mode S | dh81-sdr-rs | ICAO Annex 10 |
| AIS | 161.975/162.025 MHz | GMSK 9600 baud | dh81-sdr-rs | ITU-R M.1371 |
| ACARS | 129–136 MHz | AM/MSK 2400 baud | dh81-sdr-rs | ARINC 618 |
| NOAA APT | 137.1–137.9 MHz | WBFM + AM 2400 Hz | noaa-wx-rs | NOAA POES |
| RDS | 57 kHz subcarrier | BPSK Manchester | dh81-sdr-rs | ITU-R BS.412-9 |
| WWV/WWVH | 2.5–20 MHz | AM + BCD tones | wwv-rs | NIST SP 432 |
| WWVB | 60 kHz | ASK/PM | wwv-rs | IRIG-H |
| DCF77 | 77.5 kHz | ASK | wwv-rs | PTB Germany |
| JJY | 40/60 kHz | ASK | wwv-rs | NICT Japan |
| MSF | 60 kHz | ASK | wwv-rs | NPL UK |
| BPC | 68.5 kHz | ASK | wwv-rs | NTSC China |
| BPM | 2.5–15 MHz | AM + BCD tones | wwv-rs | NTSC China (HF) |
| RBU | 66.667 kHz | MSK | wwv-rs | VNIIFTRI Russia |
| CHU | 3.33/7.85/14.67 MHz | Bell 103 FSK | wwv-rs | NRC Canada |
STATUS
| Project | Version | Lines | Tests | License | License Rationale | Status |
|---|---|---|---|---|---|---|
| nrsc5-rs | 0.9.0 | 21,012 | 297 | GPL-3.0+ | Derived from GPL-licensed nrsc5 C project | Mature |
| dh81-sdr-rs | 0.2.0 | 17,808 | 447 | GPL-3.0+ | Links GPL nrsc5-rs; multi-mode SDR receiver | Active |
| quiktool | 0.17.0 | 13,163 | 208 | GPL-3.0+ | Links GPL libraries (dh81-sdr-rs, wwv-rs) | Active |
| noaa-wx-rs | 0.3.0 | 7,145 | 188 | MIT | Original work; permissive for safety tooling reuse | Stable |
| wwv-rs | 0.3.1 | 7,587 | 194 | GPL-3.0+ | Derived from nrsc5 C time signal code | Stable |
| rtl-sdr-rs | 0.3.1 | 3,317 | 12 | MPL-2.0 | File-level copyleft; allows linking from any license | Stable |
| dh81-sdr-common | 0.3.0 | 2,820 | 113 | MIT | Shared primitives; permissive for cross-project use | Active |
QUIKTOOL TUI
The temporary flagship - ties all the radio libraries into one keyboard-driven terminal dashboard. Built with ratatui + crossterm. Currently untested outside of Windows, but is 95% cross-compatible code. Linux/macOS should be workable with minimal effort. See project card above for version info and GitLab link.
Menu:
Sidebar (always visible):
Hardware:
- Weather, earthquake, moon/solar, and time sync work without hardware.
ECOSYSTEM
DH81 projects are part of a broader ecosystem spanning three GitLab organizations. QX9 builds decentralized infrastructure on the Veilid application framework - encrypted storage, PBX, media transport, and HIPAA compliance tooling. Deadband is a persistent-universe space strategy game engine designed for decentralized infrastructure.
See the full ecosystem page for details on all QX9 and Deadband projects.