Field Guide · technology

Also known as: dump1090

dump1090 is a small, popular open-source decoder that turns a cheap RTL-SDR dongle into an aircraft tracker by demodulating Mode S and ADS-B transponder replies on 1090 MHz.1 Originally written by Salvatore Sanfilippo (antirez) and extended by many forks, it decodes the position, altitude, callsign, and velocity aircraft broadcast, and serves them to a built-in web map and to network feeds. It is the reference tool behind most hobby flight-tracking receivers.

RTL-SDR@1090 MHz PPM demod+ preamble Mode Sframe + CRC aircraftmap / feed
dump1090 demodulates 1090 MHz pulse-position-modulated replies, deframes and CRC-checks Mode S messages, and plots decoded aircraft on a map.

How it works

Aircraft transponders reply on 1090 MHz using pulse-position modulation at 1 Mbit/s: each Mode S message begins with a fixed preamble followed by 56 or 112 data bits, where the position of energy within each 1-microsecond bit period encodes a 0 or 1. dump1090 samples the 1090 MHz band with the RTL-SDR (typically at 2 MS/s), computes signal magnitude, and slides a preamble correlator across the stream to find candidate message starts.

For each candidate it slices the following bits by comparing pulse positions, assembles the message, and validates it with the Mode S 24-bit CRC — which is overlaid with the aircraft address so a passing check both confirms integrity and reveals the ICAO 24-bit ID. Valid ADS-B extended-squitter messages carry the aircraft’s GPS-derived position (in compact CPR encoding, which dump1090 decodes to latitude/longitude), altitude, ground speed, heading, and callsign. Decoded aircraft are held in a live table and pushed out several ways: a built-in HTTP server with a Leaflet map, a raw hex stream, and the BaseStation (port 30003) format that aggregators and logging tools consume.

Because the workload is light, dump1090 runs comfortably on small single-board computers, which is why it is the standard software on home ADS-B receivers and feeder stations.

Relevance to SDR

dump1090 is the canonical example of a single-purpose SDR decoder done well: it does one thing — receive 1090 MHz Mode S/ADS-B — and does it efficiently enough to run on a Raspberry Pi. It anchors the popular flight-tracking feeder ecosystem, where receivers submit decoded traffic to networks that combine many stations, and its position data feeds multilateration for aircraft that transmit Mode S but not full ADS-B position.

GopherTrunk is a different kind of decoder and does not include ADS-B. GopherTrunk targets land-mobile trunked-radio voice/control systems (P25, DMR, NXDN, TETRA, and more), which are an entirely separate problem from aviation transponder replies — different band, framing, and purpose. The two are worth mentioning together only as members of the same broad family of purpose-built SDR decoders: both take raw IQ from an inexpensive front end and extract a specific digital protocol, and both illustrate the pattern GopherTrunk follows of a focused, lightweight receiver rather than a general GUI. For 1090 MHz aircraft tracking, dump1090 (or its widely used forks) remains the tool to reach for, not GopherTrunk.

Sources

  1. dump1090 — the original source repository, and the Wikipedia article on ADS-B, documenting 1090 MHz Mode S/ADS-B modulation, message formats, and decoding. 

See also