Fork of the Flightaware dump1090 code base with an additional branch for integration with the EOSS SDR system.
Go to file
Oliver Jowett b645f7d4f2 Try to respect CFLAGS/CPPFLAGS as far as possible; move required extra flags into a separate var.
This means you can, in theory, completely override CFLAGS/CPPFLAGS without also having to
provide all the internal flags that the Makefile usually detects.

$ make CFLAGS=-qwerty
[...]
cc  -I. -DMODES_DUMP1090_VERSION=\"unknown\" -DMODES_DUMP1090_VARIANT=\"dump1090-fa\" -D_DEFAULT_SOURCE -DENABLE_CPUFEATURES -Icpu_features/include -DENABLE_RTLSDR -DENABLE_BLADERF -DENABLE_HACKRF -DENABLE_LIMESDR -DSTARCH_MIX_X86 -qwerty -std=c11 -fno-common -Wall -Wmissing-declarations -Werror -W -I/usr/include/ -I/usr/include/libusb-1.0 -I/usr/include/ -I/usr/include/ -I/usr/include/libusb-1.0  -c dump1090.c -o dump1090.o

Should fix #161
2021-12-07 15:12:49 +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 Updates for bullseye, drop jessie support. 2021-11-22 19:29:30 +08:00
debian-stretch Updates for bullseye, drop jessie support. 2021-11-22 19:29:30 +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 Update aircraft db to 20210817 (Australian registrations & types) 2021-08-17 15:03:34 +08:00
public_html_merged Openlayers cleanup. Remove v4.4.2 js/css files and remove source map files as minified files are not being used to begin with 2021-11-22 18:27:12 +00:00
starch Update starch to upstream commit 0c8249fa4bc523345c156885542e9192e8bf9420 2021-08-04 17:07:08 +08:00
tools Update aircraft db to 20210817 (Australian registrations & types) 2021-08-17 15:03:34 +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 Updates for bullseye, drop jessie support. 2021-11-22 19:29:30 +08:00
LICENSE GPL. 2015-01-20 16:49:01 +00:00
Makefile Try to respect CFLAGS/CPPFLAGS as far as possible; move required extra flags into a separate var. 2021-12-07 15:12:49 +08:00
Makefile.cpufeatures Try to respect CFLAGS/CPPFLAGS as far as possible; move required extra flags into a separate var. 2021-12-07 15:12:49 +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.adaptive-gain.md Adaptive gain docs. 2021-09-01 19:45:01 +08:00
README.md Updates for bullseye, drop jessie support. 2021-11-22 19:29:30 +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 Update dump1090.c 2021-07-30 08:36:45 +02: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 Report json write errors, with some rate limiting. 2021-08-04 17:33:28 +08:00
net_io.h faup1090 changes to consume commands via stdin (#107) 2021-02-09 07:25:51 -06:00
prepare-build.sh Updates for bullseye, drop jessie support. 2021-11-22 19:29:30 +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 Enable rtlsdr bounce buffers on aarch64, too (thanks to @wiedehopf for the suggestion) 2021-08-11 17:28:47 +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 bullseye, buster, or stretch

$ sudo apt-get install build-essential fakeroot debhelper librtlsdr-dev pkg-config libncurses5-dev libbladerf-dev libhackrf-dev liblimesuite-dev
$ ./prepare-build.sh bullseye    # or buster, or stretch
$ cd package-bullseye            # or buster, or stretch
$ dpkg-buildpackage -b --no-sign

Building with limited dependencies

(Supported for bullseye and 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