Forked rust translation of the popular dump1090 project for adsb demodulation

Overview

dump1090_rs

Actions Status

Fork of https://github.com/johnwstanford/dump1090_rs, without parsing messages. This project is meant to just forward bytes from the the demodulated iq stream from a rtlsdr to my own adsb_deku library/apps.

Usage

cargo r --release

Testing

cargo t --release

Benchmark

Reading from a 256KB iq sample to ADS-B bytes takes ~3.5218 ms, but feel free to run benchmarks on your computer.

cargo bench

Changes

See CHANGELOG.md

Comments
  • SoapySDR  remotes aren't matching

    SoapySDR remotes aren't matching

    I'm unable to select a remote device using SoapySDR's driver syntax, even thought SoapySDRUtil can find it:

    $ SoapySDRUtil --find="driver=remote, remote=192.168.1.184, remote:driver=rtlsdr"
    ######################################################
    ##     Soapy SDR -- the SDR abstraction library     ##
    ######################################################
    
    Found device 0
      available = Yes
      driver = remote
      label = Generic RTL2832U OEM :: 
      manufacturer = Realtek
      product = RTL2838UHIDIR
      remote = tcp://192.168.1.184:55132
      remote:driver = rtlsdr
      rtl = 0
      serial = 
      tuner = Elonics E4000
    
    
    $ dump1090 --driver "driver=remote, remote=192.168.1.184, remote:driver=rtlsdr"
    [-] using driver: driver=remote, remote=192.168.1.184, remote:driver=rtlsdr
    thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Error { code: Other, message: "SoapySDR::Device::make() no match" }', dump1090_rs/src/main.rs:81:75
    note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
    
    

    There aren't any examples, really for doing this type of connectivity with the code, but it seems like it should work as other applications (CubicSDR, for example) can use the same remote sdr source just fine. It's most likely something to do with the driver selection in the command line, but without any good docks here, i'm just trying various combinations and still getting nowhere.

    bug enhancement question 
    opened by akhepcat 9
  • Selecting antenna to use

    Selecting antenna to use

    Hi,

    Thanks for the project! I am using dump1090_rs with my USRP B210 which has two antennas per frontend. Right now it does not appear to be possible to select which antenna to use, which is a bit annoying for my use case.

    It appears it might be settable using soapysdr::Device::set_antenna.

    Would you consider adding support for setting the antenna via e.g. command line options?

    enhancement 
    opened by bluecmd 2
  • WIP: Update docker image / Add aarm64-unknown-linux-gnu

    WIP: Update docker image / Add aarm64-unknown-linux-gnu

    • Add support for building aarm64-unknown-linux-gnu for supporting the Raspberry Pi 64-bit
    • Add new CI images that are pushed to docker hub
    • update cargo/cross base images -> 0.2.2
    opened by wcampbell0x2a 1
  • feat: add write/read settings from config

    feat: add write/read settings from config

    Add ability to change settings for an sdr device. This is achieved by using [[sdr.setting]] in a config.toml file. This uses write_setting and read_setting provided by soapysdr.

    Updated --help text to show string without newlines all over

    Patch soapysdr-rs to my own branch until this is published or in soapysdr-rs master.

    Use key/value for all Args.

    Closes #16

    opened by wcampbell0x2a 1
  • Please include an example rtl-sdr.rules

    Please include an example rtl-sdr.rules

    running dump1090 as myself I get

    usb_open error -3
    Please fix the device permissions, e.g. by installing the udev rules file rtl-sdr.rules
    Error: "Expected result code of zero"
    

    Though running sudo dump1090 works fine, it'd be good to play by the rules. Google cannot point me to a definitive answer. Please consider an example .rules file and a sentence or two on how to install it.

    I'm enjoying this project as a fellow rustacean who lives under the flightpath from LHR. I can now put my SDR to useful work. Kudos!

    opened by martin-cowie 1
  • Improve perf of `demodulate2400` by 38%

    Improve perf of `demodulate2400` by 38%

    CPU's love him, with these 3 commits.

    This mostly just make the slices used by calculate_bit and check_preamble limited by the biggest len needed by the function instead of boundless.

    opened by wcampbell0x2a 0
  • SoapySDR remote questions

    SoapySDR remote questions

    I'm working on getting dump190_rs and radar running using SoapySDR remote with an Airspy. It seems to be running, but I'm not actually seeing any airplanes in radar and using netcat to connect to port 30002 shows no output. Airspy has three gain controls: LNA gain range: [0, 15] dB MIX gain range: [0, 15] dB VGA gain range: [0, 15] dB

    My questions:

    1. Ignore this question - I see now in the config.toml how each of the gains can be set - sorry It seems I can only specify one gain key in the custom-config file unless I'm missing something?
    2. While dump1090_rs is running, it prints a steady stream of characters (mostly 'S', some '0') to stdout. Is that expected? Do the characters mean anything?

    Thanks for these projects - I was very happy to find an ads-b project that supports remote hw as my sdr and antenna are located in a barn away from the e noise of my house.

    opened by jfath 3
