Skip to main content
Build a Real-Time Flight Tracker (ADS-B) on a Raspberry Pi 4 in 2026

Build a Real-Time Flight Tracker (ADS-B) on a Raspberry Pi 4 in 2026

A weekend project that turns a $90 SBC into a live aircraft tracker feeding FlightAware and your own dashboard

Build a Raspberry Pi 4 ADS-B receiver in a weekend — hardware list, software stack, antenna placement, and what the FlightAware feeder rewards earn you.

An ADS-B flight tracker is one of the most satisfying weekend projects on a Raspberry Pi 4 in 2026. A $90 board plus a $35 SDR dongle and a $45 antenna turns into a real-time aircraft receiver that decodes commercial and general aviation traffic in a 100–400 km radius and feeds the same datasets that power FlightAware, Flightradar24, and ADS-B Exchange. The setup is well-documented, all the software is open source, and you end up with a permanent useful homelab service that costs roughly $1 per year in electricity.

Why ADS-B is a great Pi project

ADS-B (Automatic Dependent Surveillance-Broadcast) is the 1090 MHz radio protocol nearly every commercial and most general aviation aircraft transmit continuously, broadcasting position, altitude, velocity, identity, and intent to anyone within range. The signal is unencrypted, the antennas are cheap, the decoding software is mature, and the data is genuinely interesting — both for casual flight-watching ("what was that plane?") and as a feed for real-world tools that journalists, researchers, and air-traffic enthusiasts use daily.

The hardware fits a Pi 4 well because the actual computation is modest. Dump1090 (source on GitHub) decodes the 2.4 Msps ADS-B stream on a single core at single-digit-percent utilization. The constraint is RF — your antenna, your terrain, your placement — not your CPU. That makes the Pi 4 the right tier: more than enough compute, low power, fits in a small case in an attic or on a roof.

Key takeaways

  • A $130–$180 build covers a working ADS-B receiver including SDR and tuned antenna.
  • Range is dominated by antenna placement (line-of-sight to the horizon) and antenna quality.
  • Dump1090 + tar1090 (the visualization layer) is the canonical software stack.
  • Feeding FlightAware, ADS-B Exchange, and OpenSky simultaneously is trivial and free.
  • The Pi 4 has plenty of headroom; one SDR uses 5–10% CPU on a single core.

Hardware bill of materials

ComponentApprox priceNotes
Raspberry Pi 4 4GB$754GB SKU is fine; 8GB is overkill
32 GB A2 microSD$10Primary OS
WD SN550 1TB NVMe$60 (optional)For long-term log retention
FlightAware Pro Stick Plus$35Built-in 1090 MHz filter
1090 MHz collinear antenna$45FlightAware 26" or equivalent
5–10 m of LMR-240 coax$15Lower-loss than RG-58 for runs over 5 m
Pi case + active cooler$15Keeps SDR/Pi temps stable
27W USB-C PSU$12Official Pi unit
Cat6 Ethernet cable$8Don't use Wi-Fi for feeder uplink
Total~$215One-time, runs continuously

The 8GB Pi 4 SKU is unnecessary for this workload. If you want a permanent low-cost storage tier for log archival, add the SSD; otherwise the SD card lasts years for ADS-B's modest write volume.

For a truly minimal version, a Raspberry Pi Zero W plus a Pro Stick Plus and a $5 homebrew antenna works — at the cost of slower decoding and less convenient remote management.

Step 1 — flash and prep the Pi

