ADS-B Quick Start Installation Guide

last edited: 2024/09/02

This guide will give you a quick and easy to setup system to demodulate and decode ADS-B messages using this Rust software! For a good technical intro into what ADS-B is and how it is decoded, see the following guide.

Hardware

SDR (Software Defined Radio)

If your focus is on ease of use, as well as value(~$25) you should use an rtlsdr Software Defined Radio. A simple one with a filter and amplifier can be bought from adsbexchange.

adsb-exchange rtlsdr

Antenna

I bought the adsb-exchange antenna, and it serves me well. Make sure you don't have objects obstructing the view from the sky and you should be fine. If you want a super cheap solution, I have seen people talk about a can-tenna.

adsb-exchange antenna

Connections

You will need a N-Type Male SMA to SMA Male connection cable. You can also find these on store.adsbexchange.com. This will allow you to connect the antenna directly to the rltsdr. The rtlsdr should be plugged into your computer's USB port.

Software

dump1090_rs

dump1090_rs performs the demodulating of the 1090Mhz signal from an SDR (Software Defined Radio), as well as forwarding the bytes to our application.

radar

radar parses the ADS-B messages into data that can be displayed on a map.

image

Linux dependencies

You will need to install the soapysdr library, plus the soapysdr driver for your SDR(rtlsdr). Searching for soapysdr-rtlsdr and soapysdr should lead you on the right path. The soapysdr library can be foud as libsoapysdr-dev on ubuntu based systems.

From Releases (x86_64)

Binaries can be downloaded from the latest releases of our software on github. The following is an example for x86_64.

# download dump1090_rs
> wget https://github.com/rsadsb/dump1090_rs/releases/download/v0.8.1/dump1090_rs-x86_64-unknown-linux-gnu.tar.gz
> tar -xf dump1090_rs-x86_64-unknown-linux-gnu.tar.gz

# download radar
> wget https://github.com/rsadsb/adsb_deku/releases/download/v2024.09.02/radar-x86_64-unknown-linux-gnu.tar.gz
> tar -xf radar-x86_64-unknown-linux-gnu.tar.gz

ARM releases are also available:

(Optional) Install from source for max performance

Instructions

Native CPU features

Building from source is recommended, since many of the DSP(Digital Signal Processing) algorithms benefit from cpu features such as AVX(Advanced Vector Extensions) on x86 architectures. These are currently only detected at compile time and is the reason for RUSTFLAGS="-C target-cpu=native" in the following install commands.

Install Compiler

Goto rustup.rs and follow instructions for installing rust and cargo. The current msrv(minimum supported rust version) is 1.64.0.

Install soapysdr library

You will need the soapysdr library. For example, this is libsoapysdr-dev on ubuntu based platforms.

Clang

Install libclang, found as libclang-dev on ubuntu.

dump1090_rs from master branch

RUSTFLAGS="-C target-cpu=native" cargo install --git https://github.com/rsadsb/dump1090_rs

radar from master branch

RUSTFLAGS="-C target-cpu=native" cargo install --git https://github.com/rsadsb/adsb_deku rsadsb_apps --bin radar

Running!

Here is a sample usage of the software. Both applications have --help output for more options. The --lat and --long will be the location of your antenna, and the --locations will print on the radar screen. See Raspberry Pi in-car ADS-B Display - with Rust! for a blog on using this for an in-car ADS-B display.

# run demodulation with default settings for rtlsdr
> dump1090_rs

# run radar
> radar --disable-lat-long --lat="50.0" ---long="50.0" --locations "(one, 100.0,-50.0)" "(two, 50.0, -100.0)"

Questions/Help

  • Open up a discussion on rsadsb/adsb_deku for radar help.
  • Open up a discussion on rsadsb/dump1090_rs for dump1090_rs help.
  • You can also email me @ wcampbell1995[dot]gmail[dot]com.