SDR – ADS-B Decoding: dump1090 (Linux/OSX)


Previously, I covered RTL1090 to observe ADS-B signals on the Microsoft Windows Operating System. In this post post I will walk you through the simple operation of the Linux & OSX equivalent dump1090.  This Open-Source package performs just as good as its Windows counterpart, maybe even better as no additional mapping software is necessary.

Source Code

git clone


You’ll need a compiler and make-tools (on OSX this means access to the developer environment and Xcode), to compile the source.
$ cd dump1090
$ make


Default Options:
$ ./dump1090 -h
Unknown or not enough arguments for option '-h'.
--device-index Select RTL device (default: 0).
--gain Set gain (default: max gain. Use -100 for auto-gain).
--enable-agc Enable the Automatic Gain Control (default: off).
--freq Set frequency (default: 1090 Mhz).
--ifile Read data from file (use '-' for stdin).
--interactive Interactive mode refreshing data on screen.
--interactive-rows Max number of rows in interactive mode (default: 15).
--interactive-ttl Remove from list if idle for (default: 60).
--raw Show only messages hex values.
--net Enable networking.
--net-only Enable just networking, no RTL device or file used.
--net-ro-port TCP listening port for raw output (default: 30002).
--net-ri-port TCP listening port for raw input (default: 30001).
--net-http-port HTTP server port (default: 8080).
--net-sbs-port TCP listening port for BaseStation format output (default: 30003).
--no-fix Disable single-bits error correction using CRC.
--no-crc-check Disable messages with broken CRC (discouraged).
--aggressive More CPU for more messages (two bits fixes, ...).
--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 Strip IQ file removing samples < level.
--debug Debug mode (verbose), see README for details.
--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.

Simple execution/dump : $ ./dump1090
Which will dump decoded ADS-B receptions:
For a live feed use:
./dump1090 --interactive

Or more interestingly to start a webservice that will utilise Google-Maps, and draw simple arrows to represent planes (if you cant afford a PlanePlotter licenses):
./dump1090 --enable-agc --aggressive --net --net-http-port 8080
Then open up your web-browser to to view the air-traffic…



Other Links