-
Notifications
You must be signed in to change notification settings - Fork 168
The Basics of ADS B Decoding
This guide presents an overview of Mode-S message decoding. It is organized as a flowchart to understand what information can be extracted from each message. For a technical understanding of Mode-S messages, visit The 1090MHz Riddle.
The 1090MHz Riddle Message Structure
pyModeS pyModeS.df(msg)
The downlink format indicates message the message type.
| DF | Type |
|---|---|
| 0 | Short air-air surveillance (ACAS) |
| 1 - 3 | Reserved |
| 4 | Surveillance, altitude reply |
| 5 | Surveillance, identify reply |
| 6 - 10 | Reserved |
| 11 | All-call reply |
| 12-15 | Reserved |
| 16 | Long air-air surveillance (ACAS) |
| 17 | Extended squitter |
| 18 | Extended squitter / non transponder |
| 19 | Military extended squitter |
| 20 | Comm-B, altitude reply |
| 21 | Comm-B, identify reply |
| 22 | Reserved for military use |
| 23 | Reserved |
| 24 | Reserved Comm-D (ELM) |
The 1090MHz Riddle ICAO Address
pyModeS pyModeS.icao(msg)
All aircraft are assigned a unique twenty-four bit address. All messages originating from an aircraft will this to associate message data with the aircraft. The function pyModeS.is_icao_assigned(msg) verifies that the ICAO code embeded in a message falls within a range of assigned codes.
The 1090MHz Riddle ADS-B Checksum
pyModeS pyModeS.crc(msg)
Mode-S messages use Cyclic Redundancy Check (CRC) to verify data integrity. If the data is valid, the CRC remainder will be 0.