Downlink Formats 18 and 19

So I noticed every Mode-S parser I’ve ever examined processes DF 17 messages while completely ignoring 18 and 19. The thing is, upon further research I discovered that 17, 18 and 19 all share exactly the same data format in the rest of the frame. Only those two bits are different: 17 indicates a transponder that can respond to interrogations, 18 indicates a non-transponder that cannot respond to interrogations such as TIS-B, and 19 indicates a military aircraft transponder.

So i modified my copy of dump1090 to treat all three downlink format codes exactly the same a few days ago, and then yesterday I actually noticed Air Force 2 presumably trying to get as far away as possible from the UN General Assembly Debate. It was broadcasting an altitude but no position; normally a transponder like that would get triangulated by MLAT so it occurred to me that it may very well have been broadcasting DF 19 and if so I might have been about the only person seeing its mode-S messages at all which would also explain why MLAT never picked it up. And check for AF2 on flightaware, there is no sign of it even though it was transmitting its tail number 99-0004 which IS on FA and is clearly the Veep Express.

Well even Janet airlines isn’t so secretive, presumably because it flies to and from a civilian airfield. So the whole point of this post is to ask if this is simply an oversight and should I submit a PR on GitHub or are we intentionally not tracking DF19 messages because they tend to be transmitted by… Errr… sensitive aircraft?

dump1090-fa will decode DF18

The format of DF19 is not standardized AFAIK. (Annex 10 doesn’t even specify a CRC format which makes it hard to do anything useful with it)

Has FA be able to decode DF18 ground message yet?

DF18 has been decoded by dump1090-fa for a long time now (including ground positions) - git history suggests since 2015 or so.

Thanks for the quick reply. Does it need to setup anything further apart from Lat, Long setting in the site information page? I do have my piAware running but seem it couldn’t detect the ground vehicle even it is several meter aware and transmitting.

Kanok

You may just be deafening the receiver. Try putting a lot more distance between the transmitter and your antenna, or turning the gain down a lot.

You can also run view1090-fa --no-interactive to look at the raw messages to see if they’re decoding OK.

Here’s an example of DF18 surface position decoding (ADS-R in this case - the vehicle itself is presumably UAT-equipped and there’s a ground station rebroadcasting on 1090MHz - but regular ADS-B should be similar):

*96a566ad3aade286550e2351b09e;
CRC: 000000
RSSI: -2.7 dBFS
Time: 774216112647.25us
DF:18 AA:A566AD CF:6 ME:3AADE286550E23
 Extended Squitter (Non-Transponder) Surface position (7) (reliable)
  ICAO Address:  A566AD (ADS-R)
  Air/Ground:    ground
  Track/Heading  264.4
  Groundspeed:   18.5 kt
  CPR type:      Surface
  CPR odd flag:  even
  CPR latitude:  (82730)
  CPR longitude: (69155)
  CPR decoding:  none
  NACp:          8
  SIL:           2 (p <= 0.001%, unknown type)

*96a566ad3aade50417afcf53fe02;
CRC: 000000
RSSI: -2.7 dBFS
Time: 774216115431.25us
DF:18 AA:A566AD CF:6 ME:3AADE50417AFCF
 Extended Squitter (Non-Transponder) Surface position (7) (reliable)
  ICAO Address:  A566AD (ADS-R)
  Air/Ground:    ground
  Track/Heading  264.4
  Groundspeed:   18.5 kt
  CPR type:      Surface
  CPR odd flag:  odd
  CPR latitude:  33.94676 (33291)
  CPR longitude: -118.41867 (110543)
  CPR decoding:  global
  NIC:           8
  Rc:            0.186 km / 0.1 NM
  NACp:          8
  SIL:           2 (p <= 0.001%, unknown type)

You were right. The transponder on the vehicle saturated the receiver. Moving away and now I’ve got it decoded.

Thanks