Requirements:
1. Laptop or computer running Ubuntu (preferably Ubuntu 14.04)
2. RTL-SDR (you can get on ebay for INR 1800)
3. Antenna (Generally comes with the SDR dongle)
4. Dump1090 installed on Ubuntu
Fig. 1: Image showing hardware components used for Automatic Depenadant Surveillance Broadcast
Summary:
ADS-B stands for Automatic Dependent Surveillance Broadcast which is used by commercial airplanes to broadcast their latitude and longitude along with some other info to the air traffic controller.
As this information is transmitted at 1090MHz, we can easily receive these ADS-B signals using our rtl-sdr and then decode it using a software. Here I’ll be using dump1090 to decode ADS-B signals on my Linux machine.
The reason I have chosen dump1090 is that it not only decodes ADS-B signals but also creates a Google map web server where it displaces the location of airplanes whose ADS-B signals are being received.
Description:
Installation of dump1090:
You can download and follow this link for installation of dump1090 on your Linux machine.
Getting Started:
Plug in your rtl-sdr to your Linux machine and run this command on terminal
$ rtl_test -t
If everything works fine, you’ll get an output similar to this one
Found 1 device(s):
0: Realtek, RTL2838UHIDIR, SN: 00000001
Using device 0: Generic RTL2832U OEM
Found Rafael Micro R820T tuner
Supported gain values (29): 0.0 0.9 1.4 2.7 3.7 7.7 8.7 12.5 14.4 15.7 16.6 19.7 20.7 22.9 25.4 28.0 29.7 32.8 33.8 36.4 37.2 38.6 40.2 42.1 43.4 43.9 44.5 48.0 49.6
[R82XX] PLL not locked!
Sampling at 2048000 S/s.
No E4000 tuner found, aborting.
Now in order to use dump1090, we must know about all the arguments it can take and their meaning too. For that run this command.
$ dump1090 –help
This command will show a brief manual of dump1090
—————————————————————————–
| dump1090 ModeS Receiver Ver : 1.07.1908.13 |
—————————————————————————–
–device-index <index> Select RTL device (default: 0)
–gain <db> Set gain (default: max gain. Use -100 for auto-gain)
–enable-agc Enable the Automatic Gain Control (default: off)
–freq <hz> Set frequency (default: 1090 Mhz)
–ifile <filename> Read data from file (use ‘-‘ for stdin)
–interactive Interactive mode refreshing data on screen
–interactive-rows <num> Max number of rows in interactive mode (default: 15)
–interactive-ttl <sec> Remove from list if idle for <sec> (default: 60)
–interactive-rtl1090 Display flight table in RTL1090 format
–raw Show only messages hex values
–net Enable networking
–modeac Enable decoding of SSR Modes 3/A & 3/C
–net-beast TCP raw output in Beast binary format
–net-only Enable just networking, no RTL device or file used
–net-http-port <port> HTTP server port (default: 8080)
–net-ri-port <port> TCP raw input listen port (default: 30001)
–net-ro-port <port> TCP raw output listen port (default: 30002)
–net-sbs-port <port> TCP BaseStation output listen port (default: 30003)
–net-bi-port <port> TCP Beast input listen port (default: 30004)
–net-bo-port <port> TCP Beast output listen port (default: 30005)
–net-ro-size <size> TCP raw output minimum size (default: 0)
–net-ro-rate <rate> TCP raw output memory flush rate (default: 0)
–lat <latitude> Reference/receiver latitide for surface posn (opt)
–lon <longitude> Reference/receiver longitude for surface posn (opt)
–fix Enable single-bits error correction using CRC
–no-fix Disable single-bits error correction using CRC
–no-crc-check Disable messages with broken CRC (discouraged)
–phase-enhance Enable phase enhancement
–aggressive More CPU for more messages (two bits fixes, …)
–mlat display raw messages in Beast ascii mode
–stats With –ifile print stats at exit. No other output
–onlyaddr Show only ICAO addresses (testing purposes)
–metric Use metric units (meters, km/h, …)
–snip <level> Strip IQ file removing samples < level
–debug <flags> Debug mode (verbose), see README for details
–quiet Disable output to stdout. Use for daemon applications
–ppm <error> Set receiver error in parts per million (default 0)
–help Show this help
Debug mode flags: d = Log frames decoded with errors
D = Log frames decoded with zero errors
c = Log frames with bad CRC
C = Log frames with good CRC
p = Log frames with bad preamble
n = Log network debugging info
j = Log frames to frames.js, loadable by debug.html
Now from this, we want an interactive session so that we can easily view incoming decoded ADS-B signals from the airplane in a tabular format. Therefore, we will pass “–interactive” as one of the arguments.
We not only want decoded information from ADS-B signal but would also like to plot and see it graphically on a map, for which other argument will be “–net”. This will create a Google map web server on the points where airplanes can be plotted using the data from dump1090.
Now, just enter the following command
$ dump1090 –interactive –net
and you’ll see something like this in your terminal
Hex Mode Sqwk Flight Alt Spd Hdg Lat Long Sig Msgs Ti|
——————————————————————————-
Now, fire up your browser and go to, http://localhost:8080 , and you’ll see airplanes near you being shown on Google maps along with all the other relevant data.
Project Video
Filed Under: Electronic Projects
Filed Under: Electronic Projects
Questions related to this article?
👉Ask and discuss on EDAboard.com and Electro-Tech-Online.com forums.
Tell Us What You Think!!
You must be logged in to post a comment.