Please be sure to read Part 1 and Part 2, if you’re new to this series of articles.

All aircraft contain a piece of avionics technology called a transponder. This contains a receiver, and a transmitter. When the signal from ground radar is received, the transponder transmits a short burst on 1090 MHz, encoded with information.

There are several possible replies from an aircraft transponder:

Mode A replies with a target ID code

Mode B replies with the barometric altitude of the plane

Mode S, also called the Extended Squitter, is the one we’re interested in.

Mode S, also called ADS-B allows a variety of types of data to be sent from the transponder, including:

ICAO aircraft code (the tail number of the plane can be obtained from this)

Flight Number

Altitude

Location (Longitude and Latitude)

Heading

There’s an online document called ADS-B for Dummies that goes through the various messages, and their format.

Since the RTL dongles can receive 1090 MHz at a wide bandwidth, it turns out to be possible to use them as low cost transponder decoders. Very low cost. You can pick them up for around $15 on eBay. Dedicated ADS-B receiver packages are more. Much more. As in hundreds of dollars.

There are quite a few packages out for the RTL dongles that decode ADS-B transmissions. For Windows, there’s ADSB#:

Your links to Parts 1 and 2 of the article dump me back here! So no Parts 1 and 2. I’m OK with Part 3 because I’ve got this far using other links, but other readers may well want the two previous parts.

hey, the link to the ads-b for dummies is broken. not a problem for me, but, I do want to thank you for the awesome detailed information about making a ads-b receiver on the cheep and the software configuration to blast the bits to the mac. I’m working on a web based project (for a class) to create my own personal local flight tracker web sight with local ads-b data…

I notice the majority of A/C picked up report 0,0 lat/long. I’m having the same issue…is this because too few aircraft are using the 1090 ES position reporting ADS-B mode or because I’m too far from a ground station to receive the combined signal?

Great article! I’ve just started playing with one of these dongles on the Mac. Do you have any information about tuning via the TCP port? Allegedly rtl_tcp supports adjusting frequency and gain by sending data to it.

It does, although it doesn’t seem to be very well documented. You need to send data in binary format. To set the frequency, you send command0x01 followed by 4 bytes (of a 32 bit integer) for the frequency in Hz. Sample rate is command 0x02.