-
Notifications
You must be signed in to change notification settings - Fork 152
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.