Fork of the Flightaware dump1090 code base with an additional branch for integration with the EOSS SDR system.
Go to file
Oliver Jowett 5782ad7468 Fix a stupid fifo bug that would orphan enqueued data.
This magically didn't really affect normal operation, because in
normal operation the demodulator can consume data faster than it
is produced, so the fifo never grows beyond 0-1 items.

However in cases where the demodulator is slow and the producer
is fast (e.g. reading from a file and running with lots of debug on)
the fifo would lose buffers as soon as it had more than one pending.
2021-02-02 17:51:25 +08:00
bladerf bladeRF docs and custom bitstream. 2017-02-03 00:36:41 +00:00
compat Try to clean up the compat stuff a bit 2020-08-07 15:08:45 +08:00
cpu_features Move all converters to starch-based implementations (#97) 2021-01-21 19:45:00 +08:00
debian Move all converters to starch-based implementations (#97) 2021-01-21 19:45:00 +08:00
debian-jessie Move all converters to starch-based implementations (#97) 2021-01-21 19:45:00 +08:00
debian-stretch Move all converters to starch-based implementations (#97) 2021-01-21 19:45:00 +08:00
dsp Update starch to upstream commit 521d7632a1076733030017a571facd1cd304e669 2021-02-02 11:34:37 +08:00
oneoff Move all converters to starch-based implementations (#97) 2021-01-21 19:45:00 +08:00
public_html Fix up long decimal issue for min/max altitude values 2020-12-14 23:24:45 +00:00
starch Update starch to upstream commit 521d7632a1076733030017a571facd1cd304e669 2021-02-02 11:34:37 +08:00
testfiles Initial commit of Dump1090, a simple Mode S decoder. 2013-01-05 13:52:25 +01:00
tools Update README with current compressed csv file 2020-09-24 06:10:58 +00:00
wisdom Move all converters to starch-based implementations (#97) 2021-01-21 19:45:00 +08:00
.gitattributes Compress vrs.csv since it's basically readonly. 2016-09-10 17:43:10 +01:00
.gitignore Move all converters to starch-based implementations (#97) 2021-01-21 19:45:00 +08:00
.travis.yml More build deps 2019-03-04 15:43:45 +00:00
COPYING GPL. 2015-01-20 16:49:01 +00:00
Jenkinsfile Remove dump1090.deb reference in Jenkinsfile breaking builds 2020-09-11 22:12:24 +00:00
LICENSE GPL. 2015-01-20 16:49:01 +00:00
Makefile Move all converters to starch-based implementations (#97) 2021-01-21 19:45:00 +08:00
Makefile.cpufeatures Move all converters to starch-based implementations (#97) 2021-01-21 19:45:00 +08:00
README-json.md Expose modea_hit / modec_hit in aircraft.json 2020-08-24 15:03:17 +08:00
README.md Update FreeBSD instructions to use pkg not ports for pkgconf 2020-08-24 14:15:09 +08:00
ais_charset.c Put ais_charset in its own file to make building commb tests a little easier 2019-05-02 17:24:26 +08:00
ais_charset.h Put ais_charset in its own file to make building commb tests a little easier 2019-05-02 17:24:26 +08:00
anet.c IPv6 support (in theory). 2016-02-16 13:00:55 +00:00
anet.h IPv6 support (in theory). 2016-02-16 13:00:55 +00:00
comm_b.c Remove comm-b "consistency" bonuses, look at inconsistent data only. 2019-05-02 18:19:27 +08:00
comm_b.h WIP: More Comm-B & ADS-B decoding. 2017-06-15 18:07:40 +01:00
convert.c Move all converters to starch-based implementations (#97) 2021-01-21 19:45:00 +08:00
convert.h Whitespace changes only: cleaning up trailing whitespace at EOL 2017-06-15 18:17:07 +01:00
cpr.c fix -Wmissing-declaration warnings 2020-06-29 16:42:21 -07:00
cpr.h Whitespace changes only: cleaning up trailing whitespace at EOL 2017-06-15 18:17:07 +01:00
cprtests.c Whitespace changes only: cleaning up trailing whitespace at EOL 2017-06-15 18:17:07 +01:00
cpu.c Move all converters to starch-based implementations (#97) 2021-01-21 19:45:00 +08:00
cpu.h Move all converters to starch-based implementations (#97) 2021-01-21 19:45:00 +08:00
crc.c Whitespace changes only: cleaning up trailing whitespace at EOL 2017-06-15 18:17:07 +01:00
crc.h Whitespace changes only: cleaning up trailing whitespace at EOL 2017-06-15 18:17:07 +01:00
demod_2400.c Factor out FIFO handling; reimplement as a linked list, not a circular buffer. 2020-08-05 19:50:38 +08:00
demod_2400.h Whitespace changes only: cleaning up trailing whitespace at EOL 2017-06-15 18:17:07 +01:00
dsp-types.h Increase alignment requirements of uc8_t to avoid warnings when interpreting as uint16_t 2021-02-01 11:26:39 +08:00
dump1090.c Support --stats-every with intervals <60 seconds. Add --json-stats-every option 2021-02-01 15:18:42 +08:00
dump1090.h Support --stats-every with intervals <60 seconds. Add --json-stats-every option 2021-02-01 15:18:42 +08:00
faup1090.c Clean up linkage of struct Modes to actually make sense. 2020-06-06 21:52:04 +08:00
fifo.c Fix a stupid fifo bug that would orphan enqueued data. 2021-02-02 17:51:25 +08:00
fifo.h Factor out FIFO handling; reimplement as a linked list, not a circular buffer. 2020-08-05 19:50:38 +08:00
icao_filter.c Avoid false positives for address 000000 in the icao filter hashtable 2020-10-08 19:30:06 +08:00
icao_filter.h Whitespace changes only: cleaning up trailing whitespace at EOL 2017-06-15 18:17:07 +01:00
interactive.c Merge branch 'dev' into fix-interactive-ttl 2021-02-01 11:48:07 +08:00
mode_ac.c More WIP 2017-12-07 10:34:08 -06:00
mode_s.c Treat ADS-R as a separate source type (higher priority than TIS-B, lower priority than direct ADS-B) 2019-12-11 12:43:19 -06:00
mode_s.h Put ais_charset in its own file to make building commb tests a little easier 2019-05-02 17:24:26 +08:00
net_io.c Support --stats-every with intervals <60 seconds. Add --json-stats-every option 2021-02-01 15:18:42 +08:00
net_io.h faup1090: write _v on every line, bump TSV_VERSION 2019-03-19 18:10:38 +00:00
prepare-build.sh Drop wheezy support. 2020-08-06 13:44:07 +08:00
sdr.c Handle builds with no SDR support better. 2020-08-11 12:55:17 +08:00
sdr.h Factor out sdr thread CPU monitoring 2020-08-05 19:50:38 +08:00
sdr_bladerf.c Clean up the bladerf driver a bit 2020-08-05 19:50:38 +08:00
sdr_bladerf.h Whitespace changes only: cleaning up trailing whitespace at EOL 2017-06-15 18:17:07 +01:00
sdr_hackrf.c Fix hackrf compilation when uint64_t is not a long 2020-08-05 19:50:38 +08:00
sdr_hackrf.h Added support for HackRF One 2019-12-09 18:55:40 -03:00
sdr_ifile.c Factor out FIFO handling; reimplement as a linked list, not a circular buffer. 2020-08-05 19:50:38 +08:00
sdr_ifile.h Whitespace changes only: cleaning up trailing whitespace at EOL 2017-06-15 18:17:07 +01:00
sdr_limesdr.c limesdr: use --gain (in dB) if --limesdr-gain was not specified 2020-10-01 13:53:50 +08:00
sdr_limesdr.h limesdr: basic implementation of LimeSDR support 2020-07-29 23:09:27 +03:00
sdr_rtlsdr.c Use a bounce buffer for rtlsdr on ARM to work around zero-copy problems. 2020-08-05 19:50:38 +08:00
sdr_rtlsdr.h Whitespace changes only: cleaning up trailing whitespace at EOL 2017-06-15 18:17:07 +01:00
stats.c Make stats display fixed-width. 2021-02-01 12:52:01 +08:00
stats.h Add stats for unreliable tracks 2019-11-27 21:41:33 +08:00
track.c Add missed expiry code for emergency / nac_v fields; initialize emergency_valid. 2021-01-15 18:20:50 +08:00
track.h Interactive mode updates 2020-09-29 06:23:55 -06:00
util.c normalize_timespec: handle tv_nsec == 1000000000 correctly 2020-11-17 19:59:47 +08:00
util.h fix a trivial copy-paste typo in comments 2020-08-31 22:53:14 +03:00
view1090.c fix merge indentation 2021-02-01 11:50:43 +08:00
wisdom.arm Move all converters to starch-based implementations (#97) 2021-01-21 19:45:00 +08:00
wisdom.generic Move all converters to starch-based implementations (#97) 2021-01-21 19:45:00 +08:00
wisdom.x86 Move all converters to starch-based implementations (#97) 2021-01-21 19:45:00 +08:00

README.md

dump1090-fa Debian/Raspbian packages

dump1090-fa is a ADS-B, Mode S, and Mode 3A/3C demodulator and decoder that will receive and decode aircraft transponder messages received via a directly connected software defined radio, or from data provided over a network connection.

It is the successor to dump1090-mutability and is maintained by FlightAware.

It can provide a display of locally received aircraft data in a terminal or via a browser map. Together with PiAware it can be used to contribute crowd-sourced flight tracking data to FlightAware.

It is designed to build as a Debian package, but should also be buildable on many other Linux or Unix-like systems.

Building under buster

$ sudo apt-get install build-essential debhelper librtlsdr-dev pkg-config dh-systemd libncurses5-dev libbladerf-dev libhackrf-dev liblimesuite-dev
$ dpkg-buildpackage -b --no-sign

Building under stretch

$ sudo apt-get install build-essential debhelper librtlsdr-dev pkg-config dh-systemd libncurses5-dev libbladerf-dev
$ dpkg-buildpackage -b --no-sign

Building under jessie

Dependencies - bladeRF

You will need a build of libbladeRF. You can build packages from source:

$ git clone https://github.com/Nuand/bladeRF.git  
$ cd bladeRF  
$ git checkout 2017.12-rc1  
$ dpkg-buildpackage -b

Or Nuand has some build/install instructions including an Ubuntu PPA at https://github.com/Nuand/bladeRF/wiki/Getting-Started:-Linux

Or FlightAware provides armhf packages as part of the piaware repository; see https://flightaware.com/adsb/piaware/install

Dependencies - rtlsdr

This is packaged with jessie. sudo apt-get install librtlsdr-dev

Actually building it

Nothing special, just build it (dpkg-buildpackage -b)

Building with limited dependencies

The package supports some build profiles to allow building without all required SDR libraries being present. This will produce a package with limited SDR support only.

Pass --build-profiles to dpkg-buildpackage with a comma-separated list of profiles. The list of profiles should include custom and zero or more of rtlsdr, bladerf, hackrf, limesdr depending on what you want:

$ dpkg-buildpackage -b --no-sign --build-profiles=custom,rtlsdr          # builds with rtlsdr support only
$ dpkg-buildpackage -b --no-sign --build-profiles=custom,rtlsdr,bladerf  # builds with rtlsdr and bladeRF support
$ dpkg-buildpackage -b --no-sign --build-profiles=custom                 # builds with _no_ SDR support (network support only)

Building manually

You can probably just run "make" after installing the required dependencies. Binaries are built in the source directory; you will need to arrange to install them (and a method for starting them) yourself.

make BLADERF=no will disable bladeRF support and remove the dependency on libbladeRF.

make RTLSDR=no will disable rtl-sdr support and remove the dependency on librtlsdr.

make HACKRF=no will disable HackRF support and remove the dependency on libhackrf.

make LIMESDR=no will disable LimeSDR support and remove the dependency on libLimeSuite.

Building on OSX

Minimal testing on Mojave 10.14.6, YMMV.

$ brew install librtlsdr
$ brew install libbladerf
$ brew install hackrf
$ brew install pkg-config
$ make

Building on FreeBSD

Minimal testing on 12.1-RELEASE, YMMV.

# pkg install gmake
# pkg install pkgconf
# pkg install rtl-sdr
# pkg install bladerf
# pkg install hackrf
$ gmake