Owner
wcampbell
Rust Software Engineer / Reverse Engineer
wcampbell
🧼 A popup translation tool.

Popup translation 通过 wry 打开一个 webview 窗口,然后打开某个翻译平台的网页翻译内容,并通过 js 代码屏蔽掉不需要的内容,专注于翻译内容本身。 ?? Features 利用 wry 提供的网页视图功能实现的弹窗功能 从剪贴板读取文本并翻译 在 Linux(x11)

Li Ke 24 Feb 21, 2023
A rust-based version of the popular dnsgen python utility

ripgen A rust-based version of the popular dnsgen python utility. ripgen is split into two main parts: ripgen: A CLI utility that calls into ripgen_li

resync 198 Jan 2, 2023
A cli utility written in Rust that allows fetching all the labels of a project, save those as a YAML file

A cli utility written in Rust that allows fetching all the labels of a project, save those as a YAML file that you can easily edit or save as backup and apply a saved preset to new repositories.

Chevdor 4 May 5, 2022
Watches changes in a rust project, runs test and shows friendly notification

Cargo testify Automatically runs tests on your Rust project and notifies about the result. Install Install prerequisites (for Debian/Ubuntu): apt-get

Sergey Potapov 77 May 16, 2022
Rust implementation of Project Fluent

Fluent fluent-rs is a collection of Rust crates implementing Project Fluent. The crates perform the following functions: fluent Umbrella crate combini

Project Fluent 749 Dec 26, 2022
Automatically build a Rust module tree from the project directory structure

Hypermod An even lazier version of automod and supermod. Searches the src/ directory recursively for .rs files, then builds a module tree using the di

null 4 Aug 3, 2022
A Rust framework to develop and use plugins within your project, without worrying about the low-level details.

VPlugin: A plugin framework for Rust. Website | Issues | Documentation VPlugin is a Rust framework to develop and use plugins on applications and libr

VPlugin 11 Dec 31, 2022
How to use an Arduino library in a Rust project?

Example of an Arduino library usage in a Rust project The project tested with Arduino UNO on Fedora 35. It demonstrates the usage of LiquidCrystal_I2C

Konstantin 6 Dec 27, 2022
cargo, make me a project

cargo-generate cargo, make me a project cargo-generate is a developer tool to help you get up and running quickly with a new Rust project by leveragin

null 1.2k Jan 3, 2023
Devmode is a project management utility for developers.

Dev(mode) Dev(mode) is a project management utility for developers.

Eduardo Flores 15 Dec 11, 2022
Generate a THIRDPARTY file with all licenses in a cargo project.

cargo-bundle-licenses Bundle all third-party licenses into a single file. NOTE This tools is not a lawyer and no guarantee of correctness can be made

Seth 58 Jan 7, 2023
A tool that generates a Sublime Text project file that helps you get started using Scoggle.

README A tool that generates a Sublime Text project file that helps you get started using Scoggle. While Scoggle-Gen may not find every single source

Sanjiv Sahayam 0 Jan 10, 2022
An ND812 decoder implemented as part of the yaxpeax project

yaxpeax-nd812 an ND812 decoder implemented as part of the yaxpeax project, including traits provided by yaxpeax-arch. the ND812 is a 12-bit microcompu

iximeow 1 Jan 22, 2022
The point of this anchor project is to serve as a starter kit or example to compose with mango-v3 using anchor.

The point of this anchor project is to serve as a starter kit or example to compose with mango-v3 using anchor. It currently provides 2 examples and various inline todos on how to extend this.

null 26 Oct 10, 2022
⚙️ Crate to discover embedded programming with uno r3 project

⚙️ Crate to discover embedded programming with uno r3 project

null 0 Feb 3, 2022
Cakecutter - a utility tool that quickly sets up a project from a pre-built template

Cakecutter Create projects from pre-built cakes (templates)! Supports files, packages, content, running commands and more! Cakecutter is a utility too

Dhravya Shah 10 Jun 22, 2022
k-mer counter in Rust using the rust-bio and rayon crates

krust is a k-mer counter written in Rust and run from the command line that will output canonical k-mers and their frequency across the records in a f

null 14 Jan 7, 2023
Experimental Rust tool for generating FFI definitions allowing many other languages to call Rust code

Diplomat is an experimental Rust tool for generating FFI definitions allowing many other languages to call Rust code. With Diplomat, you can simply define Rust APIs to be exposed over FFI and get high-level C, C++, and JavaScript bindings automatically!

null 255 Dec 30, 2022
Aws-sdk-rust - AWS SDK for the Rust Programming Language

The AWS SDK for Rust This repo contains the new AWS SDK for Rust (the SDK) and its public roadmap. Please Note: The SDK is currently released as a dev

Amazon Web Services - Labs 2k Jan 3, 2023