Tooling

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.6 is 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.

On this page