Track aircraft in real-time from your own home for under $40. This step-by-step guide shows you how to build an ADS-B receiver using an RTL-SDR dongle, a 1090 MHz antenna, and a Raspberry Pi. Feed your data to AeroScope and other tracking networks.
| Component | Cost (approx) | Notes |
|---|---|---|
| RTL-SDR Blog V4 USB Dongle | $12-15 | R820T2 tuner chipset, 1090 MHz capable. The RTL-SDR Blog V4 is recommended for best sensitivity. |
| 1090 MHz ADS-B Antenna | $8-12 | A tuned 1090 MHz antenna dramatically improves range. DIY options include a collinear coaxial antenna or a spider/ground-plane antenna made from wire. |
| Raspberry Pi 3B+ or Pi 4 | $15-35 | Any Pi with USB and Ethernet/Wi-Fi works. Pi Zero 2 W also works for a minimal setup. A Pi 4 with 2GB RAM is ideal. |
| microSD Card (16GB+) | $5-8 | Class 10 or faster. 32GB recommended if you want to store local logs. |
| USB Power Supply | $5-10 | 5V/2.5A minimum for Pi 3B+, 5V/3A USB-C for Pi 4. |
| SMA Cable / Adapter | $3-5 | To connect the antenna to the RTL-SDR dongle if connectors do not match. |
Download the official Raspberry Pi Imager from raspberrypi.com. Flash "Raspberry Pi OS Lite (64-bit)" to your microSD card. In the imager settings, enable SSH, set a username/password, and configure your Wi-Fi network. Insert the card into the Pi and power it on.
SSH into your Raspberry Pi (ssh [email protected] or use the IP address). Run system updates:
sudo apt update && sudo apt upgrade -y
Plug the RTL-SDR dongle into a USB port on the Pi. Connect the 1090 MHz antenna to the dongle's SMA connector.
readsb is a high-performance ADS-B decoder that replaced dump1090. Install it with:
sudo bash -c "$(wget -qO- https://github.com/wiedehopf/adsb-scripts/raw/master/readsb-install.sh)"
This script installs readsb, configures it as a systemd service, and starts decoding ADS-B messages automatically. It also sets up a local web interface on port 8080 where you can see aircraft on a map.
Open a browser and navigate to http://your-pi-ip:8080. You should see aircraft appearing on the map within minutes. Check the statistics page to verify message rates. A good setup receives 200-1000+ messages per second depending on your location and antenna placement.
ADS-B is line-of-sight at 1090 MHz. For maximum range: mount the antenna as high as possible (roof, attic, or high window), keep the antenna vertical, use quality coax cable (LMR-240 or better for long runs), and avoid obstructions. Every doubling of antenna height adds roughly 40% more range.
Share your ADS-B data with tracking networks. Most networks provide free enhanced features in exchange for feeding:
curl -L -o /tmp/axfeed.sh https://adsb.fi/feed.sh && sudo bash /tmp/axfeed.shsudo bash -c "$(wget -qO- https://www.flightaware.com/adsb/piaware/install)"The original widely-used ADS-B decoder forked from Salvatore Sanfilippo's dump1090. Provides a web interface, Beast-format output, and is the foundation many other tools build on. Still widely used but readsb is preferred for new installations.
FlightAware's fork of dump1090, optimized for their PiAware platform. Includes enhanced decoding, adaptive gain control, and tight integration with the FlightAware network. Installed automatically with PiAware.
A modern web interface for readsb/dump1090 that provides a far superior map experience with aircraft trails, range rings, statistics, and a responsive design. Highly recommended as a frontend upgrade: sudo bash -c "$(wget -qO- https://github.com/wiedehopf/tar1090/raw/master/install.sh)"
AeroScope supports direct integration with local SDR receivers. Once your receiver is running readsb or dump1090, AeroScope's backend can connect to it and merge your local data with network feeds. This provides several advantages:
Configure the connection in your AeroScope .env file by setting LOCAL_RECEIVER_HOST and LOCAL_RECEIVER_PORT to point to your readsb instance's Beast output (default port 30005).
Yes. In most countries, receiving radio signals (including ADS-B on 1090 MHz) is perfectly legal. You are passively listening to signals that aircraft broadcast publicly. You do not need a license to receive — only to transmit. Always check your local regulations to be sure.
With a good outdoor antenna at 10+ meters height, typical range is 150-250 nautical miles (280-460 km). Indoor antennas or ground-level placement may only achieve 30-80 NM. The theoretical maximum at sea level is about 250 NM due to the curvature of the Earth (radio horizon). Higher antenna = more range.
Yes. Any Linux computer with a USB port works: Orange Pi, Banana Pi, Intel NUC, old laptop, or a full desktop. Docker containers are also available for running readsb on any platform. Some users even run receivers on Windows with dump1090 or Virtual Radar Server.
A Raspberry Pi receiver uses about 5-10 watts of power (less than a nightlight) and generates approximately 1-5 GB of network traffic per month when feeding data to tracking networks. The Pi itself can run 24/7 indefinitely with proper cooling.