Skip to main content

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.

Screenshot

Quick Start

Prerequisites

  • dump1090 running 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

  1. 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.

  1. Install the application: Open a terminal or command prompt and run:

    pip install signalstats1090
    

    This will install the signalstats1090 command-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
    
  2. 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/activate command.)

    The --antenna-lat and --antenna-lon arguments are required. You can find the latitude and longitude of your antenna using Google Maps or similar services.

    If you are running dump1090 on a different host or port, you can specify the --dump1090-host and --dump1090-port arguments.

    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 --host and --port arguments. The default host is 0.0.0.0 which 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:

  1. Download the setup script:

    wget -qO- https://raw.githubusercontent.com/clemensv/signalstats1090/main/setup.sh > ~/signalstats1090_setup.sh
    chmod +x ~/signalstats1090_setup.sh
    
  2. 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-lat and --antenna-lon arguments 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

signalstats1090-0.5.1.tar.gz (17.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

signalstats1090-0.5.1-py3-none-any.whl (17.2 kB view details)

Uploaded Python 3

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

Hashes for signalstats1090-0.5.1.tar.gz
Algorithm Hash digest
SHA256 3ed4b5ffba65246df99c294d7cb7999a1b64b694abe9f7e19c6ab1874677776f
MD5 f78d68157ded318b77d228e629a627a9
BLAKE2b-256 6b7506aeab64ed98f1b90a5651043ebde3581b6bec3dc5ec65905f7c7c87da55

See more details on using hashes here.

File details

Details for the file signalstats1090-0.5.1-py3-none-any.whl.

File metadata

File hashes

Hashes for signalstats1090-0.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d5b8e63c9b0becd80bb7e00654895c27110bb67ef57b40eb2cfa2e343f9215e2
MD5 f01865d9f61927b025c6a6d85d401a81
BLAKE2b-256 d94b926d1ae4a28bbb8df13aaaeacdc558a79a4c4c6bddd4186ee9414c09a3fd

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page