Listening to aircraft transponders with a Raspberry Pi

Last year’s big hack was software-defined radio; a small USB TV tuner that could listen in on radio broadcasts anywhere between 64 and 1200 MHz. This year, it’s all about the Raspberry Pi, so it’s surprising we’re only just now seeing a mashup of these two pieces of hardware. [Corq] is using a Raspi and RTLSDR TV tuner to listen in on aircraft transponders, and getting a whole bunch of data from aircraft flying overhead.

Even though the ADS-B decoder [Corq] is using is written for OS X, he’s reading the data coming from the USB TV tuner over the network with a program called Dump1090. This program allows [Corq] to attach his SDR to a Raspbery Pi and put it somewhere the antenna will get good reception – an attic, or an outdoor weatherproof case – and stream data to his desktop over a WiFi or network connection.

With a USB TV tuner and a Raspberry Pi, [Corq] is able read the tail numbers, altitude, latitude, longitude, speed, heading, and even the type of aircraft currently flying over his house. That’s cool enough, but the fact that he can effectively do this over the Internet makes it a brilliant hardware mashup.

30 thoughts on “Listening to aircraft transponders with a Raspberry Pi

  1. I thought aircraft transponders only squawked a code when interrogated (hit by radar). Or do they just do it every so often, too?

    1. They squawk when interrogated. There’s radar coverage over most populated areas, and even over many unpopulated areas, at least at higher altitudes. So for practical purposes, they’re squawking every so often. When they sqawk in response to an interrogation, anyone can pick up that response, as long as they have a reasonable line of sight to the aircraft.

  2. @vpoko the mode-C tarnsponder you are referring to is actually a different system than ADS-B. Mode-C transponders respond to interogations with their MSL altitude and some other info like tail number and “squawk code”. ASD-B on the other hand is a newer system that involves unsolicited information being squawked out. I think it also has provisions for two way communication.

  3. erm.. .You gotta be kiddin’ me! This is how you get to hackaday?
    You can find the ADSB Decoder in the standard toolchain of rtltcp. You just have to start it!

    Soo.. Where exactly is the point on this?
    flightradar24.com already uses raspis for data reception since months..

    1. Please, kind sir, regale us with the tales of your lofty hacks! Certainly someone with your knowledge and bearing has crafted hacks far more worthy for this fine establishment?

    2. Indeed, thought the same thing here. I ported the code to C# a while back, should maybe release it so the windows boys can enjoy ADS-B too without a hassle.

          1. @Neckbeard: Open up your eyes. I already linked my github profile.
            also you could look over to my webpage…

  4. I made a motorized rig for my cheap telescope to track and photograph passing aircraft from ADS-B data. Started with porting the code from rtlsdr to C# and use an old CNC controller to drive the steppers over serial link. Maybe I should start a blog.

    1. yeah start a blog, thats great konjunction of technologies :) at least publish your work somewhere.. and while on the subject, its funny how one could use the data for more than tracking a airplane, so maybe authoroties should be at least paying attention :D

  5. The 1960 design (that’s what we use today) transponder only sends out barometric pressure (called the secondary return) and 4 digit squawk; NOT altitude and that alone is absolutely non contributory data to the lateral information, which is collected by the “primary” return which is the 1920s technology of simple directional echo measurement. The pressure is converted into altitude and combined with the primary echo to plot what one sees on TV as the controller scope image. On top of that the possible squawk codes are less than 9999. I have to dial the knobs next time to see where each digit stops – pretty sure it stops at 7 or 6.

    Only the squawk part is readable since it is primitive yet digital data. So even if one was to come up with a squawk listening device that would be useless for lateral plots.

    Now what I still wait is for someone to come up with a cheap mode-C receiver. Mode-C is a broadcast by the ground stations back up in the air with the full mixed data from primary and secondary. It is intended to be received by aircraft equipped with Mode-C receiver and plot it “like a real” radar.

    Here you can see NOT just planes; you can see anything that has an RF reflective paint and happens to fly. ADS-B is very cool but the moment you turn it OFF you disappear from the sky. It is like a volunteering your position by self-reporting it. With Mode-C you won’t be seen only if the multi-kW radar breaks down OR you are just not there :)

    1. The squawk codes are octal, 0-7 for each digit. Special codes start with a 7 (7000 for uncontrolled VRF, 7700 for an emergency, 7600 for a radio failure etc.

  6. I would like to run this completely on the PI then NEMA strings for aircraft locations could be output to aviation GPS software for collision avoidance LK8000 and XC-Soar are both opensource gliding applications that can take this data in NEMA and display it on a moving map.

  7. Yeah, this was the *first* thing I did when I got a Pi, hardly groundbreaking. What’s much more interesting is using rtl_sdr piped into multimodeNG to decode pager messagers. Seeing as this made it into HAD I’ll put together a submission when I’m back with my equipment.

  8. It stinks that there is little to no ADS-B traffic in the central US. I have read that it is mostly from international flights, and the FAA has not mandated it until 2020 in th US. I have let mine run for 24 hours with little position information.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s