Automatic Dependent Surveillance–Broadcast (ADS-B) is a precise satellite-based surveillance system. ADS-B Out uses GPS technology to determine an aircraft's location, airspeed and other data, and broadcasts that information to a network of ground stations via ADS-B out, which relays the data to air traffic control displays and to nearby aircraft equipped to receive the data via ADS-B In.
Operators of aircraft equipped with ADS-B In can receive weather and traffic position information delivered directly to the cockpit.ADS-B Out periodically broadcasts information about each aircraft, such as identification, current position, altitude, and velocity, through an onboard transmitter. ADS-B Out provides air traffic controllers with real-time position information that is, in most cases, more accurate than the information available with current radar-based systems. With more accurate information, ATC will be able to position and separate aircraft with improved precision and timing. There are several types of certified ADS-B data links, but the most common ones operate at 1090 MHz.
In this project, we are going to build a device that can essentially intercept these ADS-B out signals using an RTL-SDR and then decode it using Intel Edison's processing capabilities to obtain data on flights in the vicinity. The data thus obtained would be displayed on a LCD display.
This project is supported by BAL-IoTLAB (www.iotlab.in)
NooElec NESDR Mini 2 SDR & DVB-T USB Stick (RTL2832 + R820T2) with Antenna
Sainsmart LCD keypad shield
Arduino Breakout Board for Intel Edison
Portable 12V Lead Acid Battery
What is Software Defined Radio?
Radio components such as modulators, demodulators and amplifiers are traditionally implemented in hardware components. The advent of modern computing allows most of these traditionally hardware based components to be implemented into software instead. Hence, the software defined radio. This enables easy signal processing and thus cheap wide band scanner radios to be produced.
What is RTL-SDR?
RTL-SDR is a very cheap software defined radio that uses a DVB-T TV tuner dongle based on the RTL2832U chipset. With the combined efforts of Antti Palosaari, Eric Fry and Osmocom it was found that the signal I/Q data could be accessed directly, which allowed the DVB-T TV tuner to be converted into a wideband software defined radio via a new software driver. Essentially, this means that a cheap TV tuner USB dongle with the RTL2832U chip can be used as a computer based radio scanner. This sort of scanner capability would have cost hundreds or even thousands of dollars just a few years ago. The RTL-SDR is also often referred to as RTL2832U, DVB-T SDR or RTL dongle.
The NooElec Mini 2 SDR that we are using in this device is a RX only SDR. It uses the R820T2 made by Rafael Micro, to provide increased sensitivity and improved SNR. They have a frequency capability of approximately 25MHz-1750MHz.
Since it uses an USB interface it can be directly interfaced with Edison that offers out of the box USB capabilities. Once we connect it to the Edison we will have to configure it to run as a device that can decode ADS-B data by installing the appropriate drivers
In order to copy files to and from Edison using WinSCP
http://edison.local – To get the IP address once connected to WiFi and serially connected to PC
Setup ssh over Intel Edison
Get the IP from the above address and use it in WinSCP to access Edison files
The parsing of the RX ADS-B signals is beind done on the Edison. Dump 1090 is a Mode S decoder specifically designed for RTLSDR devices.
https://github.com/MalcolmRobb/dump1090
We use this to decode the received signal and extract the unique Hex ID of the flight , Speed , Latitude , Longitude, Aviation transponder interrogation mode, Flight number and other parameters. The decoder uses the Mode S aviation transponder interrogation mode format.
In order to start intercepting flight data, copy the following script and python file into your project folder
https://github.com/rajesh-s/Edison_flight_tracker/...
https://github.com/rajesh-s/Edison_flight_tracker/...
The script runs the Malcolm's decoder which supports different modes such as interactive, raw etc to log the dumped ADS-B data. The python file is used to display the logged data on the LCD Module which we will get to in a while. The different modes to display the logged data can be modified by going through the script file.
The sequence of operation being followed here is that we first log the data using the decoder script into a txt file using the raw mode, we then use the python file to perform sub string and keyword detection of essential parameters to be displayed and also display it on the LCD module.
https://github.com/rajesh-s/Edison_flight_tracker/... (Or use the attached zip)
So upon running the script.sh file it not only causes the dump1090 decoder to generate the real time log file but also parses the text in the log txt file periodically and displays it on the LCD.
In order to make the device robust we can write a script to invoke the decoder script discussed in the previous step and put it in the init.d folder so that these scripts run automatically at run time and every time the Edison is booted up.
https://github.com/rajesh-s/Edison_flight_tracker/...
Due to the constraints of the small LCD panel, for debugging or observing elaborate details about the intercepted flights just run the command
$/rtlsdr/dump1090/./dump1090 --raw
#or any other mode as required.
Make sure you keep the Edison plugged into a portable 12V power supply if you intend to carry it around and track flights.
There you have it, your very own inexpensive flight interceptor. You can now know everything about the flight that you just spotted in the sky, everything from where it's heading to, where it started and what speed it's going at. This device can now be used to track and display flight data anytime , anywhere even without a PC.