Demodulate a ADS-B signal from a software defined radio device tuned at 1090mhz and forward the bytes to applications such as adsb_deku/radar.
- See quickstart-guide for a quick installation guide.
- See rsadsb-2024.09.02 for latest major release details.
Through the use of the rust-soapysdr project,
we support many different software defined radio devices.
If you have tested this project on devices not listed below, let me know!
(you will need to add gain settings to config.toml or use --custom-config
)
Device | Supported/Tested | Recommend | argument |
---|---|---|---|
rtlsdr | x | x | --driver rtlsdr |
HackRF | x | --driver hackrf |
|
uhd(USRP) | x | --driver uhd |
|
bladeRF 2.0 micro xA4 | x | --driver bladerf |
Minimum Supported Rust Version: 1.74.0
Install soapysdr
drivers and library and libclang-dev
.
Using debug
builds will result in SDR overflows, always using --release
for production.
> apt install libsoapysdr-dev libclang-dev
Use hub.docker.com/r/rsadsb for cross compiling to the following archs.
These images already have soapysdr
installed with the correct cross compilers.
This uses cross-rs.
> cargo install cross
> cross build --workspace --target x86_64-unknown-linux-gnu --relese
# Used for example in Raspberry Pi (raspios) 32 bit
> cross build --workspace --target armv7-unknown-linux-gnueabihf --release
# Used for example in Raspberry Pi (raspios) 64 bit
> cross build --workspace --target aarm64-unknown-linux-gnu --release
Check the latest release for binaries built from the CI.
Run the software using the default rtlsdr.
> cargo r --release
See --help
for detailed information.
ADS-B Demodulator and Server
Usage: dump1090_rs [OPTIONS]
Options:
--host <HOST> ip address to bind with for client connections [default: 127.0.0.1]
--port <PORT> port to bind with for client connections [default: 30002]
--driver <DRIVER> soapysdr driver name (sdr device) from default `config.toml` or `--custom-config` [default: rtlsdr]
--driver-extra <DRIVER_EXTRA> specify extra values for soapysdr driver specification
--custom-config <CUSTOM_CONFIG> Filepath for config.toml file overriding or adding sdr config values for soapysdr
-h, --help Print help (see more with '--help')
-V, --version Print version
To enable maximum performance, instruct rustc to use features specific to your cpu.
> RUSTFLAGS="-C target-cpu=native" cargo r --release
Always use the latest rust releases including nightly, currently this gives around a 5-10% performance boost.
> cargo t --workspace --release
Reading from a 512KB iq sample to ADS-B bytes takes ~3.0 ms, but feel free to run benchmarks on your own computer.
> RUSTFLAGS="-C target-cpu=native" cargo bench --workspace
01 time: [3.6691 ms 3.6950 ms 3.7264 ms]
02 time: [3.5941 ms 3.5987 ms 3.6040 ms]
03 time: [3.4930 ms 3.4961 ms 3.4994 ms]
See CHANGELOG.md