ADS-B message decoder
Paste a Mode S or ADS-B hex string. Every field is shown with the bit range it came from.
One message or a whole log. Any separator works.
Or click an example
Paste a message above, or try one of the examples.
What it reads
- ADS-B broadcasts (DF17 and DF18)
- Callsign, position, altitude, speed, heading, and climb rate. The 24-bit CRC checks every message. A failed CRC shows the message has an error.
- Radar replies (DF0, 4, 5, 16, 20 and 21)
- Altitude and squawk codes. These messages do not send the aircraft address openly. The receiver recovers the address from the parity field. That leaves nothing to verify the message against, so the decoder gives no pass/fail verdict. DF11 (the all-call reply) works differently: the address appears in the clear, and the parity carries the interrogator code.
- Why a position takes two messages
- One position message does not contain a position. It holds a CPR index that repeats every few degrees of latitude. An even message and an odd message from the same aircraft together resolve the coordinate. A reference position can also decode a single message. Without either, the tool shows only the raw index.
Two different zone widths. The overlap gives one answer.
Mode S downlink formats
The first 5 bits of every message identify its downlink format (DF). The format determines what fields the message carries.
| DF | Name | Contains |
|---|---|---|
| DF0 | Short air-air surveillance | Altitude |
| DF4 | Surveillance altitude reply | Altitude, flight status |
| DF5 | Surveillance identity reply | Squawk code |
| DF11 | All-call reply | ICAO address, capability |
| DF16 | Long air-air surveillance | Altitude, ACAS resolution |
| DF17 | ADS-B broadcast | Position, velocity, callsign, altitude |
| DF18 | Extended squitter (non-transponder) | Same as DF17, from ground vehicles or TIS-B |
| DF20 | Comm-B altitude reply | Altitude plus 56-bit data block |
| DF21 | Comm-B identity reply | Squawk plus 56-bit data block |
ADS-B type codes (DF17)
Inside a DF17 message, the first 5 bits of the payload are the type code (TC). The type code determines what kind of data the message carries. Most ADS-B receivers see type codes 1–4, 9–18, and 19 most often.
| TC | Name | Content |
|---|---|---|
| 1–4 | Aircraft identification | Callsign (8 characters, 6 bits each) and wake turbulence category |
| 5–8 | Surface position | Ground speed, track, CPR latitude/longitude, movement status |
| 9–18 | Airborne position (barometric) | Barometric altitude, CPR latitude/longitude, surveillance status |
| 19 | Airborne velocity | Ground speed or airspeed, heading, vertical rate, GNSS/baro altitude difference |
| 20–22 | Airborne position (GNSS) | GNSS altitude, CPR latitude/longitude |
| 23 | Test message | Reserved for system testing |
| 24–27 | Reserved | Not yet assigned by ICAO |
| 28 | Aircraft status | Emergency/priority status and squawk code |
| 29 | Target state and status | Selected altitude, barometric pressure setting, selected heading |
| 31 | Operational status | ADS-B version, NACp, NACv, SIL, NIC, capability class flags |
Worked example
Single frame
8D40621D58C382D690C8AC2863A7
- Downlink format
- DF17 — ADS-B broadcast (extended squitter).
- ICAO address
- 40621D — The aircraft's 24-bit identifier.
- Type code
- 11 — Airborne position, barometric altitude.
- Altitude
- 38,000 ft — Barometric altitude from the 12-bit altitude field.
- CPR frame
- Even — One half of a position pair. A single frame does not resolve a coordinate.
Position pair
Resolved position: 52.2572°N, 3.91937°E — Together the even and odd frames resolve to a unique position over the North Sea.
Frequently asked questions
- What is ADS-B?
- ADS-B stands for Automatic Dependent Surveillance-Broadcast. Aircraft automatically broadcast their position, altitude, speed, and identification on 1090 MHz. Ground stations and other aircraft receive these broadcasts without any radar interrogation.
- What is the difference between ADS-B and Mode S?
- Mode S is a radar protocol: a ground station sends an interrogation, and the transponder replies. ADS-B is a broadcast: the transponder sends messages on its own, with no interrogation needed. Both use the same 1090 MHz frequency and the same 112-bit message format. ADS-B messages are downlink format 17 (DF17).
- How long is an ADS-B message?
- An ADS-B message is 112 bits, which is 14 bytes or 28 hex characters. The first 5 bits are the downlink format. Bits 9 through 32 carry the 24-bit ICAO address. The remaining 56 bits carry the payload: position, velocity, callsign, or other data depending on the type code.
- What equipment do I need to receive ADS-B?
- A software-defined radio (SDR) dongle that covers 1090 MHz, a 1090 MHz antenna, and software such as dump1090 or readsb. The total cost for a basic setup is under $30. The receiver decodes the same messages this tool parses.
- What is CPR encoding?
- Compact Position Reporting (CPR) compresses a latitude and longitude into 17 bits each. A single CPR message does not contain enough information to resolve a unique position. Two messages — one even and one odd — from the same aircraft together resolve the full coordinate.
- What does the CRC check in an ADS-B message?
- The last 24 bits of every message carry a CRC (cyclic redundancy check). In DF17 messages, the CRC verifies the entire message against the ICAO address. A failed CRC means the message has a bit error. In radar replies (DF0, DF4, DF5), the transponder XORs the CRC field with the address, so nothing remains to verify independently.
- How is altitude encoded in an ADS-B message?
- The altitude field is 12 bits, but the encoding depends on one bit inside it called the Q bit. When Q=1 (the common case), the remaining 11 bits give altitude in 25-foot steps above −1,000 ft. When Q=0, the 11 bits use Gillham (Gray) code in 100-foot steps — a legacy encoding from Mode C transponders where adjacent values differ by exactly one bit, making single-bit errors change the altitude by only 100 ft instead of thousands.Q=1 → 25-ft steps, 11 bitsQ=0 → Gillham code, 100-ft steps
- What is the CA field in an ADS-B message?
- The Capability field (CA) is a 3-bit value at bits 6–8 in DF17 messages. It describes the transponder capability level: 0 means the transponder reports only surveillance data, 4 means it has at least Comm-A and Comm-B, 5 means it has Comm-A, Comm-B and can set squawk code 7 on command, and 6 means it has all level-5 capabilities plus can respond to selective interrogations. Most commercial aircraft report CA=5.CA=0 surveillanceCA=4 Comm-A/BCA=5 typicalCA=6 selective
- What are ADS-B versions 0, 1, and 2?
- ADS-B has evolved through three versions, each defined by a revision of the DO-260 standard. Version 0 (DO-260) was the original specification. Version 1 (DO-260A) added accuracy and integrity indicators like NACp, NACv, and SIL. Version 2 (DO-260B) tightened surface position requirements and added the SDA field. The version is reported in type code 31 (operational status). The 2020 US mandate requires version 2.
- What are the velocity message subtypes?
- Type code 19 carries velocity in one of two formats. Subtypes 1 and 2 give ground speed as east-west and north-south components, which the receiver combines into a speed and track. Subtypes 3 and 4 give airspeed and magnetic heading directly. Subtypes 1 and 3 report speeds up to about 1,024 kt in coarse resolution. Subtypes 2 and 4 use a finer resolution that halves the maximum. All four subtypes include vertical rate and the GNSS/barometric altitude difference.