Fork of the Flightaware dump1090 code base with an additional branch for integration with the EOSS SDR system.
Go to file
Oliver Jowett e02d0d5ffa Regenerate starch-generated files 2021-08-04 17:08:00 +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 Add CONFIG_STYLE to default config for unambiguous detection of 2021-07-26 20:26:17 +08:00
debian-jessie Disable non-generic starch build on stretch/jessie 2021-02-08 23:55:57 +08:00
debian-stretch Disable non-generic starch build on stretch/jessie 2021-02-08 23:55:57 +08:00
dsp Regenerate starch-generated files 2021-08-04 17:08:00 +08:00
oneoff Move all converters to starch-based implementations (#97) 2021-01-21 19:45:00 +08:00
public_html Fixing spelling mistake in deprecated (#125) 2021-05-20 16:25:46 -05:00
public_html_merged restrict overlay rendering to covered areas (reduce source load) (#137) 2021-07-15 15:46:30 -05:00
starch Update starch to upstream commit 0c8249fa4bc523345c156885542e9192e8bf9420 2021-08-04 17:07:08 +08:00
testfiles Initial commit of Dump1090, a simple Mode S decoder. 2013-01-05 13:52:25 +01:00
tools Overhaul of message scoring & error correction. 2021-02-09 20:10:55 +08:00
wisdom Use a starch implementation for the burst-detection sample counting loop. 2021-07-08 18:53:02 +08:00
.gitattributes Mark cpu_features and starch as vendored code 2021-02-10 14:12:26 +08: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 Ignore bogus -I/ from librtlsdr pkgconfig 2021-07-26 20:25:35 +08:00
Makefile.cpufeatures Fix broken 32-bit x86 test that broke builds on non-x86 2021-03-17 02:21:18 +08:00
README-json.md Update json docs for messages_by_df, new interval options. Remove 2021-03-08 15:25:31 +08:00
README.md Note that build profiles only work with buster 2021-03-22 00:36:11 +08:00
adaptive.c stretch compile fixes? round two 2021-07-21 20:51:57 +08:00
adaptive.h Adaptive gain, first pass (#134) 2021-06-29 20:11:13 +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 Add a few more Comm-B EMPTY_RESPONSE cases 2021-07-29 19:04:52 +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 Starch: Changed aarch64 flavor to use simd 2021-02-08 10:10:44 -07:00
cpu.h Starch: Changed aarch64 flavor to use simd 2021-02-08 10:10:44 -07:00
crc.c Overhaul of message scoring & error correction. 2021-02-09 20:10:55 +08:00
crc.h Overhaul of message scoring & error correction. 2021-02-09 20:10:55 +08:00
demod_2400.c Adaptive gain, first pass (#134) 2021-06-29 20:11:13 +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 Maybe fix alignment warnings in arm neon code with recent gcc 2021-03-13 20:24:01 +08:00
dump1090.c Increase default adaptive gain rescan interval to 1 hour 2021-07-26 22:08:57 +08:00
dump1090.h faup1090: upload unknown-format Comm-B messages on demand 2021-07-29 19:04:53 +08:00
faup1090.c Add a --no-fix-df option 2021-03-08 14:23:35 +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 Overhaul of message scoring & error correction. 2021-02-09 20:10:55 +08:00
icao_filter.h Overhaul of message scoring & error correction. 2021-02-09 20:10:55 +08:00
interactive.c fixed screen (first line) issue when in the interactive mode (#116) 2021-03-08 16:34:56 +08:00
mode_ac.c More WIP 2017-12-07 10:34:08 -06:00
mode_s.c Add skeletal BDS0,5 decoding. 2021-07-29 19:04:52 +08:00
mode_s.h Overhaul of message scoring & error correction. 2021-02-09 20:10:55 +08:00
net_io.c Merge pull request #142 from flightaware/mrar 2021-08-03 21:28:58 +08:00
net_io.h faup1090 changes to consume commands via stdin (#107) 2021-02-09 07:25:51 -06:00
prepare-build.sh Drop wheezy support. 2020-08-06 13:44:07 +08:00
sdr.c Adaptive gain, first pass (#134) 2021-06-29 20:11:13 +08:00
sdr.h Adaptive gain, first pass (#134) 2021-06-29 20:11:13 +08:00
sdr_bladerf.c Adaptive gain, first pass (#134) 2021-06-29 20:11:13 +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 add "--enable-antenna-power" command line option for HackRF configuration 2021-03-22 00:31:47 +03: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 Fix limesdr build 2021-07-21 20:03:06 +08:00
sdr_limesdr.h limesdr: basic implementation of LimeSDR support 2020-07-29 23:09:27 +03:00
sdr_rtlsdr.c Treat the magic agc setting as just another gain step. 2021-07-19 17:34:45 +08:00
sdr_rtlsdr.h Adaptive gain, first pass (#134) 2021-06-29 20:11:13 +08:00
sdr_stub.c Adaptive gain, first pass (#134) 2021-06-29 20:11:13 +08:00
stats.c Misc adaptive gain changes: 2021-07-07 20:57:34 +08:00
stats.h Misc adaptive gain changes: 2021-07-07 20:57:34 +08:00
track.c Track MRAR data per-aircraft and emit in aircraft.json 2021-07-29 19:04:54 +08:00
track.h Track MRAR data per-aircraft and emit in aircraft.json 2021-07-29 19:04:54 +08:00
util.c Fix overflow in get_deadline for large (>2000ms) timeouts 2021-04-29 14:52:45 +08:00
util.h Don't hang on exit if rtlsdr hardware stops sending samples. 2021-03-21 02:03:08 +08:00
view1090.c Add a --no-fix-df option 2021-03-08 14:23:35 +08:00
wisdom.aarch64 Add temporary wisdom.aarch64 2021-02-09 14:15:05 +08:00
wisdom.arm Use a starch implementation for the burst-detection sample counting loop. 2021-07-08 18:53:02 +08:00
wisdom.generic Use a starch implementation for the burst-detection sample counting loop. 2021-07-08 18:53:02 +08:00
wisdom.x86 Use a starch implementation for the burst-detection sample counting loop. 2021-07-08 18:53:02 +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 fakeroot debhelper librtlsdr-dev pkg-config dh-systemd libncurses5-dev libbladerf-dev libhackrf-dev liblimesuite-dev
$ ./prepare-build.sh buster
$ cd buster
$ 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
$ ./prepare-build.sh stretch
$ cd stretch
$ dpkg-buildpackage -b --no-sign

Actually building it

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

Building with limited dependencies

(Supported for buster builds only)

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

Generating wisdom files

dump1090-fa uses starch to build multiple versions of the DSP code and choose the fastest supported by the hardware at runtime. The implementations chosen can been seen by running dump1090-fa --version.

The implementations used are controlled by "wisdom files", a list of implementations to use in order of priority. For each DSP function, the first implementation listed that's supported by the current hardware is used. By default dump1090-fa provides compiled-in wisdom for x86, ARM 32-bit, and ARM 64-bit. If the defaults are not suitable for your hardware or if you're building on a different architecture, you may want to generate your own external wisdom file.

Ideally, to get stable results, you want to do this on an idle system with CPU frequency scaling disabled. Running the benchmarks will take some time (10s of minutes).

Package installs

Run /usr/share/dump1090-fa/generate-wisdom. Wait.

Follow the instructions to copy the resulting wisdom file to /etc/dump1090-fa/wisdom.local.

Restart dump1090.

Manual installs

Run make wisdom.local. Wait.

Copy the resulting wisdom.local file somewhere appropriate.

Update the dump1090-fa command-line options to include --wisdom /path/to/wisdom.local