ADS‐B Aircraft Tracking - aaronwmorris/indi-allsky GitHub Wiki
indi-allsky can utilize data generated by a Software Defined Radio and ADS-B broadcasts to gather information about local aircraft in your region.
A software defined radio [SDR] device such as an RTL-SDR RTL2832U USB dongle and an antenna are all that is necessary to receive aircraft ADS-B Mode-S transmissions.
There are two typical deployment architectures:
- Remote Receiver (Separate Pi / PiAware appliance) — Recommended / Most Common: The SDR receiver runs on an independent device on your local network (e.g., an existing PiAware or FlightRadar24 feeder).
- Local Receiver (Collocated on Allsky device): The SDR dongle is plugged directly into the indi-allsky computer.
If you already run PiAware or dump1090 on another machine:
-
No SDR software needed on the Allsky device: Do NOT install
dump1090,dump1090-fa, orrtl-sdron your indi-allsky machine. The camera daemon simply fetches the JSON feed over HTTP from the remote receiver. -
URL Scheme (
http://vshttps://): The default URL in indi-allsky useshttps://localhost/...assuming a local HTTPS web server. A dedicated PiAware receiver serves plainhttpon your LAN. You must change the scheme tohttp://: http:///skyaware/data/aircraft.json (Attempting to usehttps://against a standard PiAware installation will result in connection refused or SSL handshake errors). - Username and Password: Leave the Username and Password fields blank in the indi-allsky ADS-B configuration. These fields are strictly for HTTP Basic Authentication if you have placed a password-protected reverse proxy in front of the JSON feed. They have nothing to do with your flightaware.com account.
-
Verify in Browser: Open
http://<piaware-ip>/skyaware/data/aircraft.jsonin your web browser. You should receive a JSON document containing anaircraftarray.
If you plug the RTL-SDR USB dongle directly into your indi-allsky host:
dump1090-fa is not provided in default Debian/Ubuntu repositories. Follow FlightAware's repository setup instructions at https://www.flightaware.com/adsb/piaware/install before installing:
sudo apt-get update
sudo apt-get install dump1090-fa rtl-sdrEnsure the dump1090 user belongs to the plugdev group for USB hardware access:
sudo usermod -a -G plugdev dump1090dump1090-fa installs lighttpd by default for its web interface, which conflicts with the web server (Apache, Caddy, or Nginx) already used by indi-allsky on port 80:
sudo systemctl disable --now lighttpdIf using Apache, the indi-allsky Apache configuration (/etc/apache2/sites-enabled/indi-allsky.conf) contains commented configuration directives to proxy /skyaware to the dump1090 service.
In order to accurately calculate the location of aircraft relative to your position, your latitude and longitude need to be defined with at least 2 digits of precision (e.g. -34.93, 138.60). Three digits of precision is recommended for optimal positional calculation.
indi-allsky provides a dedicated CLI diagnostic command that executes the exact tracking calculation logic against your configured ADS-B endpoint without needing to run the full capture daemon:
indi-allsky-ctl test-adsb(Or from a source git checkout: source virtualenv/indi-allsky/bin/activate && ./misc/adsb_test.py).
sudo systemctl stop dump1090-fa
rtl_adsb
# Restart dump1090-fa when testing is complete
sudo systemctl start dump1090-faTo view real-time decoded message streams:
view1090-faDepending on your receiver software and network configuration:
| Receiver Type | Common URL Format |
|---|---|
| PiAware (SkyAware) | http://<ip>/skyaware/data/aircraft.json |
| dump1090-fa (standard) | http://<ip>/dump1090-fa/data/aircraft.json |
| dump1090 / readsb (standalone port 8080) | http://<ip>:8080/data/aircraft.json |
| Local Collocated (with Apache HTTPS proxy) | https://localhost/skyaware/data/aircraft.json |
| Name | Type | Add Date | Info |
|---|---|---|---|
| id | str | flight, squawk, or hex identifier. This ensures a name is assigned to the aircraft. | |
| flight | str | flight id (may not be populated) | |
| squawk | str | Aircraft squawk (may not be populated) | |
| hex | str | ADS-B hex id | |
| latitude | float | Geocentric latitude | |
| longitude | float | Geocentric longitude | |
| elevation | float | Pressure altitude (km) | |
| elevation_m | float | Nov 2025 | Pressure altitude (m) |
| elevation_ft | float | Nov 2025 | Pressure altitude (ft) |
| elevation_mi | float | Nov 2025 | Pressure altitude (mi) |
| distance | float | Ground distance (km) | |
| distance_m | float | Nov 2025 | Ground distance (m) |
| distance_ft | float | Nov 2025 | Ground distance (ft) |
| distance_mi | float | Nov 2025 | Ground distance (mi) |
| range | float | Range to aircraft (km) | |
| range_m | float | Nov 2025 | Range to aircraft (m) |
| range_ft | float | Nov 2025 | Range to aircraft (ft) |
| range_mi | float | Nov 2025 | Range to aircraft (mi) |
| alt | float | Angular altitude | |
| az | float | Azimuth | |
| dir | str | Cardinal direction from observer | |
| altitude | float | Alias of elevation | |
| altitude_m | float | Nov 2025 | Alias of elevation_m |
| altitude_ft | float | Nov 2025 | Alias of elevation_ft |
| altitude_mi | float | Nov 2025 | Alias of elevation_mi |
sudo apt update
sudo apt install libusb-1.0-0-dev git cmake build-essential pkg-config
sudo apt install debhelper
git clone https://github.com/osmocom/rtl-sdr
cd rtl-sdr-blog
sudo dpkg-buildpackage -b --no-sign
cd ..
sudo dpkg -i librtlsdr0_.deb
sudo dpkg -i librtlsdr-dev_.deb
sudo dpkg -i rtl-sdr_*.deb
dump1090-fa will have to be used instead.
- https://github.com/edgeofspace/dump1090-fa
- https://github.com/abcd567a/piaware-ubuntu-debian-amd64 (alternative install method)
Unfortunately, Debian 13 Trixie (or Debian 12) support has not been integrated yet. It is possible to build against the bullseye target, but the Makefile has to be manually modified to remove the option that causes compile warnings to be treated as errors.
6c6
< DUMP1090_CFLAGS := -std=c11 -fno-common -Wall -Wmissing-declarations -Werror -W
---
> DUMP1090_CFLAGS := -std=c11 -fno-common -Wall -Wmissing-declarations -Wdump1090-mutability is available in the Debian repositories, but dump1090-fa should function just as well.
sudo apt-get install dump1090-mutability rtl-sdr
# Indicate dump1090 should be started automatically at boot
Test your RTL-SDR receiver.
sudo systemctl stop dump1090-mutability
rtl_adsb
# make sure to restart when finished testing
sudo systemctl start dump1090-mutability
This will validate the dump1090 service is operating properly.
view1090-mutability