Giter VIP home page Giter VIP logo

dump1090_rs's Introduction

dump1090_rs

github build status

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-v0.5.0 for latest major release details.

Tested Support

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

Usage

Minimum Supported Rust Version: 1.70.0

Build

Install soapysdr drivers and library and libclang-dev.

Note

Using debug builds will result in SDR overflows, always using --release for production.

Ubuntu

> apt install libsoapysdr-dev libclang-dev

Cross Compile

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

Release Builds from CI

Check the latest release for binaries built from the CI.

Run

Run the software using the default rtlsdr.

> cargo r --release

help

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]
      --custom-config <CUSTOM_CONFIG>  Filepath for config.toml file overriding or adding sdr config values for soapysdr
  -h, --help                           Print help information (use `--help` for more detail)
  -V, --version                        Print version information

Performance tricks

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.

Testing

> cargo t --workspace --release

Benchmark

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

Intel i7-7700K CPU @ 4.20GHz

01                      time:   [2.9850 ms 2.9859 ms 2.9868 ms]
02                      time:   [2.9260 ms 2.9279 ms 2.9308 ms]
03                      time:   [2.8449 ms 2.8525 ms 2.8653 ms]

Changes

See CHANGELOG.md

dump1090_rs's People

Contributors

wcampbell0x2a avatar johnwstanford avatar dependabot[bot] avatar step-security-bot avatar tjmullicani avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.