Aviation Decoders (ADS-B, UAT)
dump1090, readsb, tar1090, dump978, PiAware, FR24, ADSBexchange — aircraft tracking with an RTL-SDR.
The canonical Raspberry Pi + SDR project: feed a $30 RTL-SDR with a 1090 MHz antenna and watch every airliner within 200 miles paint itself onto your map. Cross-link with Pi Classic Projects (the RTL-SDR + dump1090 entry there), and SDR Receivers for hardware. The 978 MHz UAT side is US-only.
ADS-B (1090 MHz) decoders
- ★ dump1090 (FlightAware fork) — the standard Mode-S / ADS-B decoder. Takes IQ from an RTL-SDR (or any Soapy device), outputs Beast / SBS-1 / JSON streams, ships a basic web map. The FlightAware fork is the live one in 2026; the original Malcolm Robb fork is sunset. GPLv2.
- ★ readsb — modern dump1090 fork; better CPU efficiency, bistatic / multilateration support, JSON v2 / aircraft.json output, native support for SDRplay / soapy. GPLv2. The 2026 default if starting fresh.
- dump1090-mutability — Debian-package-friendly fork; older.
Web UIs / map dashboards
- ★ tar1090 — beautiful web UI for readsb / dump1090; map, history trails, range plot, statistics. The default web map for self-hosters.
- graphs1090 — companion stats dashboard (RRD-based) — message rate, range, signal strength over time.
- ★ adsb.im / adsb-feeder.im image — Raspberry Pi OS image preloaded with readsb + tar1090 + multi-feeder configs. The path of least resistance — burn the image, plug in the SDR, done.
- VRS / Virtual Radar Server — Windows / .NET; closed-source freeware; classic sliders' UI. Still works but tar1090 is the modern pick.
- Globe.adsbexchange.com / globe.airplanes.live — public web frontends running on top of readsb + tar1090.
Multi-feeder / network feeders
- ★ FlightAware PiAware — feeds your dump1090 / readsb data to FlightAware in exchange for a free Enterprise account ($90/yr value). Closed feeder client, open data forwarder. The most popular feeder.
- FR24 Feeder (
fr24feed) — feeds Flightradar24; closed feeder; gives you a free Business account. - ★ ADSBexchange feeder (
adsbexchange-stats) — feeds the only major un-filtered network (no aircraft hidden by request); open philosophy. Setup:wget -O - https://adsbexchange.com/feed.sh | sudo bash. - OpenSky Network feeder — academic / research network; open data; their own client.
- adsb.im — the easy way to feed ALL of these from a single Pi.
Multilateration (MLAT)
- dump-mlat / piaware-mlat / mlat-client — receives time-stamped Mode-S messages from multiple feeders and triangulates aircraft that aren't transmitting position (older planes broadcasting only their hex ID, no GPS). Requires being part of a feeder network with neighbors within ~250 miles. Open source.
- mlat-server — server side (run by FlightAware / ADSBexchange).
UAT 978 MHz (US only)
- dump978-fa (FlightAware) — UAT decoder for the US-only 978 MHz frequency used by GA aircraft below 18,000 ft. Same workflow as dump1090: SDR → dump978 → JSON / map.
- piaware also accepts dump978 input — feed both 1090 and 978 from one Pi.
- Hardware: dedicated 978 MHz antenna (or a wideband 1 GHz vertical) helps; you can multiplex one antenna with a splitter if signals are strong.
Hardware
- ★ RTL-SDR Blog v4 — works fine for ADS-B; the bundled magnetic-base antenna is the only part of the kit that's not great. Use a real 1090 MHz vertical (FlightAware antenna ~$50, or the FlightAware 26" / DPD Productions verticals).
- ★ FlightAware ProStick / ProStick Plus — RTL-SDR variant tuned for 1090 MHz; built-in 1090 MHz SAW filter and LNA. ~$25/$45. The right SDR if ADS-B is your only goal.
- AirNav RadarBox FlightStick — same idea, different vendor.
- FlightAware 1090 MHz antenna + cavity filter — outdoor antenna + cavity filter (notches FM broadcast, GSM, LTE). Will roughly double your range.
Practical guidance — squeezing the most range
- Antenna height beats antenna gain. 1090 MHz is line-of-sight. 30 ft up will outperform a high-gain antenna at ground level by a country mile.
- Cavity filter before LNA, LNA at antenna. A FlightAware 1090 MHz cavity filter ($30) plus an LNA mounted at the antenna (not the receiver) is the standard "300 NM range" recipe.
--gain 49.6is too high if you're in a city. Manual-gain-tune by maximizing message rate and minimizing Mode-AC false hits.- Run multiple feeders. PiAware + FR24 + ADSBexchange + adsb.im together cost no CPU; each gives you a free account or insight.
- Don't aim for 100,000 messages/sec. That's a CPU saturation problem; either filter messages or upgrade the Pi.
- Range plot. tar1090's range plot reveals where your terrain blocks reception; good for arguing with neighbors about getting the antenna higher.
License / pricing notes
- dump1090 / readsb / dump978 / tar1090 / adsb.im / mlat-client — all FOSS (GPL).
- PiAware / FR24 feeder / ADSBexchange feeder / RadarBox feeder — closed-source feeder clients, free as in beer; you get a paid-tier account in exchange.
- FlightAware / FR24 raw data downloads — paid; you can resell your own historical data to your own systems via the JSON output of readsb.
- OpenSky Network — open-data network; CC-BY for academic use.
Pick this if…
- First ADS-B station, easiest setup: burn the adsb.im image, plug in a FlightAware ProStick + 1090 antenna, follow the wizard.
- Self-host map UI: readsb + tar1090.
- Maximum data sharing: ADSBexchange + PiAware + FR24 (run all three from adsb.im).
- US 978 MHz too: add dump978-fa with a separate (or shared) antenna.
- Multilateration / triangulation: ensure piaware + adsbexchange feeders are running with
mlat-client. - Best range for the money: FlightAware ProStick Plus + cavity filter + outdoor 1090 antenna, mast-mounted LNA.