← Back to the workshop

P—04 · Furniture & eccentric builds

Overhead

This is by no means an original idea. There are plenty of flight trackers out there, and most of them are probably better than mine. But I've been having a blast plane spotting with my kids, so why not build our own? I had an old SDR dongle kicking around and always wanted to see if it could pick up the planes flying over the house. Turns out it can. Every airliner up there is broadcasting where it is, so I built an app that listens, puts them all on a map, and tells me where they came from and where they're going. Here's how it came together, in four phases.

Radio NooElec NESDR Mini (R820T)
Listening on 1090 MHz ADS-B
Software dump1090, Python, Leaflet

A well-used NooElec NESDR Mini R820T SDR USB dongle with its antenna cable on a paint-stained workbench

01

Out of the drawer

Tuning in to 1090

Planes constantly broadcast ADS-B messages on 1090 MHz with their position, altitude, speed and callsign. This little RTL-SDR stick can hear them with just a small antenna. After telling Linux to stop treating it as a TV tuner, I let dump1090 do the hard part: it decodes the raw radio pulses and writes out a snapshot of every aircraft it can hear, about once a second.

A dark map of the area around Asheville with range rings and several color-coded aircraft markers labeled with callsign and flight level, above a 24-hour replay timeline

02

Everything in range

Planes on a map

The app reads dump1090's snapshot, works out each plane's distance, bearing and angle above the horizon from my antenna, and streams it all live to a map in the browser. Markers are colored by altitude, with range rings out to 30 nautical miles. It also saves everything to a small database, so I can drag back through the last 24 hours and replay what flew over.

A tracked Delta flight, DAL3116, with a dashed projected path ahead of it marked at one-minute intervals out to five minutes

03

Picking one out

Tracking and projecting

Tap a plane and you can track it. The app draws a line out ahead of it using its current heading and ground speed, with a dot for each of the next five minutes, so you can see where it'll be before it gets there. Radio data can be noisy, so the tracker also ignores any altitude reading that jumps further than a real plane could climb or dive.

The flight detail card for DAL3116 showing distance, altitude, speed, vertical rate, squawk and signal strength, with the route Atlanta to Asheville and aircraft type Boeing 717-200 from 2001

04

Who's up there

Filling in the details

The radio tells you where a plane is, not where it's going. When I select a flight, the app looks up its route and airline on FlightAware's AeroAPI. It also checks a local copy of the FAA aircraft registry for the make, model and year, and grabs a photo of that exact airframe from planespotters.net. Here, a Delta 717 built in 2001, on its way in from Atlanta to Asheville. The whole thing is open source on GitHub, so if you have an old SDR lying around, you can run your own.

← Back to the workshop