Track every plane overhead with a £40 radio and a Raspberry Pi
Every airliner overhead broadcasts its position, height and callsign twice a second, and step 1 shows you the planes above any spot through a free API before you buy anything. Then turn a £40 USB radio and a Raspberry Pi into your own receiver, with a live map, a home-made antenna and a feed to the open tracking networks.
- Feeds to adsb.lol, ADS-B Exchange, Flightradar24 or FlightAware, and what each gives feeders back
- A kit: one-command setup script, antenna build guide, parts list and a Python script that logs what flies over you
- An RTL-SDR USB radio: RTL-SDR Blog V3 recommended (around £40 from UK sellers)
- A Raspberry Pi (a Zero 2 W at around £15 is enough, or any Pi 3/4/5 you own) with power supply and a 32GB microSD card. Any Debian or Ubuntu PC also works
- Comfortable with SSH and a Linux terminal. New to it? Terminal survival kit
- For the antenna: a chassis socket, some stiff copper wire and a soldering iron
How a £40 radio sees every plane
Know what you're receiving, why line of sight is everything, and what you'll end up with.
ADS-B (Automatic Dependent Surveillance, Broadcast) is how modern aircraft tell everyone where they are. Each one works out its position from GPS and broadcasts it, unencrypted, on 1090MHz, along with its unique 24-bit address, callsign, altitude, speed and heading. Air traffic control uses it. So can you.
The radioAn RTL-SDR is a cheap TV-tuner chip repurposed as a software-defined radio: it hands raw radio samples to the computer, and software does the decoding. readsb turns those samples into aircraft messages, and tar1090 draws them on a map in your browser. It's receive-only: you listen, and never transmit anything.
Range is about height, not power1090MHz travels in straight lines. A plane at 35,000ft is above the horizon from roughly 200 nautical miles away, so a receiver with a clear view can see a very long way. A dongle on a desk with the stock aerial sees a fraction of that. Your antenna and where you put it (step 5) matter more than anything else you buy.
The kitDownload the kit for the setup script, the antenna guide, the parts list and the plane logger.
Try the data before the radio arrivesThe kit's planes_overhead.py reads exactly the same JSON format as your receiver will produce. Point it at adsb.lol's open API around any spot (here, 10 nautical miles round Westminster):
Any computer with Pythonpython planes_overhead.py --point 51.5007 -0.1246 10 --airborneOutput6 aircraft with a position flight reg type alt ft kt nm BAW6 G-ZBKS B789 4100 166 2.2 CSN303 B-1167 B789 2850 151 3.9 SWR115Y YL-ABW BCS3 4700 163 5.5 RYR57EQ EI-DWP B738 15000 326 6.0 TAP13HL CS-TVK A20N 1750 137 6.9 EVA067 B-16733 B77W 7400 255 7.5
If it breaksIt prints 0 aircraft
It prints 0 aircraft
--airborne. Quiet rural areas at 3am really can be empty.