Get Started

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.

150 minAdvancedTools: Hardware around £60 to £80 (radio, Pi, card, antenna parts), software freeStep 1 free
Your own receiveran RTL-SDR dongle decoding ADS-B with readsb, the decoder the big networks' feeders use
A live map on your network (tar1090) showing every equipped aircraft in range, with history trails and a range outline
A 1090MHz antenna you built for a few pounds, and the placement tricks that double your range
  • 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
Before you start
  • 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
01/07How a £40 radio sees every plane0 done
STEP 01 of 07~10 min

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.

  1. 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.

  2. 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.

  3. 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.

  4. The kitDownload the kit for the setup script, the antenna guide, the parts list and the plane logger.

  5. 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 Python
    python planes_overhead.py --point 51.5007 -0.1246 10 --airborne
    Output
    6 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
✓
CheckpointYou've run planes_overhead.py against your own area and seen real callsigns, heights and distances.
If it breaksIt prints 0 aircraft
It prints 0 aircraft
Try a bigger radius (the third number) or drop --airborne. Quiet rural areas at 3am really can be empty.
Still stuck? Ask the community
Next mission · Advanced buildsRun an AI model too big for any one of your computers
→