- Notifications
You must be signed in to change notification settings - Fork8
Multi-SDR supported Rust translation of the popular dump1090 project for ADS-B demodulation
License
rsadsb/dump1090_rs
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Demodulate a ADS-B signal from a software defined radio device tuned at 1090mhz andforward the bytes to applications such asadsb_deku/radar.
- Seequickstart-guide for a quick installation guide.
- Seersadsb-2024.09.02 for latest major release details.
Through the use of therust-soapysdr project,we supportmany 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 toconfig.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
Installsoapysdr
drivers and library andlibclang-dev
.
Usingdebug
builds will result in SDR overflows, always using--release
for production.
> apt install libsoapysdr-dev libclang-dev
Usehub.docker.com/r/rsadsb for cross compiling to the following archs.These images already havesoapysdr
installed with the correct cross compilers.This usescross-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 thelatest 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 ServerUsage: 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% performanceboost.
> 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]
SeeCHANGELOG.md
About
Multi-SDR supported Rust translation of the popular dump1090 project for ADS-B demodulation