Skip to content

Tutorial ADS B

adswill edited this page Oct 17, 2026 · 1 revision

Tutorial: ADS-B (aircraft on 1090 MHz)

What it is

ADS-B is the broadcast aircraft transponders send on 1090 MHz: identity, position, altitude, speed and more, in the open, so that anyone can read it. Flight trackers are built on it. With OnAir you see the aircraft around you on a map and in a table, with your own range statistics. The same decoder also reads ordinary Mode S replies (altitude, squawk, registers) sent to radar.

What you need

  • A radio that tunes 1090 MHz. OnAir asks for 4 Msps; it decodes from 2 Msps, but each message then needs about 6 dB more signal. An RTL-SDR reaches roughly 2.4 Msps and tunes to about 1.7 GHz; wideband radios such as HackRF work too. See Supported radios.
  • An antenna for 1090 MHz with a clear view of the sky. A small quarter-wave whip (about 6.9 cm) outdoors beats a telescopic antenna indoors. Keep the coax short: at 1 GHz long cables lose a lot.
  • Optional: a 1090 MHz band-pass filter and a low-noise amplifier close to the antenna. The filter keeps strong cellular and broadcast signals from overloading the radio; the amplifier helps only if the cable is long. Fit the amplifier at the antenna, not at the radio.
  • The mode's start frequency is 1090 MHz (the mode table covers 1085 to 1095 MHz).

Before you start

  • Set the gain high enough that the noise floor lifts a little, but not so high that the input level (shown in dBFS in the Receiver tab) sits near full scale. Overload makes the aircraft nearby disappear first. If you have a filter, try turning the gain up; if you have none and live near a cell tower, lower it.
  • Set the antenna position first (see step 2): ranges, bearings and local position decoding need it.
  • Use the computer on mains power or a good battery: 4 Msps is a steady load.

Step by step

  1. In the mode list choose the group Aviation, entry Aircraft, 1090 MHz (mode ADS-B). In the tuner the Band box offers "1090 MHz ADS-B / Mode S" and "978 MHz UAT (US only)"; UAT has its own mode, see Tutorial: UAT.
  2. Under Antenna position (for ranges and the map) type your latitude and longitude, use Locate (Wi-Fi) (macOS asks for permission the first time), or right-click the map and choose Put the antenna here. Also set the antenna height. OnAir warns "Every aircraft is over ... nm away: this position is probably not yours" if the position looks wrong.
  3. Press Start. The status line shows "searching", then "receiving", the aircraft count, messages per second and SNR.
  4. Use the sub-views Map, Table, Radar, Range and Range stats.
  5. Click an aircraft for the details card.

What you should see

Within a minute or two aircraft appear. Messages per second depend on traffic and antenna: a handful at a quiet rural site, hundreds near a big airport. The Receiver tab shows messages per second, how many were good and how many failed the CRC; a small share of failures is normal. Aircraft first appear with identity only; a position needs a pair of messages (even and odd) unless you set the antenna position, in which case a single message can be decoded locally.

Reading the screen

  • Map: aircraft icons coloured by altitude, trails, your antenna and range rings. Right-click to put the antenna or centre the map. Predict positions (and uncertainty) fills the gaps between reports so planes move smoothly. The map has a wind-aloft layer built from Mode S registers that carry meteorological data (shown only when received).
  • Table: ICAO address, callsign, registration, country, operator, type, altitude, speed, vertical rate, distance and bearing, squawk (Sqk), NACp (position accuracy), ADS-B version (Ver), message count and age. The Units box switches between aviation units (knots, feet, nautical miles, ft/min) and metric. Only what is shown and exported changes; SBS and Beast feeds stay in aviation units.
  • Details: the aircraft's data, ACAS RA if a resolution advisory was reported, emergency state, and ACARS messages heard from this aircraft (see below).
  • Radar: a polar view around your antenna.
  • Range: the farthest position by compass sector and a histogram of distances, with CSV or PNG export. Reset empties the statistics; they are saved with the session otherwise.

Options and settings

  • Fix (error correction) repairs bit errors in DF11, DF17 and DF18 messages. Two bits finds more messages but lets more false ones through.
  • Other receivers: add dump1090 or readsb receivers (Beast port 30005 or SBS port 30003, one host:port per line); their aircraft join your table. Positions from them are shown, not computed. By default only addresses on your own network are accepted.
  • Aircraft database: registration, type and operator come from a CSV (icao,registration,type,operator; the readsb/tar1090 database works) which you can reload. US, Canadian and Australian registrations are derived from the address itself.
  • Photo / info on the details card opens public photo databases in your browser. Nothing is loaded until you click.
  • Data feeds (View > Data feeds): SBS-1 and Beast over TCP, local by default. Save results... writes CSV, JSON, KML or GPX.

Sharing to the public map (optional)

map.on-air.dev shows positions OnAir users choose to share. It is off by default. In the Server menu you can turn it on after a confirmation. Your receiver location and the built-in test signal are not sent. A separate choice shares interesting ACARS messages (free text, crew, operations, company, maintenance) with phone numbers and e-mail addresses removed; you can change it in the same menu. See Privacy and Live map.

ACARS on the aircraft card

If you also run ACARS, VDL2 or HFDL in another receiver slot, messages are matched to the aircraft by address, registration or callsign and counted in a badge in the table. Show all messages also lists link tests and acknowledgements.

Troubleshooting

  • No aircraft: check the antenna and the frequency (1090 MHz), raise the gain, move the antenna to a window or outdoors. Try the built-in simulated airspace first to confirm the screen works.
  • Few aircraft, short range: loss in the cable or a poor view of the sky. Mode S needs line of sight; the horizon limits range to roughly 200 nm at airliner altitude.
  • Aircraft appear then vanish, level near 0 dBFS: overload. Lower the gain or add a 1090 MHz filter.
  • Many CRC failures: weak signal or interference; try a different antenna position.
  • Positions wrong or ranges odd: the antenna position is not set or is wrong.
  • Sample rate: below 2 Msps the mode cannot run.

Tips

Place the antenna as high as possible; every metre helps. Watch the Range view over a day to compare antenna changes honestly.

Legal and privacy notes

ADS-B is a public broadcast, and receiving it is legal in many countries; a few restrict listening or using the data. Check your local rules, see Legal. Do not use OnAir data for navigation or air traffic decisions. Sharing is opt-in.

Under the hood

1090ES: pulse position modulation at 1 Mbit/s, 8 microsecond preamble, 56 or 112 bit frames protected by a 24-bit CRC, downlink formats DF11, DF17, DF18 and others (RTCA DO-260B; ICAO Annex 10 vol. IV). Positions use compact position reporting (CPR) with even/odd pairs or a local reference. Position prediction uses an interacting multiple-model filter, documented in the project's position-estimation notes.

Related

ADS-B mode page, Aircraft with ADS-B and the map, Tutorial: Mode S uplink, Tutorial: UAT, Live map, FAQ.

Clone this wiki locally