Cheap ADS-B on amateur drones
ADS-B is the name of a radio transponder system used by aircraft to broadcast their position, velocity and other information to other aircraft and to air traffic control. It enhances safety by making aircraft more visible to pilots and ground controllers and can even work in concert with automatic collision avoidance systems (like TCAS, the "traffic collision avoidance system").
You can see ADS-B in action at flightradar24.com, where hundreds of volunteers with special receivers collect data and send it to the site to be mapped in realtime. There are also radarspotting enthusiasts around the world who meticulously log every aircraft picked up by their radios, building databases of registry and location info, occasionally spotting prizes like Air Force 1 or rare military aircraft like the E-6B "Doomsday planes" that would take control of U.S. nuclear forces if ground-based control centers were disabled.
Not every plane uses ADS-B yet. Approximately 70% of passenger planes in Europe and 30% in the U.S. currently use it, but the FAA will require most aircraft to have it by 2020.
There are security concerns regarding ADS-B. You can take a look at the presentations "Hackers + Airplanes" and "Ghost is in the Air (Traffic)" for background, but the basic idea is that ADS-B is unencrypted and trivial to spoof.
Nick Foster has demonstrated spoofing ADS-B messages from a flight sim and feeding them to a receiver:
While the security issues still need to be worked out, ADS-B-based sense-and-avoid technology is considered critical to plans to integrate unmanned aircraft into North American airspace. The idea is that drones, which are often hard to see and spot on radar, would broadcast their own coordinates and maintain safe separation from other ADS-B-equipped aircraft. It's an area of active research:
- NASA's centennial drone challenge requires contest entrants to use ADS-B
- NASA Flight Tests New ADS-B Device on Ikhana UAS
- General Atomics Successfully Tests ADS-B Surveillance System Aboard Predator
In February 2012, a Linux kernel developer discovered that a cheap USB digital TV receiver could be used as a software-defined radio--that is, a radio that could be tuned to any frequency between about 20 MHz and 2 GHz, including the 1090 MHz frequency that ADS-B signals are broadcast on. Blog posts like "Tracking planes for $20 or less" show how easy it is to buy one of these receiver dongles and use it to track aircraft more than 100 miles away.
And now you can track aircraft from your amateur drone.
- Start with an AR.Drone (or other ARM-based amateur drone).
- Buy a $30 USB dongle. See the rtl-sdr wiki for recommendations.
- Compile and install the dump1090 Mode S/ADS-B decoder software with my easy-to-use cross-compiler setup: ardrone-dump1090-cross-compiler
- Plug in the receiver.
These are some of the packets I collected on my first test flight:
You will notice that none of the messages I received included latitude and longitude. My tests on the AR.Drone while it wasn't flying were much more successful; I was able to successfully decode many more packets, including messages containing Lat/Lon coordinates:
My guess is that during flight there's a lot of RF interference, and I will have to experiment with antenna placement and receiver gain. Maybe the best configuration will be to trail the antenna below the drone, at the end of its USB cable, like a towed array sonar.
Finally, here's an example of using dump1090's built-in map server (the server runs on the drone, I connect to it from my laptop):