xSDR

The dongles cost between $40 and $300. Three old ultra small form factor thin clients were rescued from the ewaste stream. And now I have my own Tower Control.

That’s xSDR. A distributed software-defined radio platform that turns cast-off enterprise hardware into a network of radio receivers, all feeding a central brain that decodes the signals into something useful. Or at least something cool enough that my wife will ignore the giant antenna I’m mounting on the roof.

How it works

Each node is a Wyse 5070 USFF device — those little thin clients companies throw away by the pallet — running a single job: forward raw radio samples over the LAN via rtl_tcp. No processing, no decoding, just a firehose of RF data pointed at the brain.

The brain is on much beefier hardware, running a Docker Compose stack that does the actual work — Caddy for reverse proxy, readsb for ADS-B decoding, OpenWebRX+ for waterfall displays, Icecast for streaming FM, and multimon-ng for pager decoding. All self-hosted, all built with custom Docker images pushed through Woodpecker CI.

The killer app

ADS-B — Automatic Dependent Surveillance-Broadcast. Every commercial aircraft squawks its position, altitude, speed, and callsign on 1090 MHz. With a properly matched antenna — a 69mm quarter-wave element (a stretched-and-cut-to-size wifi antenna) — a $40 RTL-SDR dongle picks it all up. The tar1090 web interface plots them on a map in real-time.

My wife wanted to know what planes were flying over the house. That $40 dongle did something she wanted. If you’ve ever tried to justify a hobby purchase to a partner, you understand why this is the project’s crowning achievement.

What’s next

Oh, what isn’t next?! Right now, my radio waves are pushing me towards Meshtastic radios to see which way the dogs go when they escape, or for follow-the-leader location awareness for mountain biking in a large group. I’m only limited by time.

But honestly? The plane tracker is already the win.