As part of the next generation air traffic control system, regulators in the United States and abroad will require most aircraft to be equipped with avionics by 2020 that automatically broadcast identity, position, and velocity data at regular intervals using a standard radio messaging protocol. This technology, known as Automatic Dependent Surveillance Broadcast (ADS-B), is already in use by the majority of aircraft today and can easily be received on the ground by anyone using cheap Software Defined Radio (SDR) hardware purchased online.
Because ADS-B messages can come from hundreds (if not thousands) of aircraft operating in the sky in parallel at any given time, Elixir is well suited to elegantly handle the problem of tracking them all concurrently in realtime. In this talk, we'll explore highly concurrent approaches to solving this problem using the tools and techniques offered by OTP and GenStage. We'll examine how SDR hardware support is provided using Nerves on an embedded Linux platform such as Raspberry Pi. Finally, we'll take a look at some ways we can visualize all of this flight activity on the web in realtime using Phoenix.
Links
Squitter app: https://github.com/electricshaman/squitter
Parts List: https://www.dropbox.com/s/prkyoin528ylvcz/Squitter%20Parts%20List.pdf?dl=0
ADS-B on FlightAware: http://flightaware.com/adsb/
ADS-B Decoding Guide: https://adsb-decode-guide.readthedocs.io/en/latest/index.html
Custom Nerves System for SDR on Raspberry Pi 3:
https://hex.pm/packages/nerves_system_rpi3_sdr
LeafletJS: http://leafletjs.com/
Hobbyist's Guide to the RTL-SDR: https://www.amazon.com/Hobbyists-Guide-RTL-SDR-Software-Defined/dp/1514716690
RTL-SDR Amazon.ca: https://www.amazon.ca/gp/product/B01GDN1T4S
RTL-SDR Amazon.com: https://www.amazon.com/dp/B01GDN1T4S