Plane Spotting with ADS-B

October 18, 2019

I wanted to select an aviation topic for this Lab Day, and in exploring potential projects found that an Automatic Dependent Surveillance-Broadcast (ADS-B) receiver and decoder could be built on a Raspberry Pi with open source software and inexpensive hardware from FlightAware.

ADS-B signals are broadcast by all commercial and general aviation aircraft and can be read by the public with a capable antennae and decoder.

ADS-B technology is the future of aviation, says the FAA, “with ADS-B, pilots for the first time see what controllers see: Displays showing other aircraft in the sky. Cockpit displays also pinpoint hazardous weather and terrain, and give pilots important flight information, such as temporary flight restrictions.” [1]

It will eventually replace the slower and less precise ground radar.

An in-aircraft ADS-B transceiver uses GPS to acquire its precise location, and then transmits the location and other data to a ground station, which in turn distributes the aircraft’s data to Air Traffic Control. The ground station can broadcast radar data, flight and weather information back to the aircraft as well.

There are two ADS-B frequencies: 978MHz and 1090MHz. the “978” has FREE features going TO the aircraft, such as traffic information service and real time weather, to encourage General Aviation pilots who fly below 18,000 feet MSL to use the 978 frequency.

For this Lab Day, I used freely available open source code to manage the decoding, but was curious what an ADS-B message looked like. A fine tutorial can be read at https://mode-s.org/decode/adsb/introduction.html

An ADS-B message is 112 bits long, and consists of 5 parts.

bits 1-5    6-8       9-32                33-88            89-112
+--------+--------+-----------+--------------------------+---------+
| DF     |  CA   |   ICAO |           DATA          | PI      |
+--------+--------+-----------+--------------------------+---------+
DF = Data Format; CA = Capability; ICAO = Unique ICAO aircraft identifier
DATA = Aircraft position, velocity, etc.; PI = Parity/Interrogator ID

 

Squits and Squawks

In researching the ADS-B technology, I kept encountering the amusing word “Squitter”, used to describe the  ADS-B transmission. A page on the Garmin site https://www.garmin.com/us/intheair/ads-b/squit/ cleared up the mystery.
By definition, the word squitter refers to a periodic burst or broadcast of aircraft-tracking data that is transmitted periodically by a Mode S transponder without interrogation from controller’s radar. Mode S ( which stands for mode ‘select”) technology was first developed in the mid-1970s as a way of using existing ground-based secondary surveillance radar (or SSR) to track onboard transponders more precisely and more efficiently — while reducing the number of interrogations required to identify and follow aircraft on the controller’s radar scope.
To greatly oversimplify the terminology, a “squawk” is a response a transponder makes to an ATC interrogation, while a “squit” is a transmission format that routinely sends aircraft ID and positional information without being interrogated. By reducing the need for back-and-forth interrogation/response over the air, the Mode S squitter works to minimize transmitted “chatter” in the system — and, thus, increase its target-handling capacity.

Eventually, when the transition to ADS-B is complete, the higher capacity ES datalink will allow controllers to see not only what each aircraft is doing, but what it intends to do. The route you have entered into your navigation system will be broadcast on the ES so controllers and other pilots can see where you intend to fly.

FlightAware

Receivers can be built using Raspberry Pis and the Pi Aware Package.

The Raspberry Pi with the FlightAware RF converter and band-pass filter

 

After buying the USB  RF converter, a band-pass filter and antenna, I downloaded the FlightAware ready-to-run RaspberryPi image. Simply load the image onto a blank MicroSD card, plug in the RF gear, power up the Raspberry Pi, then open a browser to the Pi’s IP address and you’ll see the aircraft within 150 nautical miles (approx 172 statute miles) transmitting an ADS-B signal. I was astonished at the amount of air traffic!

A browser screen shot of the ADS-B signals received on the Raspberry Pi. Hovering over any aircraft pops up details of the flight.

FlightAware is a digital aviation company and operates the world’s largest flight tracking and data platform. With global connectivity to every segment of aviation, FlightAware provides over 10,000 aircraft operators and service providers as well as over 13,000,000 passengers with global flight tracking solutions, predictive technology, analytics, and decision-making tools. (flightaware.com)

[1] FAA Equip ADS-B FAQ https://www.faa.gov/nextgen/programs/adsb/faq/#g1