The 1090 Megahertz Riddle (second edition)

A Guide to Decoding Mode S and ADS-B Signals
By: Junzi Sun (


Comm-B messages count for a large portion of the Mode S selective interrogation responses. The message can have a downlink format of either 20 or 21, depending on whether the aircraft identity code or altitude code is included in the message.

Comm-B protocol supports many different types of messages (up to 255). Several important surveillance services utilize some of the Comm-B message types (see Figure [fig:mode_s_services] from Chapter [chap:intro]). In this book, we are mainly interested in three types of services, which are Mode S Elementary Surveillance (ELS), Mode S Enhanced Surveillance (EHS), and Meteorological information. By decoding these messages, we can discover some additional information of an aircraft.


Comm-B messages have similar structures as surveillance replies (DF=4/5). The structures are shown in the Tables 1.1 and 1.2.

Comm-B, altitude reply (DF=20)
Downlink format DF 1–5 5
Flight status FS 6–8 3
Downlink request DR 9–13 5
Utility message UM 14–19 6
Altitude code AC 20–32 13
Message, Comm-B MB 33–88 56
Parity 89–112 24
Comm-B, identity reply (DF=21)
Downlink format DF 1–5 5
Flight status FS 6–8 3
Downlink request DR 9–13 5
Utility message UM 14–19 6
Identity code ID 20–32 13
Message, Comm-B MB 33–88 56
Parity 89–112 24

The definitions of these common fields are the same as surveillance replies in Chapter [chap:surv_reply]. In addition, depending on the request in the uplink, either address parity or data parity (see Chapter [chap:mode_s_basics]) can be included in the downlink message.


Comm-B Data Selector (BDS) is an 8-bit code that determines which information to be included in the MB fields. It is often shown as a 2-digit hexadecimal, for example, 4,0 or 0,A. We can make a comparison between the BDS code and Type Code used in ADS-B. They both help to identify which structure shall be used to decode the message, except that the BDS code is only included in the uplink (Comm-A). For Comm-B messages, BDS codes are not always included.

Without knowing the BDS code of the downlink message, the information contained in the MB field cannot be decoded. Fortunately, there are methods available that can be used to infer the BDS code for most of the messages and decode them. In later Chapter [chap:bds_infer], the inference process will be explained.

The following is the list of BDS codes for messages that will be discussed in detail in the different chapters.

  • BDS 1,0 - Data link capability report

  • BDS 1,7 - Common usage GICB capability report

  • BDS 2,0 - Aircraft identification

  • BDS 3,0 - ACAS active resolution advisory

  • BDS 4,0 - Selected vertical intention

  • BDS 5,0 - Track and turn report

  • BDS 6,0 - Heading and speed report

  • BDS 4,4 - Meteorological routine air report

  • BDS 4,5 - Meteorological hazard report

Here, the first four BDS codes (1,0, 1,7, 2,0, 3,0) belong to the ELS service, the next three ones (4,0, 5,0, 6,0) belong to the EHS services, and the last two codes (4,4, 4,5) report meteorological information. All ELS, EHS and meteorological services are discussed in the following chapters.

It is also worth noting that even ADS-B messages belong to Mode S extended squitter, they are still assigned with BDS codes. The list of BDS codes for these ADS-B messages are:

  • BDS 0,5 - Extended squitter airborne position

  • BDS 0,6 - Extended squitter surface position

  • BDS 0,7 - Extended squitter status

  • BDS 0,8 - Extended squitter identification and category

  • BDS 0,9 - Extended squitter airborne velocity information

© Copyright 2021 Junzi Sun. Build with LaTeX, Pandoc, and GitHub