Kristian Glass - Do I Smell Burning?

Aircraft tracking with a Raspberry Pi and FlightAware ADS-B receiver

Automatic dependent surveillance–broadcast (ADS–B) is a surveillance technology in which an aircraft determines its position via satellite navigation and periodically broadcasts it, enabling it to be tracked (Wikipedia)

Track aircraft with £30 of radio, £10 of antenna, plus a Raspberry Pi and assorted bits.

Why? Personally I enjoy “signal monitoring” - I love that we’re all swimming in a rich sea of information that we can tap into at any time if we just listen in the right way. Plus it’s kinda just neat to see, and some flight tracker networks will give you free accounts if you send them local data.

With a pretty basic setup I’m seeing as far as Corby (~40 miles / 70 km), Colchester (~60 miles / 100km), and Reading (~80 miles / 120km)!

Hardware

  • FlightAware Pro Stick Plus (~£30) - a Software-Defined Radio with a USB plug on one end, and SMA antenna connector on the other
  • ADS-B antenna (~£10) - literally the first one I found when searching
  • Raspberry Pi 3 B (~£30)
  • Micro SD card, micro USB cable, Pi PSU, etc.

There’s plenty of other options available, but most seemed either more expensive, more work, or just bigger. Plus I had the Pi sat around anyway.

This all went into a 0.9l Really Useful Box with only a little bit of frustration and hackery.

Software

I wanted something I could use in an already-configured relatively-vanilla Raspberry Pi install.

I’m using dump1090-fa, the FlightAware continuation-fork of dump1090-mutability. dump1090-mutability is packaged in Raspbian but didn’t immediately obviously work for me out of the box, and upstream says it’s no longer maintained.

dump1090-fa is alas a little more fiddly to get hold of, but the instructions on the FlightAware site are good.

That service listens for ADS-B messages, and (by default) writes them out to some JSON files.

It also has a dependency on lighttpd and ships with a lightweight static web frontend and config to render the JSON on an OpenStreetMap map and serve it all up as a nice little GUI at http://$server/dump1090-fa/.

Since I never remember that path, I added a little lighttpd config to redirect / there:

$ cat /etc/lighttpd/conf-enabled/99-doismellburning.conf
url.redirect += (
  "^/$" => "/dump1090-fa/"
)

I’m not yet running piaware - FlightAware’s monitoring and upload tool - I want to take a closer look at exactly what it does first.

Next

At some point I’ll start sending this data to one or more of the aggregators - FlightAware, OpenSky Network, ADS-B Exchange or similar.

Initial investigation wasn’t very reassuring. What I want is a trustworthy open-source application that will push data upstream and do little else. What I’ve found tends to be either opaque full-system images that try to do a whole lot more, and/or things that require me to expose a persistent service from my home connection, neither of which I want.

I should also sort a slightly better antenna mount…

Comments