Flight tracking 101: How to track airplanes from first principles

The world of flight tracking is in the spotlight after Elon Musk had a meltdown about automated flight tracker accounts, specifically one run by college student Jack Sweeney that tracked Elon’s private jets. Elon and Twitter blocked hundreds of automated and human accounts (including mine!) that had recently tweeted about flight tracking.

While these permanent suspensions were eventually (largely) rescinded, but the attention on flight tracking sites and tools has persisted. This post will serve as a quick primer on flight tracking from first principles and is adapted from a Twitter and Mastodon thread I posted in mid-December.

Example of tail numbers painted on two Pilatus PC-12 turboprop airplanes

Let’s start with some background. Every single (legally operated) airplane in the world has registration or tail numbers… these are the big giant alphanumeric designators painted on the sides of airplanes.

All airplanes have them, and each country has a different format for them. They’re kind of like license plates in that each one is unique but unlike license plates, the information about the airplane and its owner or operator is all easily accessible by the public in the United States via the FAA’s own registry search. You can use this tool to search for any tail or “n” number and quickly see a bunch of interesting details about that aircraft.

An example of an airplane transponder control panel, in this case a variant used in a commercial airliner. Hardware varies from model to model but their functions are standardized.

Airplanes broadcast a bunch of different information using an onboard radio transceiver called a transponder. Basically a transponder is a fancy radio that sends out data over the air to ATC.

In recent years, the amount and types of data you can broadcast has increased dramatically thanks to a technology standard called ADS-B. The precise details of the spec aren’t important, but all of this information is broadcast openly “in the clear” and is not encrypted.

A helpful diagram that shows how airplanes broadcast data via ADS-B which can be received by ground stations and satellites.

Because all of this is broadcast openly, the public is free to receive and decode these messages. Airplanes and the National Airspace System heavily rely on government operated systems and services paid for by taxpayers and with ADS-B, you can get a window into this operation and see exactly what your tax dollars paid for!

All you need is <$100 of hardware and some very basic technical know-how and you can set up your own receiver. Here’s mine.

My ADS-B receiver follows a common blueprint and is based off of an inexpensive USB receiver connected to a Raspberry Pi computer.

A lot of people are nerds like me and have receivers. You can view this data locally which is a lot of fun, but more importantly you can share this data to flight tracking services which aggregate their network of receivers into a single service to make flight tracking accessible to everyone, not just folks that take the time to build their own receiver stations.

My receiver feeds multiple services including FlightAware, ADS-B Exchange and FlightRadar24. There are other services, but these are the most popular and ADS-B exchange is unique in that it’s completely free to the public.

It’s also unique in that it doesn’t block flight tracking data and that’s super cool for a variety of reasons.

Screenshot of ADS-B Exchange showing a “Falcon Virgo” training exercise in DC. These exercises use Civil Air Patrol small airplanes to simulate a breach of the Capital’s airspace and allow military aircraft to practice interception procedures.

Blocked airplanes are either military aircraft or private (general aviation) planes that are part of an FAA or international blocking program. In the US, the two main programs from the FAA are LADD and PIA.

LADD works on the surface level… flight tracking sites that use the FAA’s data as part of their service agree to not display that airplane’s data.

But this doesn’t change the fact that all airplanes with an operating ADS-B capable transponder are still broadcasting their info.

So the FAA has a deeper level program called PIA or Privacy ICAO aircraft Address program.

Every airplane’s transponder has an encoded version of their tail number called an ICAO Hex code. By signing up for PIA, you get permission from the government to use a different Hex code that isn’t the one that’s associated with your tail number. The pool of PIA hex codes is based on all of the unassigned tail numbers in the FAA’s registry.

If you’re an operator enrolled in PIA, you can change this as frequently as every 20 days if you’d like.

Because the identifier your airplane broadcasts has now changed, even if you have your own ADS-B receiver, it won’t know what aircraft it’s seeing. However, PIA thankfully has some easy ways to circumvent this blocking because of some key limitations of how it works.

First, airplanes that are enrolled in PIA still have a physical tail number and they’re not allowed to change/hide it. So if you can see the airplane with your eyeballs and correlate it to what’s on your ADS-B receiver or on a flight, now you know what hex code matches to that airplane.

Second, PIA only works in domestic US airspace. So if that airplane flies internationally, you have an opportunity to track it and correlate that operational information with what little you may know about its domestic operations to make a match and uncover the PIA hex.

That sounds like a lot of work unless you’re an airplane nerd and that’s true! Luckily many of us nerds have done that work for you and many interesting aircraft that are blocked via PIA or other “privacy” programs have already been tracked down and there are open source databases of tail numbers and their current PIA hex code.

This is partly why ADS-B Exchange is so great. They update their own database with this info and make it easy to learn about interesting aircraft.

Example of a PIA hex database

You can go directly to the last known track or current track (if the plane is flying) by going to “https://globe.adsbexchange.com” and adding the query “?icao=[hex code]”

Showing Elon’s jet on ADS-B Exchange. Note while the aircraft is/was enrolled in PIA, in all recent flights it has operated without it’s privacy code and broadcasts its standard hex code.

That will show any PIA blocked plane right away. Don’t know the hex code? This updated doc has a list of PIA blocked aircraft and their current hex codes.

Last thing, if you ever get stuck, there’s a big community of airplane nerds that is excited to help you out. For instance, https://reddit.com/r/ADSB/ can be a great source of airplane tracking info.

Part two will cover the “why” of flight tracking including a brief overview of why it’s absolutely legal despite what Elon or his fans may say. Happy tracking!