Also known as: ADS-B, ADSB
ADS-B (Automatic Dependent Surveillance–Broadcast) is an aviation surveillance system in which aircraft continuously and unpromptedly broadcast their identity, position, altitude, and velocity on 1090 MHz (and 978 MHz UAT in the U.S.). It is automatic because it needs no interrogation, dependent because the position is derived onboard from GNSS rather than measured by a radar, and broadcast because every message is sent in the clear to anyone who listens. It is the aeronautical counterpart to AIS and one of the most popular SDR applications.1
Overview
ADS-B “Out” rides on Mode S Extended Squitter messages — 112-bit frames with downlink formats DF17 (from Mode S transponders) and DF18 (from non-transponder beacons and relays). The 56-bit payload of each carries one type code that selects what the message reports: aircraft identification and category, an airborne position, a surface position, or an airborne velocity. A full aircraft state therefore arrives across several message types, typically at roughly two position messages per second. The waveform is pulse-position modulation at 1 Mbps — each bit is a 1 µs interval in which the pulse sits in the first or second half — preceded by a distinctive four-pulse preamble that a receiver correlates against to find frame starts. Latitude and longitude are not sent directly; they are encoded with Compact Position Reporting (CPR), which transmits high-resolution fractional coordinates and resolves the ambiguous zone from a pair of even and odd messages.2
ADS-B “In” is the reciprocal capability: aircraft (or ground users) receiving the broadcasts, often augmented by TIS-B traffic and FIS-B weather uplinks on the U.S. 978 MHz link. Because the transmission is unauthenticated and unencrypted, it is trivially receivable — the basis of every public flight-tracking feed — but also spoofable, a known limitation that regulators mitigate with multilateration cross-checks rather than link security.
Technical characteristics
| Property | Value |
|---|---|
| Frequency | 1090 MHz (978 MHz UAT in the U.S.) |
| Modulation | Pulse-position modulation (Mode S ES) |
| Bit rate | 1 Mbps |
| Frame | 112-bit Extended Squitter (DF17 / DF18) |
| Payload | 56-bit ADS-B message, selected by 5-bit type code |
| Address | 24-bit ICAO aircraft address |
| Integrity | CRC-24 (parity overlaid, no address XOR in DF17) |
| Position | CPR even/odd encoding |
| Update rate | ~2 position + ~2 velocity messages/s |
History
ADS-B grew out of 1990s work to replace or supplement secondary radar with a cheaper, GNSS-fed, broadcast-based scheme. It was standardised by ICAO in Annex 10, with detailed Minimum Operational Performance Standards published by RTCA (DO-260, DO-260A, DO-260B for the 1090 MHz link and DO-282 for UAT) and mirrored by EUROCAE (ED-102/ED-102A). Two competing physical links emerged: 1090 MHz Extended Squitter, adopted worldwide, and the U.S.-specific 978 MHz Universal Access Transceiver for general aviation below 18,000 ft. Equipage mandates rolled out through the 2010s, culminating in the U.S. FAA requirement (1 January 2020) and the European implementing regulation for ADS-B Out in most controlled airspace.1
Deployment
ADS-B Out is now near-universal on commercial airliners and increasingly required for general aviation operating in busy airspace. On the ground it feeds air-traffic control displays, airport surface-movement systems, and — through space-based receivers such as the Aireon payload on Iridium NEXT — oceanic surveillance where no radar exists. The open, receivable nature of the signal spawned a large hobbyist ecosystem: networks like FlightAware, ADS-B Exchange, and OpenSky aggregate feeds from tens of thousands of volunteer SDR receivers, and community multilateration fills in aircraft that transmit Mode S but not position.
Decoding it with GopherTrunk
GopherTrunk includes a native 1090 MHz decoder. It samples the band, detects the four-pulse preamble by matched correlation in the magnitude domain, slices each 1 µs PPM bit, validates the CRC-24, extracts the 24-bit ICAO address and type code, and reassembles CPR position pairs into a tracked aircraft table. It can also ingest frames from an upstream feeder over the common BEAST binary format instead of demodulating directly. This is one of the few non-land-mobile protocols GopherTrunk decodes end to end, precisely because it is unencrypted and the demodulation is simple; the companion UAT 978, TIS-B, and FIS-B links are related but separate air interfaces. See the ADS-B decoder page for the live view.
Sources
-
Automatic Dependent Surveillance–Broadcast — Wikipedia, for the 1090 MHz ADS-B system, Mode S Extended Squitter, CPR position coding, the 978 MHz UAT alternative, and ICAO/RTCA/EUROCAE standardisation. ↩ ↩2
-
The 1090 MHz Riddle — mode-s.org — Junzi Sun, TU Delft, an open technical guide to Mode S / ADS-B message structure, type codes, CPR position decoding, and CRC-24, corroborating the frame and payload details here. ↩