Using my ADS-B receiver, In the past few months I've seen a lot of what I think are TIS-B contacts. They seem to cycle through a few different ICAO ID prefixes, but I see a lot that are of the form (in hex) 29xxxx and 31xxxx. E.g. 298c12 and 318512. I'm looking for a specification of exactly which ranges of ICAO codes can be used for TIS-B.


1 Answer 1


In this answer I'll assume you are analysing ADS-B data on 1090 MHz, which is the defacto global standard. I am less familiar with the ADS-B on UAT (987 MHz) which is used in addition to 1090MHz in the USA, but I assume the same logic applies.

There are no ICAO addresses assigned to TIS-B targets.

If an aircraft has an ICAO-address which is detected by the surveillance sensors (e.g. Mode S radar, multilateration system) and the aircraft is not transmitting ADS-B, then a TIS-B target will be created with the ICAO 24 bit address.

If an aircraft has no ICAO-address, (i.e. it has a Mode A/C transponder / ATCRBS) and is not transmitting ADS-B, then a TIS-B target will be created with a 24 bit address that consists of the Mode A code (first 12 bits) and a unique surveillance system track number (last 12 bits). Primary radar targets are allocated a "Mode A code" of all zeros.

To determine whether you receive an ADS-B message or a TIS-B message you should start looking at the Downlink Format (DF, first 5 bits of the message) if the DF = 17, then it is an ADS-B message. If the DF = 18 then you look at the control field (CF, bits 6-8). CF = 0 and CF = 1 are ADS-B messages. CF = 2,3 & 5 are TIS-B messages. CF = 6 are ADS-R messages. CF = 4 are TIS-B / ADS-R system status messages.

The TIS-B messages contain an ICAO/Mode A Flag (IMF) bit which indicates how to interpret the 24 bit address. The location of this bits varies by message type (e.g. position, velocity) and replaces a bit in the ADS-B format that has no meaning in TIS-B.

  • $\begingroup$ Thanks, @DeltaLima. I'd seen your other ADS-B related answers and was hoping you might be able to help with this question :) $\endgroup$ Aug 6, 2015 at 17:21
  • $\begingroup$ @JohnWiseman I am professionally involved in standardising and implementing the whole thing. Anything tagged ads-b draws my attention :-) $\endgroup$
    – DeltaLima
    Aug 6, 2015 at 17:25
  • $\begingroup$ @JohnWiseman btw, what kind of receiver are you using? $\endgroup$
    – DeltaLima
    Aug 6, 2015 at 20:58
  • $\begingroup$ I'm using an RTL-SDR with dump1090 as a decoder. When I started in 2013 I never saw TIS-B reports, but these days I see a lot: Ground vehicles at LAX, mode A/C-only aircraft in the air, and sometimes TIS-B contacts that seem to mirror aircraft that are broadcasting their own ADS-B position. $\endgroup$ Aug 7, 2015 at 5:07
  • 1
    $\begingroup$ @JohnWiseman the ground vehicles at LAX probably have ADS-B transmitters. Some aircraft broadcast ADS-B positions with low quality (no integrity) and indicate this in the message (FTC = 9). In such case a TIS-B target will still be generated as the ADS-B data is not really usable. Aircraft installed ASD-B receivers (and ATC ADS-B receivers as well) will filter out these low integrity messages. $\endgroup$
    – DeltaLima
    Aug 8, 2015 at 8:53

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.