Use the Raspberry Pi Imager to flash PiAware (FlightAware's purpose-built distribution) which is a Raspberry Pi OS variant pre-configured with dump1090, tar1090, and the FlightAware feeder. If you want a more modular stack, flash plain Raspberry Pi OS Bookworm 64-bit Lite and install everything manually.

For the manual route:

bash
sudo apt update && sudo apt full-upgrade -y
sudo apt install -y rtl-sdr build-essential cmake git librtlsdr-dev libusb-1.0-0-dev
git clone https://github.com/flightaware/dump1090.git
cd dump1090
make

PiAware is the easier path; manual installation is more flexible but requires more familiarity with systemd and Debian package management.

Step 2 — plug in the SDR and verify reception

Plug the FlightAware Pro Stick Plus into a USB 2.0 port on the Pi (USB 3.0 generates 2.4 GHz noise that interferes with the 1090 MHz signal — use the black USB-A 2.0 ports). Verify the dongle is recognized:

bash
rtl_test -t

You should see device information. Then test reception:

bash
./dump1090 --interactive --net

A working setup shows aircraft populating the table within a few seconds — even with the stock antenna indoors you should see at least a handful within a minute or two if you live anywhere with commercial overflight.

Step 3 — place the antenna

Antenna placement is the single biggest performance variable, by a wide margin. Indoor mounting on a windowsill: 30–80 aircraft visible. Indoor in an attic: 100–200 aircraft. Outdoor above the roofline: 300+. Above-the-skyline placement on a 10m mast in flat terrain can see 700+ km in the right direction.

Practical guidance:

  • Mount the antenna outside if at all possible. Even one floor of attic insulation costs 30–50% of range.
  • Aim for line-of-sight to the horizon. Trees, hills, and buildings absorb 1090 MHz.
  • Use LMR-240 or better coax for any run over 5 meters. RG-58 loses 0.5 dB/m at 1090 MHz; that adds up fast.
  • Ground the antenna mast for lightning safety if it's the highest point on your property.

Step 4 — install and configure the feeder

Once dump1090 is decoding, install the PiAware feeder so your data joins FlightAware's network:

bash
wget https://flightaware.com/adsb/piaware/files/packages/pool/piaware/p/piaware-support/piaware-repository_X.X_all.deb
sudo dpkg -i piaware-repository_X.X_all.deb
sudo apt update
sudo apt install piaware
sudo piaware-config feeder-id <your-id-from-flightaware-claim>
sudo systemctl restart piaware

Then claim your feeder on the FlightAware website. After 7 days of consistent feeding you'll qualify for a free Enterprise account. ADS-B Exchange and OpenSky feeders run alongside PiAware without conflict — install each, point at the dump1090 BEAST data on port 30005, and feed everyone simultaneously.

Step 5 — visualize with tar1090

PiAware ships with the basic SkyAware web UI. tar1090 is the community-favored upgrade — it adds historical track playback, range rings, density heatmaps, and a more modern interface:

bash
sudo bash -c "$(wget -q -O - https://raw.githubusercontent.com/wiedehopf/tar1090/master/install.sh)"

Then visit http://<pi-ip>/tar1090 to see your live coverage map. Within a few hours of operation you'll have enough data to see your station's range pattern — the directional asymmetry from terrain and the maximum range in each compass direction.

Range numbers by antenna placement

Based on community reports from PiAware-feeding stations on FlightAware's coverage map, typical range falls into clear tiers as a function of antenna height and obstruction. Use this as a reality check before you order parts — and as the conversation to have with whoever lives upstairs about mounting the antenna outside.

PlacementTypical aircraft visibleApprox max rangeReception quality
Windowsill, ground floor20–6050–100 kmVery directional
Attic, single-story house80–180150–250 kmPartially blocked
Roof mount, two-story200–400300–450 kmExcellent in clear sectors
10 m mast in rural area500–900450–700 kmTheoretical-maximum class

The biggest cliff is moving the antenna from indoors to outdoors. Modern roofing materials and foil-backed insulation attenuate 1090 MHz heavily; even a basic outdoor mount on a $25 pole bracket roughly triples the aircraft count of the best indoor placement. The second biggest cliff is the antenna itself — going from the stock SDR whip to a tuned 1090 MHz collinear like the FlightAware 26-inch antenna roughly doubles range again. Everything else (filters, amps, coax type) is single-digit-percent tuning on top.

Multi-station MLAT and the bigger picture

Once you're feeding, you become part of a multilateration (MLAT) mesh. Mode S transponders that do not transmit ADS-B position (older aircraft, military, some general aviation) can still be located if three or more synchronized PiAware stations receive the same Mode S reply. FlightAware does the time-of-arrival math server-side and pushes the synthesized positions back to your tar1090 map. You'll see aircraft appear with "MLAT" tags — aircraft you would not otherwise see, surfaced by network effect.

The practical implication for siting: locations with a high density of nearby feeders (urban East Coast US, most of Western Europe, parts of Southeast Asia) get the richest MLAT picture. Sparser regions still benefit but see fewer triangulated targets. Either way, MLAT comes free with PiAware — you don't configure anything.

Power and 24/7 uptime budget

This is the workload the Pi 4 was made for: low CPU, network-bound, deterministic. Total wall-power draw runs about 4–6 W average with one SDR — under 50 kWh per year, well under $10/year in electricity at typical US rates. Active cooling is unnecessary at this load (CPU hovers around 55 °C with a passive heatsink in normal room temperatures), but a low-profile fan or aluminum case is cheap insurance for an attic install where summer temperatures push 45 °C ambient.

The single most useful uptime intervention is a small UPS HAT (PiSugar S Pro or comparable, ~$40) that buffers brownouts and clean-shutdowns if mains drops. Without it, you'll see occasional filesystem corruption every 12–24 months from unclean power-offs.

Performance and tuning

A Pi 4 with one SDR sees roughly the following sustained load:

MetricTypical value
dump1090 CPU4–8% of one core
piaware feeder CPU<1%
RAM~150 MB total
1090 MHz messages/sec50–800 (depends on traffic)
Aircraft visible (typical)50–300
Network upload~1 KB/s averaged

The Pi 4 has so much headroom for this workload that you can comfortably also run a small homelab dashboard (Grafana + InfluxDB) for historical analysis, a DNS resolver (Pi-hole), and a Wireguard endpoint without affecting decoding performance.

Common pitfalls

  1. USB 3.0 noise. Plugging the SDR into a USB 3.0 port crushes reception. The 2.4 GHz signals leaking from USB 3.0 swamp the 1090 MHz front-end. Always use USB 2.0.
  2. Stock antenna. The whip antenna in the SDR box is a universal scanner; it captures half as many aircraft as a tuned 1090 MHz antenna.
  3. Indoor placement near metal. Any metal within a meter of the antenna detunes it. Get it outside, away from gutters and HVAC.
  4. Long unshielded coax run. RG-58 over 10m loses more signal than a poorly placed antenna gains in height. Use LMR-240 or better for long runs.
  5. Skipping the filter. A cellular tower nearby will desensitize your SDR if you don't filter. The Pro Stick Plus includes one; if you use a vanilla RTL-SDR, add a $20 1090 MHz filter inline.

Optional add-ons

Once you have a working station:

  • UAT (978 MHz) for general aviation in the US. A second cheap SDR adds it.
  • MLAT (multilateration) — automatic on PiAware. Lets the FlightAware network triangulate Mode S targets that lack ADS-B.
  • Coverage stats — tar1090's "range" plugin generates a daily polar plot of your station's reach.
  • Auto-update of community blocklist for redaction-mandated aircraft (private jets that requested anonymity) — handled automatically by PiAware on stations participating in the FAA opt-out list.
  • Storage backup — a Crucial BX500 1TB SSD gives you a year of detailed track logs at full resolution for offline analysis.

When NOT to bother

Skip this project if:

  • You live in a deep urban canyon where line-of-sight to the horizon is impossible. Even an outdoor antenna will see only a few hundred meters in any direction.
  • Your local terrain is dominated by mountains or skyscrapers blocking the only nearby air traffic corridor.
  • You have no place to run an antenna outdoors and the building is wired with foil-backed insulation.

The hardware will work in all of these cases; you just won't see many aircraft, which removes most of the project's satisfaction.

Bottom line

A weekend, $150, and a small outdoor antenna mount get you a real-time aircraft tracker that runs forever, contributes to public datasets, and earns you a free FlightAware Enterprise account. The build teaches you SDR fundamentals, Linux service management, and basic RF practice, all on a platform that has fantastic documentation. It is one of the most rewarding starter projects on the Raspberry Pi 4 in 2026, and one of the few homelab services you'll keep running for years without noticing.

Citations and sources

This piece is editorial synthesis based on publicly available information. No independent first-party benchmarking is reported.

Products mentioned in this article

Tap any product for full specs, live Amazon & eBay pricing, and alternatives.

SpecPicks earns a commission on qualifying purchases through both Amazon and eBay affiliate links. Prices and stock update independently.

Frequently asked questions

What is ADS-B and what can I actually see?
ADS-B (Automatic Dependent Surveillance-Broadcast) is the 1090 MHz unencrypted radio protocol that nearly all commercial aircraft and most general aviation broadcast continuously. With a Pi 4 plus a $25 SDR and a properly-placed antenna you can typically see 100–300 aircraft in a radius of 100–400 km depending on terrain, height, and antenna gain. You see live position, altitude, speed, heading, squawk code, and (in many cases) the airline and flight number — the same data feeding FlightAware and Flightradar24.
Do I need a special antenna?
A purpose-built 1090 MHz antenna is the single biggest variable in performance. The stock antennas that ship with cheap SDRs are universal scanners and capture half as many aircraft as a tuned 1090 MHz collinear. A FlightAware 26-inch antenna or a comparable filtered collinear costs about $40–$50 and roughly doubles range. Outdoor placement above the roofline is the next biggest factor; line-of-sight to the horizon is everything.
Will the Pi 4 keep up with high-traffic areas?
Easily. Dump1090 decoding 1090 MHz on a Pi 4 uses around 5–10% of a single core even in a busy metropolitan area with 200+ simultaneous aircraft. The Pi 4's bottleneck for this workload is not CPU, it is the USB bus when running multiple SDRs at once. A single ADS-B dongle is well within the Pi 4's capacity, even shared with a few other lightweight services.
What do I get from feeding FlightAware, ADS-B Exchange, and OpenSky?
Free FlightAware Enterprise account (worth ~$90/month), a free 1090 MHz filter and amp kit if your station is consistently top-quality, and a public profile showing your station's coverage map. ADS-B Exchange and OpenSky are non-profit data commons that pay you nothing but feed researchers and journalists. Most enthusiasts feed all three — multi-feed is bandwidth-trivial (a few MB/month) and contributes to multiple public datasets.
What's the total project cost?
A working ADS-B receiver lands around $130–$180 total: Raspberry Pi 4 4GB ($75), 32GB SD card ($10), Flight-Aware Pro Stick Plus SDR ($35), purpose-built 1090 MHz antenna ($45), case + PSU + Ethernet ($25). You can go cheaper with a generic RTL-SDR for $25 and a homebrew antenna for under $10 if you have copper wire and a soldering iron. The differences are coverage and reliability, not whether the project works at all.

Sources

— SpecPicks Editorial · Last verified 2026-06-14

More guides & deep dives from the SpecPicks archive

Browse all articles & guides →

More reviews from the SpecPicks archive

Browse all reviews →