quikchaos.com

⟨ project overview ⟩

Currently focused on NOAA Weather, WWV time signals,
and ADS-B aircraft tracking via basic RTL-SDR dongles.

56,300+ lines 865 tests 6 Rust crates 13 signal standards

ABOUT

I'm quik - network engineer, video gamer, science junkie and tool builder. 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 robust public safety communications (see Other Projects below).

PROJECTS

noaa-wx-rs (Stable)
v0.2.0 · 6,178 lines · 128 tests · MIT

NOAA Weather Radio receiver and SAME/EAS alert decoder for RTL-SDR. Receives NWR broadcasts on 162.4–162.55 MHz (channels WX1–WX7).

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. 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. Alert severity classification (Emergency > Warning > Watch > Statement > Test), duplicate message suppression (~11s window per SAME spec), purge time and issue time parsing.

Available as both a CLI binary (noaa-wx) and a library crate with a streaming SameDecoder API. Supports gain, PPM correction, and FIPS-based geographic filtering.

wwv-rs (Stable)
v0.3.0 · 5,524 lines · 81 tests · GPL-3.0+

Time signal decoder for RTL-SDR in direct sampling mode (240 kHz). Supports eight international standards:

WWV/WWVHUSA - 2.5/5/10/15/20/25 MHz (AM + BCD tones)
WWVBUSA - 60 kHz (amplitude-shift keying)
JJYJapan - 40, 60 kHz (same encoding as WWVB)
DCF77Germany - 77.5 kHz (amplitude redux + even parity)
MSFUnited Kingdom - 60 kHz (A/B bit-pair carrier-off)
BPCChina - 68.5 kHz (quaternary PWM, 20s frames)
BPMChina - 2.5/5/10/15 MHz (HF, MSB-first BCD)
RBURussia - 66.667 kHz (FSK: 100/312.5 Hz)

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).

rtl-sdr-rs (Vendored)
v0.3.1 · 3,253 lines · 12 tests · MPL-2.0

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.

dh81-sdr-common (New)
v0.1.0 · 740 lines · 22 tests · MIT

Shared DSP primitives for the dh81 SDR project family. Provides common signal-processing building blocks used across noaa-wx-rs and wwv-rs.

goertzelsingle-frequency DFT detector - stateful streaming struct + stateless one-shot function
dc_removalsingle-pole IIR highpass filter for DC bias removal after AM envelope detection
fm_discriminatorconjugate-multiply FM demodulator with accumulate-and-dump decimation
tone_detectorGoertzel-based tone detector with energy tracking, streak counting, configurable threshold

ARCHITECTURE

SIGNAL MODES

Mode Frequency Modulation Project Standard
FM HD Radio87.5–108.0 MHzOFDM + HE-AAC v2nrsc5-rsNRSC-5-D
FM Analog87.5–108.0 MHzWBFM Stereonrsc5-rs-
AM Broadcast530–1700 kHzAM Envelopenrsc5-rs-
NWR/SAME162.4–162.55 MHzNBFM + AFSKnoaa-wx-rs47 CFR Part 11
ADS-B1090 MHzPPM / Mode Snrsc5-rsICAO Annex 10
RDS57 kHz subcarrierBPSK Manchesternrsc5-rsITU-R BS.412-9
WWV/WWVH2.5–25 MHzAM + BCD toneswwv-rsNIST SP 432
WWVB60 kHzASK/PMwwv-rsIRIG-H
DCF7777.5 kHzASKwwv-rsPTB Germany
JJY40/60 kHzASKwwv-rsNICT Japan
MSF60 kHzASKwwv-rsNPL UK
BPC68.5 kHzASKwwv-rsNTSC China
RBU66.667 kHzMSKwwv-rsVNIIFTRI Russia

STATUS

Project Version Lines Tests License License Rationale Status
nrsc5-rs0.9.031,899462GPL-3.0+Derived from GPL-licensed nrsc5 C projectMature
quiktool0.14.08,874160GPL-3.0+Links GPL libraries (nrsc5-rs, wwv-rs)Active
noaa-wx-rs0.2.06,178128MITOriginal work; permissive for safety tooling reuseStable
wwv-rs0.3.05,52481GPL-3.0+Derived from nrsc5 C time signal codeStable
rtl-sdr-rs0.3.13,25312MPL-2.0File-level copyleft; allows linking from any licenseStable
dh81-sdr-common0.1.074022MITShared primitives; permissive for cross-project useNew

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.

quiktool help screen showing keyboard shortcuts and feature overview

Menu:

0:Helpkeyboard shortcuts and feature overview
1:Time Sync / WWVNTP clock comparison + WWV/WWVB/JJY/DCF77/MSF/BPC/RBU decode
2:FM RadioFM/HD/Hybrid broadcast, RDS, seek, presets via nrsc5-rs
3:AM RadioAM/AM HD broadcast via nrsc5-rs
4:ADS-B1090 MHz Mode S aircraft tracking (ICAO, callsign, altitude)
5:Earth / QuakesWeather Underground PWS + NWR + USGS earthquake alerts
6:Sun WeatherNOAA SWPC: X-ray flux, Kp index, solar storms, GOES chart
7:Moon & Planetsphase, illumination, zodiac, planet positions, ASCII orrery
8:Veilid MessagesP2P encrypted message board via Veilid DHT
9:Exit

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 (imperial + metric)

Hardware:

- Radio features require an RTL-SDR USB dongle (RTL2832U + R820T/R820T2). ~$30.
- Weather, earthquake, moon/solar, and time sync work without hardware.

OTHER PROJECTS

qx-toolkit (Active) v0.5.2 · QX9 · MPL-2.0 / CC BY-SA 4.0

The QX9 Network Analysis Toolkit - tools and experiments for implementing Veilid into long-term critical communication platforms. QX9 is an independent cross-functional engineering group bringing forward fully encrypted platform designs for critical communications such as public safety radio dispatch (P25/LMR) and NG911 (NENA i3).

Wireshark DissectorLua plugin covering all Veilid wire message types (1,035 lines)
Protocol DiagramsSVG wire format diagrams for ENV0, ENV1, RCP0, BOOT, TCP, UDP, WS, QUIC
Node Infrastructure7 global Veilid nodes across 4 continents