Signal statistics dashboard for Mode-S/ADS-B signals from dump1090
Project description
dump1090 Real-Time Signal Statistics
This project provides a web application for real-time monitoring of ADS-B messages using dump1090 to help you with optimizing reception performance. The application computes and displays message rates, signal strength, distance statistics, and coverage statistics. It also provides a radar chart showing the distribution of messages by distance and bearing.
How to use the dashboard
Once you've installed the dashboard application, you can access it by opening a web browser and navigating to the URL where the application is running. The default URL is http://localhost:8000.
You can then tune the gain of your receiver to optimize the reception
performance. The goal is to maximize the number of messages received while
keeping the signal strength within a reasonable range. The radar chart shows the
distribution of messages by distance and bearing, which can help you identify
areas with poor reception.
dump109-fa
provides a built-in feature to adjust the gain automatically, but you can also
adjust it manually based on the statistics provided by the dashboard. Also try setting the gain to zero. Once you've modified the gain, restart dump1090 to apply the changes and
then observe the statistics on the dashboard. Automatic gain adjustment can take several minutes to stabilize, so be patient.
Features
- Message Rate Statistics: Computes and displays message rates over different intervals (5s, 15s, 30s, 60s, 300s).
- Signal Strength Statistics: Computes and displays minimum, maximum, and average signal strength over 30 seconds.
- Distance Statistics: Computes and displays minimum, maximum, and percentile distances over 30 seconds.
- Coverage Statistics: Displays coverage statistics in a radar chart, showing the distribution of messages by distance and bearing.
- RSSI/Distance Ratio: Displays the ratio of RSSI to distance for each bearing segment.
Quick Start
Prerequisites
dump1090running on the same machine or accessible via network.- Python 3.10+ installed on your machine. Note: Raspbian typically comes with Python pre-installed.
- Find out the latitude and longitude of your antenna. You can use Google Maps or similar services to find this information. Mode-S/ADS-B messages only contain partial position information, so the application needs the antenna location to compute the geo-coordinates of aircraft.
Installation
- Install Python: If you don't have Python installed, download and install it from python.org. Raspbian typically comes with Python pre-installed.
Note: If you want to run the application as a service, which is recommended, follow the instructions in the Installation as a Service section.
-
Install the application: Open a terminal or command prompt and run:
pip install signalstats1090
This will install the
signalstats1090command-line tool, which you can use to run the backend server.On Raspberry Pi, you should install the package into a virtual environment to avoid conflicts with system packages:
python3 -m venv signalstats1090 source signalstats1090/bin/activate pip install signalstats1090
-
Run the application:
Execute the following command:
signalstats1090 run --antenna-lat <antenna_lat> --antenna-lon <antenna_lon>
(If you use the virtual environment, make sure to activate it first using the
source signalstats1090/bin/activatecommand.)The
--antenna-latand--antenna-lonarguments are required. You can find the latitude and longitude of your antenna using Google Maps or similar services.If you are running
dump1090on a different host or port, you can specify the--dump1090-hostand--dump1090-portarguments.signalstats1090 run --antenna-lat <antenna_lat> --antenna-lon <antenna_lon> --dump1090-host <dump1090_host> --dump1090-port <dump1090_port>
If you need to run the web server on a different host or port, you can specify the
--hostand--portarguments. The default host is0.0.0.0which listens on all interfaces.signalstats1090 run --host <host> --port <port> --antenna-lat <antenna_lat> --antenna-lon <antenna_lon> --dump1090-host <dump1090_host> --dump1090-port <dump1090_port>
Command Line Arguments
The script supports the following command line arguments:
--host: Host to run the web server on (default:0.0.0.0).--port: Port to run the web server on (default:8000).--antenna-lat: Antenna latitude (required for running the server).--antenna-lon: Antenna longitude (required for running the server).--dump1090-host: Host running dump1090 (default:localhost).--dump1090-port: Port for dump1090 (default:30005).
Installation as a Service
You can install the program as a service using the provided setup script:
-
Download the setup script:
wget -qO- https://raw.githubusercontent.com/clemensv/signalstats1090/main/setup.sh > ~/signalstats1090_setup.sh chmod +x ~/signalstats1090_setup.sh
-
Run the setup script with the required arguments:
~/signalstats1090_setup.sh install --host <host> --port <port> --antenna-lat <antenna_lat> --antenna-lon <antenna_lon> --dump1090-host <dump1090_host> --dump1090-port <dump1090_port>
The
--antenna-latand--antenna-lonarguments are required.
Arguments for the setup script
--host: Host to run the web server on (default:0.0.0.0).--port: Port to run the web server on (default:8000).--antenna-lat: Latitude of the antenna (required).--antenna-lon: Longitude of the antenna (required).--dump1090-host: Host running dump1090 (default:localhost).--dump1090-port: Port for dump1090 (default:30005).
Updating the Service
To update the service to the latest version, run the setup script with the update option:
~/signalstats1090_setup.sh update
This will upgrade the package to the latest version in the service account context and restart the service.
Charts
- Message Rate Chart: Displays message rates over different intervals (5s, 15s, 30s, 60s, 300s).
- Signal Strength Chart: Displays minimum, average, and maximum signal strength over 30 seconds.
- Distance Chart: Displays minimum, maximum, and percentile distances over 30 seconds.
- Distance Histogram Chart: Displays the count of position readings in 30km buckets (up to 300km).
- Coverage Chart: Displays coverage statistics in a radar chart, showing the distribution of messages by distance and bearing.
- RSSI/Distance Ratio Chart: Displays the ratio of RSSI to distance for each bearing segment.
Viewing the Frontend
To view the frontend, open a web browser and navigate to:
http://localhost:8000
or whatever host and port you specified when running the server.
License
This project is licensed under the MIT License.
© 2025 Clemens Vasters. All rights reserved.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file signalstats1090-0.5.1.tar.gz.
File metadata
- Download URL: signalstats1090-0.5.1.tar.gz
- Upload date:
- Size: 17.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.9.21
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3ed4b5ffba65246df99c294d7cb7999a1b64b694abe9f7e19c6ab1874677776f
|
|
| MD5 |
f78d68157ded318b77d228e629a627a9
|
|
| BLAKE2b-256 |
6b7506aeab64ed98f1b90a5651043ebde3581b6bec3dc5ec65905f7c7c87da55
|
File details
Details for the file signalstats1090-0.5.1-py3-none-any.whl.
File metadata
- Download URL: signalstats1090-0.5.1-py3-none-any.whl
- Upload date:
- Size: 17.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.9.21
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d5b8e63c9b0becd80bb7e00654895c27110bb67ef57b40eb2cfa2e343f9215e2
|
|
| MD5 |
f01865d9f61927b025c6a6d85d401a81
|
|
| BLAKE2b-256 |
d94b926d1ae4a28bbb8df13aaaeacdc558a79a4c4c6bddd4186ee9414c09a3fd
|