Skip to Content
adsb.ezz456ch.comAdd ADS-B CoverageBuild your own ADS-B Receiver

Build Your Own ADS-B Receiver

Required Equipment

  • Raspberry Pi (e.g. Model 3b+ or newer), or a computer running a Debian-based Linux distro like Debian, Ubuntu, Raspberry Pi OS, or others.

  • SDR (Software Defined Radio) such as RTL-SDR  or other RTL2838-based devices.

  • ADS-B antenna(1090 MHz)

  • Coaxial cable - RG-58 is commonly used, but you can also choose low-loss cables like LMR-240 or LMR-400, which offer better signal quality for longer cable runs (>5–10 meters).

Optional Equipment (if needed)

  • LNA (Low Noise Amplifier) or 1090 MHz filter – helpful to reduce interference from other frequencies, especially if your SDR does not have a built-in bandpass filter, or if you’re in a noisy signal area.

Software Installation Steps

1. Install a Decoder — in this example, we’ll use readsb as our main decoder

1.1 Use the automatic installation script for readsb

sudo bash -c "$(wget -O - https://github.com/wiedehopf/adsb-scripts/raw/master/readsb-install.sh)" sudo reboot
  • If this is a fresh decoder installation (and no previous decoder is installed), a reboot may be required.

  • If this method doesn’t work, consider building the package manually (see step 1.2).

1.2 Manually build the readsb package

Install required packages:

sudo apt update sudo apt install --no-install-recommends --no-install-suggests -y \\ git build-essential debhelper libusb-1.0-0-dev \\ librtlsdr-dev librtlsdr0 pkg-config fakeroot \\ libncurses-dev zlib1g-dev zlib1g libzstd-dev libzstd1

Build and install the package:

cd /tmp rm /tmp/readsb -rf git clone --depth 20 https://github.com/wiedehopf/readsb.git cd readsb rm -f ../readsb_*.deb export DEB_BUILD_OPTIONS=noddebs dpkg-buildpackage -b -Prtlsdr -ui -uc -us sudo dpkg -i ../readsb_*.deb

2. Configure readsb

sudo nano /etc/default/readsb

Example config:

# readsb configuration # This is sourced by /etc/systemd/system/default.target.wants/readsb.service as # daemon startup configuration. RECEIVER_OPTIONS="--device 0 --device-type rtlsdr --gain XX.X --ppm 0" DECODER_OPTIONS="--lat XX.XXXXX --lon XXX.XXXXX --write-json-every 1" NET_OPTIONS="--net --net-heartbeat 60 --net-ro-size 1250 --net-ro-interval 0.05 --net-ri-port 30001 --net-ro-port 30002 --net-sbs-port 30003 --net-bi-port 30004,30104 --net-bo-port 30005" JSON_OPTIONS="--json-location-accuracy 2"
  • Replace --lat XX.XXXXX --lon XXX.XXXXX with your actual location.

  • Gain value depends on your hardware and location — avoid too high or too low.

  • you can also use —gain auto if you prefer.

  • you can see more options at wiedehopf/readsb GitHub  or readsb —help.

Restart the service after editing:

sudo systemctl restart readsb

3. View aircraft data via tar1090

http://192.168.X.XXX/tar1090/ 

***Don’t forget to replace 192.168.X.XXX with the actual local IP address of your ADS-B receiver

If you built readsb manually, you may also need to install tar1090 manually:

sudo bash -c "$(wget -nv -O - https://github.com/wiedehopf/tar1090/raw/master/install.sh)"

4. (Optional) View Performance Graphs with graphs1090

Install:

sudo bash -c "$(curl -L -o - https://github.com/wiedehopf/graphs1090/raw/master/install.sh)"

Now you can view the performance graphs at http://192.168.X.XXX/graphs1090/ .

Open: Don’t forget to replace 192.168.X.XXX with the actual local IP address of your ADS-B receiver

5. (Optional) Share ADS-B Data

  • To share ADS-B data with adsb.ezz456ch.com, you can follow instructions here.

  • For other websites, refer to their respective data sharing guides.

Additional Resources

Last updated on