DEV Community

Cover image for Build a Raspberry Pi Flight Tracker That Replays Your Whole Sky
circuitrocks
circuitrocks

Posted on Originally published at blog.circuit.rocks

Build a Raspberry Pi Flight Tracker That Replays Your Whole Sky

What you need before you start

A working flight tracker takes three parts: a Raspberry Pi with USB and networking, a receiver dongle tuned to 1090MHz, and an antenna mounted as high as you can reasonably get it. The dongle is where the money goes. An RTL-SDR Blog V3 or V4, an Airspy Mini, and the FlightAware Pro Stick Plus all decode the same signal, but the Pro Stick Plus packs the amplifier and the band filter into one stick, so you skip buying a separate filter later. Antenna placement counts for more than most builders expect: indoors behind a concrete wall you might see 40km, while the same dongle on a roof mast reaches past 200km.

What James Mitchell built

Pi-Sky is a single Python application and web server, written up as a tutorial on the Raspberry Pi blog. It reads the aircraft feed off your own receiver, enriches it through public APIs, and streams live JSON to any browser on your network. You get a card-style flight list with route details and airline logos, a live map, stored history, and a replay mode that plays back an entire day of traffic at once. An optional split-flap display shows the newest flight in airport departure-board style. Nothing phones home, so the data stays on the Pi.

How the radio side actually works

ADS-B stands for Automatic Dependent Surveillance-Broadcast. Modern aircraft transmit it on 1090MHz in short bursts several times a second, carrying an ICAO hex address, a callsign such as RYR3EM, GPS position, altitude, speed, track, vertical rate, and squawk code. Depending on the aircraft's altitude, your terrain, and your antenna, anything within roughly 100 to 250km lands in your receiver. Decoding is handled by dump1090, which publishes what it hears as JSON at a local path like /data/aircraft.json, and that file is the entire interface Pi-Sky reads from. Here is the gotcha: the broadcast never includes aircraft type, origin, destination, or schedule. Those fields arrive from the enrichment APIs, which is why a tracker with no internet still plots positions but leaves the route cards blank.

Worth a weekend on the bench

For a school electronics club or a thesis group, this build sits in a useful spot: a real RF receiving chain, a decoder, and a web front end, with every stage producing something you can point at and measure. Read the full write-up at raspberrypi.com, then run dump1090 on its own first and confirm you are getting hits in /data/aircraft.json before you add the Pi-Sky library on top. If your aircraft count sits at zero, move the antenna to a window before you touch a line of code.


Originally published on blog.circuit.rocks.

raspberrypi #rpi #singleboardcomputer #linux #circuitrocks

Top comments (0)