Dump1090 is a simple Mode S decoder for RTLSDR devices
C JavaScript HTML Other
Pull request Compare This branch is 46 commits ahead, 157 commits behind mutability:master.
tedsluis Merge pull request #2 from saschaludwig/master
added squawk code description lookup, fonts are now loaded protocol d…
Latest commit a32d7a3 May 12, 2017
Failed to load latest commit information.
compat fixed a tiny change to an #ifndef comment Mar 31, 2016
debian removed 'if' statement. Thnx BX2ABT! Jan 3, 2017
exampledata added radar.kml Mar 25, 2017
img added images Mar 25, 2017
public_html added squawk code description lookup, fonts are now loaded protocol d… May 11, 2017
testfiles Initial commit of Dump1090, a simple Mode S decoder. Jan 5, 2013
tools Regenerate the ICAO ranges table based on data extracted from Annex 10. Sep 1, 2015
.gitignore Rebuild a basic faup1090 using the reworked network services bits. Jun 26, 2015
.travis.yml Try to get travis working again. Jan 21, 2016
COPYING GPL. Jan 20, 2015
LICENSE GPL. Jan 20, 2015
Makefile Merge pull request #111 from WIZARDISHUNGRY/mutability-openbsd Mar 31, 2016
README-dump1090.md GPL. Jan 20, 2015
README-json.md More CPR stats. Feb 19, 2015
README.md Move images from dropbox to github. Added table of contents. Jan 6, 2017
anet.c IPv6 support (in theory). Feb 16, 2016
anet.h IPv6 support (in theory). Feb 16, 2016
convert.c OS X compatibility cleanups. Sep 7, 2015
convert.h Factor out the sample -> magnitude conversion code and make everythin… Jun 15, 2015
cpr.c Fix decoding of even lat=0 + odd lat=0 which can have 3 results (-90,… Aug 17, 2015
cpr.h Import CPR changes from experimental branch. Jan 20, 2015
cprtests.c Fix some format strings that pass an unsigned int but use %d Apr 5, 2016
crc.c Add some testing code that looks for ambiguous syndromes that Jan 23, 2015
crc.h CRC reimplementation to be byte-at-a-time table-driven. Jan 20, 2015
demod_2000.c Clean up dependencies. Jun 26, 2015
demod_2000.h Rearrangements to the receive thread. Apr 9, 2015
demod_2400.c Be a bit more aggressive about rejecting noise in the space periods. Mar 20, 2016
demod_2400.h Experimental 2.4MHz Mode A/C demodulator. Mar 20, 2016
dump1090.c Handle errors from rtlsdr_get_device_usb_strings. Mar 21, 2016
dump1090.h Support multiple listening ports per listener type. Jan 24, 2016
faup1090.c Support multiple listening ports per listener type. Jan 24, 2016
icao_filter.c Don't hang if the ICAO hashtable fills up. May 30, 2015
icao_filter.h icao_filter.[ch] from the experimental branch. Jan 20, 2015
interactive.c If --hae is passed, report altitudes as HAE where available, with a H… Jan 1, 2016
mode_ac.c Populate verbatim message for mode a/c. Mar 20, 2016
mode_s.c Fix another string format where %d is used but an unsigned int is passed Apr 5, 2016
net_io.c fix compilation on OpenBSD Mar 31, 2016
net_io.h Support multiple listening ports per listener type. Jan 24, 2016
stats.c Support multiple listening ports per listener type. Jan 24, 2016
stats.h Don't use DF0/4/16/20 altitudes when DF17/18 altitudes are available. Jun 26, 2015
track.c Move Mode C altitude calc into mode A/C message decoding. Mar 20, 2016
track.h Treat zero-or-missing signal levels as "no information" and don't inc… Feb 24, 2016
util.c uint64_t (even at 12MHz) isn't going to overflow any time soon, don't… Feb 8, 2015
util.h uint64_t (even at 12MHz) isn't going to overflow any time soon, don't… Feb 8, 2015
view1090.c Support multiple listening ports per listener type. Jan 24, 2016


Dump1090-mutability Debian/Raspbian packages with heatmap & rangeview

Build Status

Dump1090-mutability is Oliver Jowett's fork of MalcolmRobb's version of dump1090 that adds new functionality and is designed to be built as a Debian/Raspbian package. This fork adds a heatmap and rangeview to it.

This version is licensed under the GPL (v2 or later). See the file COPYING for details.

Table of contents

Dump1090-mutability features

  • 2.4MHz "oversampling" support
  • doesn't run as root
  • supports FlightAware-TSV-format connections directly (same as the FlightAware version - no faup1090 needed)
  • can start from init.d, with detailed config via debconf or /etc/default/dump1090-mutability
  • can serve the virtual radar map via an external webserver (lighttpd integration included by default)
  • map view uses receiver lat/long given to dump1090 automatically
  • somewhat cleaned-up network code
  • tries to do things "the debian way" when it comes to config, package structure, etc
  • probably a bunch of other things I've forgotten..

Extra heatmap & rangeview features

  • display a csv heatmap file (a sample heatmap is included).
  • adjust the opacity, intensity and radius of the heatmap from a movable panel.
  • load a heatmap from the dump1090 web directory or from the heatmap panel in the browser.
  • display a KML range/altitude file (a link to a sample rangeview file is included)..
  • display distance range rings around the antenna if the ability to toggle it.
  • provide moveable legends for the altitude colors and range rings.
  • toggle plane colors between Altitude colors and adb-s/mlat position colors.
  • toggle the heatmap and the range/altitude view on and off (including their panel and legends).

Live view

Watch my dump1090 fork with heatmap and rangeview in the Google cloud: (This dump1090 runs on a 60-day free trail that is available until 20 june 2016)

Screenshots and video

Heatmap Dump1090 Heatmap

Rangeview Dump1090 rangeview

Youtube video: Dump1090 rangeview

Manual installation

To build it from source first install these packages:

apt-get update && apt-get install -y apt-utils build-essential ca-certificates cron curl debhelper dialog dpkg-dev git librtlsdr-dev libusb-1.0-0-dev lighttpd netcat net-tools pkg-config python2.7 wget 

You will need a librtlsdr0 package for Raspbian. There is no standard build of this. Oliver Jowett has built suitable packages that are available from this release page
Install these rtl-sdr packages with dpkg:

$ wget https://github.com/mutability/librtlsdr/releases/download/v0.5.4_git-1/librtlsdr0_0.5.4.git-1_armhf.deb
$ wget https://github.com/mutability/librtlsdr/releases/download/v0.5.4_git-1/librtlsdr-dev_0.5.4.git-1_armhf.deb
$ wget https://github.com/mutability/librtlsdr/releases/download/v0.5.4_git-1/rtl-sdr_0.5.4.git-1_armhf.deb
$ sudo dpkg -i librtlsdr0_0.5.4.git-1_armhf.deb
$ sudo dpkg -i librtlsdr-dev_0.5.4.git-1_armhf.deb
$ sudo dpkg -i rtl-sdr_0.5.4.git-1_armhf.deb

On X86 you should install these rtl-sdr packages:

apt-get update && apt-get install -y librtlsdr0 rtl-sdr 

Build dump1090 from source:

$ git clone https://github.com/tedsluis/dump1090.git
$ cd dump1090
$ dpkg-buildpackage -b

Install dump1090:

$ cd ..
$ dpkg -i dump1090-mutability_1.15~dev_armhf.deb

Configure the web server:

$ sudo lighty-enable-mod dump1090
$ sudo service lighttpd force-reload

This uses a configuration file installed by the package at /etc/lighttpd/conf-available/89-dump1090.conf.
It makes the map view available at http://IP_ADDRESS/dump1090

Step by step instructions

A step by step installation instruction for Raspbian is available at: http://discussions.flightaware.com/ads-b-flight-tracking-f21/heatmap-range-altitude-view-for-dump1090-mutability-v1-15-t35844.html

Dump1090 in a docker container

A dump1090 installation in a Docker container is also possible. Follow the instructions for X86_64/AMD64 and ARM(Raspbian) at github.com/tedsluis/docker-dump1090 or hub.docker.com/r/tedsluis/dump1090-mutability


By default it'll only ask you whether to start automatically and assume sensible defaults for everything else. Notable defaults that are perhaps not what you'd first expect:

  • All network ports are bound to the localhost interface only. If you need remote access to the ADS-B data ports, you will want to change this to bind to the wildcard address.
  • The internal HTTP server is disabled. I recommend using an external webserver (see below). You can reconfigure to enable the internal one if you don't want to use an external one.

To reconfigure, either use dpkg-reconfigure dump1090-mutability or edit /etc/default/dump1090-mutability. Both should be self-explanatory.


The default configuration logs to /var/log/dump1090-mutability.log (this can be reconfigured). The only real logging other than any startup problems is hourly stats. There is a logrotate configuration installed by the package at /etc/logrotate.d/dump1090-mutability that will rotate that logfile weekly.

Bug reports, feedback etc

Please use the github issues page to report any problems.

Ted Sluis