Systems status: [ OK ]
  • [ OK ]proxy
  • [ OK ]mailserver
  • [ OK ]sunrise
  • [ OK ]

Tracking planes with ADS-B

a Raspberry Pi–powered ADS-B receiver setup that turned my home into a live aircraft tracker.

Tracking planes with ADS-B

Back in 2020, during the COVID-19 confinement, Zurich skies went unusually quiet. As someone who loves tinkering with hardware and data, I decided to track this change directly from my balcony. The result: a Raspberry Pi–powered ADS-B receiver setup that turned my home into a live aircraft tracker.

The hardware setup

To build a functional ADS-B receiver, I used:

  • Raspberry Pi 3B+ (any model with network + USB works).
  • RTL-SDR USB dongle (a cheap software-defined radio capable of receiving ADS-B signals at 1090 MHz).
  • 1090 MHz antenna mounted on my balcony.
  • MicroSD card with Raspbian installed.
  • Power supply + optional case/fan for stability.

ADS-B stands for Automatic Dependent Surveillance–Broadcast: commercial aircraft continuously broadcast their position, altitude, and velocity. With a suitable antenna and SDR, you can capture this data right from your home.

Software stack

I followed the excellent adsb-receiver project, which automates setup of all the software components:

  • dump1090-fa – decodes raw ADS-B messages from the SDR dongle.
  • piaware – forwards decoded data to FlightAware (and optionally other services).
  • graphs1090 – generates beautiful statistics of detected aircraft positions over time.

Setup is straightforward:

git clone https://github.com/jprochazka/adsb-receiver.git
cd adsb-receiver
chmod +x install.sh
./install.sh

The installer walks you through enabling components like dump1090, feeders, and local web stats.

Network and dashboard

Once configured, I exposed the Pi on my local network. From any browser on my LAN, I could visit:

For remote access, I set up a reverse proxy and pushed the stats to a small VPS, allowing me to share a public URL updated every 5 minutes.

What the data showed

Before COVID, Zurich skies averaged ~740 detected flights/day. In April 2020, that number dropped to ~43/day — a >90% reduction. You could literally see the effect of global lockdowns in the data.

As restrictions eased, my Pi started picking up hundreds of flights again. By mid-May, daily detections were back to ~300 aircraft.

This was a striking reminder of how much global events can be visualized at the local level — all from a balcony antenna and a Raspberry Pi.

Why this is cool

  • the entire setup costs less than CHF 100.
  • you’re literally decoding radio signals out of thin air.
  • sharing your feed with services like FlightAware improves global coverage.
  • you can build your own real-time analytics for your local airspace.

Next steps

  • Experiment with different antennas (coax lengths, gain settings).
  • Feed multiple aggregators (FlightAware, ADS-B Exchange, Flightradar24).
  • Automate anomaly detection — e.g., alert when unusual aircraft types show up.
  • Integrate Grafana/Prometheus for long-term stats.

Building an ADS-B receiver with Raspberry Pi was one of the most rewarding “lockdown projects” I’ve done. It blended hardware hacking, radio signals, data visualization, and a live connection to global aviation — all from my Zurich balcony.