Press ESC to close

ADS-B: Receiver installation and configuration on Synology NAS

Table of contents

Hello!

In a previous tutorial, I discussed configuration on the Raspberry Pi. Today we will focus on the installation and initial setup of a kit for receiving aircraft locations in the air using a Synology device and a few accessories. What’s more, I’ll show you how to use an existing server for this purpose, which can be an alternative to setting up from scratch.

I will divide the guide into several steps – from the initial setup, to preparing the system, installing Docker containers on Synology, sharing our data with other flight information aggregation portals.

Introduction

What is the ADS-B?

ADS-B operating principle

ADS-B (Automatic Dependent Surveillance-Broadcast) is an automatic surveillance and transmission system used in aviation. This technology allows aircraft to transmit data, such as position, speed, altitude and identification, to other ships and ground stations. It is based on GPS technology and transponders mounted on board aircraft.

The ADS-B system operates on two main frequencies: 1090 MHz and 978 MHz. Both bands are used depending on the world region and application.

In fact, most large aircraft are equipped with ADS-B transponders, operating at 1090 MHz, while smaller aircraft, especially those operating in the United States, can use UAT at 978 MHz. The interaction of the two bands is intended to increase the efficiency and flexibility of ADS-B in air traffic management.

What is Synology?

Synology is a company specializing in the production of network hardware and software for data storage and management. Their main products are NAS (Network Attached Storage) servers, which offer a wide range of functions such as file storage, media sharing, backup, and hosting network services.

Thanks to their flexibility, Synology devices are used both in home networks, where they serve as a central data storage and media server, and in businesses, where they are used to store and share files and run a variety of business applications, such as email servers, file servers, and project management platforms.

In addition, Synology devices are popular in security-oriented environments, where they are used to store surveillance camera footage and run video surveillance systems. Moreover, thanks to the wide range of applications available in their ecosystem, users can expand the functionality of their NAS servers by installing virtualization servers or cloud data management solutions, among others. In this way, Synology becomes not only a central data storage point, but also a platform for extensive IT infrastructure management in diverse environments.

Preparation

Before installing an ADS-B pickup system, it is a good idea to make solid preparations. Here is a more extensive description of what was needed based on my setup for my colleague.

For the creation of the guide, I will use the documentation provided by the SDR-Enthusiasts team, who have done a very good job. I sincerely thank them for making this information available. In the rest of the tutorial, I will also use their containers, which will make the installation and configuration process easier.

Location

When setting up an ADS-B receiving system using a Synology server, keep in mind the importance of a suitable place to install the antenna. Here are some tips that you may find helpful.

  • Antenna location: Choose a location that provides free access for the antenna to the open sky. Make sure that the antenna will not be obscured by obstacles – such as trees, buildings or other objects;
  • Avoid interference: Place the antenna away from devices that generate electromagnetic interference, which could affect the quality of received signals;
  • Wiring safety: Ensure safe routing of cables from the antenna to the receiver, avoiding potential sources of damage. Protect your cabling from bad weather;
  • Optimum height: Try to place the antenna at an optimal height to minimize terrain interference and improve the range of received signals;

By locating the antenna on the roof, we are sure that we have given it free access to the open sky. By taking advantage of this optimal height, we also avoid terrain interference, which contributes to improving the range of received signals.

Paperwork for the use of the roof in housing buildings

Background of the problem

When planning to install an antenna on the roof of a housing building, it is necessary to comply with the formalities of the construction law, especially when dealing with a building covered by a community or cooperative.

Make sure that the following steps have been taken

Therefore, the following steps must be taken to erect the mast and antenna on the roof:

  • Community or Cooperative Consent: Before proceeding with the installation, it is important to obtain the approval of the community or housing cooperative board. Typically, the roofs of apartment buildings are considered common areas, and decisions on their use require the approval of the housing community.
  • Construction Law: You should check the construction law to find out if installing an antenna on the roof requires any special permits or approvals. In some cases, depending on the type of antenna and the planned installation, additional paperwork may be required.
  • Contract and Liability: The community or cooperative may also require the signing of a contract, which will specify the terms of use of the roof, rights and obligations related to the installation of the antenna. It is also worth discussing issues related to possible damage to the roof or other building components during installation.
  • Structure Safety: Regardless of the purpose of the antenna installation, the mast should be sturdy and safe. Make sure it meets all safety standards to avoid possible damage or accidents.
  • Notification to the Housing Community: Before starting work, it is important to inform neighbors and residents about the planned installation, and to listen to their concerns or objections, if any. Cooperation with residents can help reach an agreement on the installation of the antenna.

Required equipment and components

In our case, in order for my colleague to start receiving any information sent by aircraft, it was necessary to have:

Hardware
  • Synology DS720+ (purchased some time ago), 2x HDD, 4x 2-2.7 GHz, upgraded to 8 GB RAM, 2x USB 3.0, 2x 1 GbE LAN;
  • SDR receiver, which ranges from 1090 MHz,The USB receiver from AirNav has a built-in filter and amplifier for the aforementioned frequency – hence its purchase was economically justified;
  • Antenna optimized for operation at 1090 MHz,
Mounting method

It is worth noting that the ADS-B antenna can be mounted on a mast from a satellite dish, if we do not have any other place available to place it. However, it is advisable to arrange the installation to avoid overloading the mast from the satellite dish and not to create a kind of “Christmas tree”.

Therefore, if possible, consider installing a separate antenna mount or mast specifically designed for ADS-B antenna installation. Such a procedure will not only ensure stable placement of the antenna, but also allow easier management of the installation and ensure future flexibility. With an additional bracket or mast, you will have the ability to install other antennas in the future, which can be useful for system expansion or additional communication needs.

In the case of installing an antenna on the roof of a residential building – below I describe the additional components that in my case were necessary for the installation of antennas (three antennas are currently installed: ADS-B, Airband and Open Glider Network).

Additional equipment

Software

As software for monitoring and sharing ADS-B data with other aggregators, we will use Ultrafeeder from SDR-Enthusiasts. I will describe the installation steps below, following the instructions provided by the manufacturer.

The introduction of this software will make it possible to effectively monitor air traffic and share the collected data with other portals operating in the ADS-B area.

By making the signal available to air traffic monitoring platforms such as FlightRadar24, FlightAware and RadarBox, we can expect to benefit from free subscriptions to these portals. This enables a more complete use of advanced features, real-time tracking of air traffic and access to additional information and statistics. Sharing ADS-B data thus becomes a tangible investment in the growing aviation community, while giving access to a more advanced air traffic monitoring experience.Flightradar24 Add ADS-B coverage

Collecting the location parameters of our receiver

In order to properly configure the receiver, it is necessary to collect precise data on its location. Here is the key information you need to obtain:

Antenna height (above sea level)
Latitude and longitude of the antenna (to at least five decimal places)

Providing precise location data is a key step in effectively configuring an ADS-B receiver. Be sure to enter this information with the utmost accuracy to ensure effective system operation and provide reliable air traffic data.

Step 1 – Installing the antenna on the roof

When installing an antenna on the roof of a house or multi-family building, there are a few general rules to follow. On the roof of the house, ensure that the antenna is stably mounted (I described above).

In the case of a multifamily building, it is worthwhile to use the technical channel where cables run between floors. In this case, you should add your cable to the existing infrastructure, and it should be clearly marked who is responsible for the cable.

When installing an antenna on the roof of a building, it is also important to pay attention to fire safety features, such as a sealing compound, such as the one available from HILTI products. If there is a fireproof membrane between floors, it may be necessary to supplement it with sealant on our side. The sealing material is designed to protect the space from smoke and fire penetration in the event of a fire, which is important for maintaining the integrity of the building’s fire protection system.

Step 2 – Configuration in the Synology DSM

Installing Docker (Container Manager) on Synology

Container ManagerUntil version 6.2, a Docker package was available on the Synology DiskStation Manager (DSM) operating system, which allowed users to run application containers on NAS servers. With the introduction of DSM 7, Synology decided to introduce its own solution, known as Container Manager.

  • Log in to the DSM interface – Open a web browser and log in to the administration panel on your Synology device, using the appropriate credentials (administrator account),
  • Install Container Manager – After logging in, go to the Package Center (which is the central place to manage applications on Synology devices). Search for the Container Manager package and install it on your device.

Support for USB external devices on DSM 7

DSM 7 no longer includes support for USB dongles such as Wi-Fi, Bluetooth, 3G/4G, USB DAC/speaker and DTV dongle. If your device is currently connected to Synology, it was probably disconnected after upgrading to DSM 7. To restore the operation of these devices, follow these steps (it is necessary to set the appropriate access permissions and load kernel modules to allow USB dongles):

    • Go to the Control Panel, then scroll down to find the Task Scheduler.
    • Click Create and select Run task User-defined script,

    Synology, Control Panel Task Scheduler

    • On the Create Task General tab, enter the following values:
      • Task: Remaping 80/443 ports,
      • User: root,
    • On the Create Task – Task Settings tab, enter the following values:
      • Submit the launch details in an email: Check and enter your email address,
      • Submit launch details only when the script is unexpectedly terminated: Check,
      • Run the command: Paste the following script in your text editor:
chmod 777 /dev/ttyUSB0
chmod 777 /dev/ttyACM0
/sbin/modprobe usbserial
/sbin/modprobe ftdi_sio
/sbin/modprobe cdc-acm
  • After making these settings, click OK to save and activate the new scheduled task.
  • Now our script will run automatically after each reboot, making sure that the appropriate access permissions and kernel modules are loaded.
  • To ensure that the changes you’ve made work as expected, I encourage you to restart your Synology NAS (DSM). This simple action ensures that all modifications will be successfully taken into account during the reboot. After these pleasant steps, the new settings should laugh flawlessly after a server restart.

Change of SDR serial number

Most RTL-SDR devices are shipped with identical serial numbers. If more than one SDR device is present on our system, this can result in potential confusion. To avoid such a situation, it is recommended to assign SDR serial numbers that are consistent with the frequencies on which these devices operate and receive messages.

You can read more about this process in a separate guide that I wrote here. 👉 Look into it.

For the purposes of this tutorial, we assume that the SDR used to receive ADS-B Mode-S (1090 MHz) will have the serial number 00001090.

If you have more than one SDR device connected to Raspberry Pi – unplug them and leave only the one responsible for receiving 1090 MHz. Then execute the following command.

docker run --rm -it --device /dev/bus/usb --entrypoint rtl_eeprom ghcr.io/sdr-enthusiasts/docker-adsb-ultrafeeder -s 00001090

You should see the following message (your data may be slightly different, but make sure that the new serial number of the device is 1090):

Found 1 device(s):
  0:  Generic RTL2832U
​
Using device 0: Generic RTL2832U
Found Rafael Micro R820T tuner
​
Current configuration:
__________________________________________
Vendor ID:              0x0bda
Product ID:             0x2832
Manufacturer:           Realtek
Product:                RTL2832U
Serial number:          00001000
Serial number enabled:  yes
IR endpoint enabled:    no
Remote wakeup enabled:  no
__________________________________________
​
New configuration:
__________________________________________
Vendor ID:              0x0bda
Product ID:             0x2832
Manufacturer:           Realtek
Product:                RTL2832U
Serial number:          00001090
Serial number enabled:  yes
IR endpoint enabled:    no
Remote wakeup enabled:  no
__________________________________________
Write new configuration to device [y/n]? y
​
Configuration successfully written.
Please replug the device for changes to take effect.

Press y to continue.

Portainer – Container management

One host

It’s worth installing Portainer because it’s a tool that allows you to easily manage Docker containers on a single host or in a cluster. With an intuitive user interface, Portainer allows you to monitor resources, start, stop and delete containers and manage Docker images.

If you are using only one host, installing Portainer is easy. All you need to do is install it directly on the machine running Docker. You can then access the Portainer’s interface through a web browser by typing in the IP address of the host and the port number on which the Portainer is running (default port 9000).

We need a directory to put the files from Portainer there.

  • Log in to your file server and open File Station.
  • In the shared folder named docker, create a new folder and name it portainer.

For Microsoft Windows operating system I recommend PuTTY, while for Apple macOS operating systems I recommend Termius.

  • I personally use macOS, thus I will use Termius.
  • Log in to your Synology account over SSH.
  • Type the following command to install the Portainer.
sudo docker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /volume1/docker/portainer:/data portainer/portainer-ce:latest
  • Open a browser and type http://IP-ADRES:9000/. Choose a username and a strong password, confirm them, and then click Create User.
  • Then click Get Started to continue using the local environment in which Portainer is running.
Multiple hosts

The Portainer Agent is a tool that acts as an interface between Portainer (the platform for managing Docker containers) and the host on which Docker containers are run. The agent enables remote management of Docker containers on hosts via Portainer.

Using the Portainer agent facilitates centralized and automated management of Docker containers on multiple hosts from a single user interface.

To install Portainer Agent on your Synology, follow these steps:

  • Log in to your account and go to the administration interface.
    • Are you using the Authentik single sign-on system? Make the login process easier for yourself by integrating Portainer with Authentik with the help of these instructions.

Portainer login screen

  • At the bottom left of the Settings section, select and click Environments,
  • Click Add environment,

Portainer Add Environment

  • From the list of proposed environments, select the option to connect Docker Standalone. Then click Start Wizzard,

Portainer Environment Wizard

  • Leave the Agent option checked, then copy the command to install the agent on the remote device,
  • Log in over SSH to Synology and enter the following command:
docker run -d \
  -p 9001:9001 \
  --name portainer_agent \
  --restart=always \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /volume1/@docker/volumes:/var/lib/docker/volumes \
  portainer/agent:2.19.4
  • Wait until the Agent is installed on the remote device.
  • Return to editing Quick Setup in the Portainer,
  • In the Name space, type the hostname of the remote device: syno02
  • Environment address: example 192.168.100.10:9001
  • Confirm the configuration with the Connect button. After successfully connecting to the remote device, you will return to the main screen for selecting the environment you want to work in.

Preparing the environment for ADS-B

Create a directory

We need a catalog to put our application. The name of this directory will be the name of our application.

  • Log in to your file server and open File Station.
  • In the shared folder named docker, create a new folder and name it ultrafeeder.
  • Inside the ultrafeeder folder, create two additional folders: globe_history and graphs1090.
Generate the UUID of your receiver

UUID (Universally Unique Identifier) is a unique identifier used for recognition on various data transfer servers. If you don’t have a UUID, you can create a new one by logging into your device, then run the following command:

cat  /proc/sys/kernel/random/uuid

You can use the resulting string of this command (in the format 00000000-0000-0000-0000-000000000000) as your UUID. In further configurations, you will use the same UUID for each feeder of your station.

Create a heywhatsthat panorama ID

Heywhatsthat is a website that can generate an overlay on a map, showing a theoretical range based on obstacles and the curvature of the earth. In the upper left corner of the panorama page you will find the URL, which will look like this: https://www.heywhatsthat.com/?view=CW5KV545. This code will be used later in the configuration instructions.

To create a panorama, follow the steps below:

  • Go to https://heywhatsthat.com/,
  • Click New Panorama,
  • Set the exact location of your antenna,
  • Enter the title of your location / antenna,
  • Submit the request and wait for the processing to complete,

Installing Ultrafeeder using Docker Compose in Portainer

The Ultrafeeder container is the heart of our ADS-B receiver. It receives signals at 1090 MHz from your SDR, demodulates the messages, making them available to all other containers. We will now create a configuration file in Docker Compose using the Portainer.

  • From the Portainer’s home screen, select your device that you previously connected centrally or with an agent.

Portainer Environment

  • Go to the Stacks section, then Add stack.
    • Name: adsb-feeder
    • Web editor: Paste the following code content
version: '3.8'

services:
  ultrafeeder:
  # ultrafeeder combines a number of functions:
  # - it retrieves and decodes 1090MHz Mode A/C/S data from the SDR(s) using Wiedehopf's branch of readsb
  # - it implements a `tar1090` based map on port 80 (mapped to port 8080 on the host)
  # - it includes graph1090 (system statistics website) on http://xxxxx/graphs1090
  # - it sends ADSB data directly (without the need of additional containers) to the
  #   "new" aggregators, and, if desired, also to AdsbExchange
  # - it includes mlat-client to send MLAT data to these aggregators
  # - it includes an MLAT Hub to consolidate MLAT results and make them available to the built-in map and other services

    image: ghcr.io/sdr-enthusiasts/docker-adsb-ultrafeeder:lastest
    tty: true
    container_name: ultrafeeder
    hostname: ultrafeeder
    restart: unless-stopped
    device_cgroup_rules:
      - 'c 189:* rwm'
    ports:
      - 8080:80               # to expose the web interface
      - 9273-9274:9273-9274   # to expose details for grafana
    environment:
      # --------------------------------------------------
      # general parameters:
      - LOGLEVEL=error
      - TZ=${FEEDER_TZ}
      # --------------------------------------------------
      # SDR related parameters:
      - READSB_DEVICE_TYPE=rtlsdr
      - READSB_RTLSDR_DEVICE=${ADSB_SDR_SERIAL}
      - READSB_RTLSDR_PPM=${ADSB_SDR_PPM}
      #
      # --------------------------------------------------
      # readsb/decoder parameters:
      - READSB_LAT=${FEEDER_LAT}
      - READSB_LON=${FEEDER_LONG}
      - READSB_ALT=${FEEDER_ALT_M}m
      - READSB_GAIN=${ADSB_SDR_GAIN}
      - READSB_RX_LOCATION_ACCURACY=2
      - READSB_STATS_RANGE=true
      #
      # --------------------------------------------------
      # Sources and Aggregator connections:
      # Note - remove the ones you are not using / feeding
      #  Make sure that each line ends with a semicolon ";",  with the
      #  exception of the last line which shouldn't have a ";"
      - ULTRAFEEDER_CONFIG=
          adsb,dump978,30978,uat_in;
          adsb,feed.adsb.fi,30004,beast_reduce_plus_out;
          adsb,in.adsb.lol,30004,beast_reduce_plus_out;
          adsb,feed.airplanes.live,30004,beast_reduce_plus_out;
          adsb,feed.planespotters.net,30004,beast_reduce_plus_out;
          adsb,feed.theairtraffic.com,30004,beast_reduce_plus_out;
          adsb,data.avdelphi.com,24999,beast_reduce_plus_out;
          adsb,skyfeed.hpradar.com,30004,beast_reduce_plus_out;
          adsb,feed.radarplane.com,30001,beast_reduce_plus_out;
          adsb,dati.flyitalyadsb.com,4905,beast_reduce_plus_out;
          mlat,feed.adsb.fi,31090,39000;
          mlat,in.adsb.lol,31090,39001;
          mlat,feed.airplanes.live,31090,39002;
          mlat,mlat.planespotters.net,31090,39003;
          mlat,feed.theairtraffic.com,31090,39004;
          mlat,skyfeed.hpradar.com,31090,39005;
          mlat,feed.radarplane.com,31090,39006;
          mlat,dati.flyitalyadsb.com,30100,39007
          #mlathub,piaware,30105,beast_in;
          #mlathub,rbfeeder,30105,beast_in;
          #mlathub,radarvirtuel,30105,beast_in;
          #mlathub,planewatch,30105,beast_in
      # --------------------------------------------------
      - UUID=${ULTRAFEEDER_UUID}
      - MLAT_USER=${FEEDER_NAME}
      - READSB_FORWARD_MLAT_SBS=true
      #
      # --------------------------------------------------
      # TAR1090 (Map Web Page) parameters:
      - UPDATE_TAR1090=true
      - TAR1090_DEFAULTCENTERLAT=${FEEDER_LAT}
      - TAR1090_DEFAULTCENTERLON=${FEEDER_LONG}
      - TAR1090_MESSAGERATEINTITLE=true
      - TAR1090_PAGETITLE=${FEEDER_NAME}
      - TAR1090_PLANECOUNTINTITLE=true
      - TAR1090_ENABLE_AC_DB=true
      - TAR1090_FLIGHTAWARELINKS=true
      - HEYWHATSTHAT_PANORAMA_ID=${FEEDER_HEYWHATSTHAT_ID}
      - HEYWHATSTHAT_ALTS=${FEEDER_HEYWHATSTHAT_ALTS}
      - TAR1090_SITESHOW=true
      - TAR1090_RANGE_OUTLINE_COLORED_BY_ALTITUDE=true
      - TAR1090_RANGE_OUTLINE_WIDTH=2.0
      - TAR1090_RANGERINGSDISTANCES=50,100,150,200
      - TAR1090_RANGERINGSCOLORS='#1A237E','#0D47A1','#42A5F5','#64B5F6'
      - TAR1090_USEROUTEAPI=true
      #
      # --------------------------------------------------
      # GRAPHS1090 (Decoder and System Status Web Page) parameters:
      - GRAPHS1090_DARKMODE=true
      #
      # --------------------------------------------------
      - PROMETHEUS_ENABLE=true
    volumes:
      - /volume1/docker/ultrafeeder/globe_history:/var/globe_history
      - /volume1/docker/ultrafeeder/graphs1090:/var/lib/collectd
      - /proc/diskstats:/proc/diskstats:ro
      - /dev:/dev:ro
    tmpfs:
      - /run:exec,size=256M
      - /tmp:size=128M
      - /var/log:size=32M
Environment variables in the Portainer
  • In the above file, there are several parameters that have values labeled as ${PARAMETR}. These values are read from the environment variables section – which are described below.
  • Under the code editor, in the environment variables section, go to Advanced mode.

Advanced environment Portainer

  • Paste the following content, and the prompts that are in parentheses <TEXT> replace with values according to the legend described below:
FEEDER_ALT_FT=<antenna height in feet>
FEEDER_ALT_M=<antenna height in meters>
FEEDER_LONG=<latitude>
FEEDER_TZ=<time zone>
FEEDER_NAME=<location name>
ADSB_SDR_SERIAL=1090
ADSB_SDR_GAIN=autogain
ULTRAFEEDER_UUID=<Your UUID from an earlier step>
FEEDER_HEYWHATSTHAT_ID=<Your heywhatsthat ID from earlier step>
FEEDER_HEYWHATSTHAT_ALTS=<desired theoretical range altitudes>
Legend:
  • FEEDER_ALT_FT is the height of the antenna above sea level in feet,
  • FEEDER_ALT_M is the height of the antenna above sea level in meters,
  • FEEDER_LAT is the latitude of the antenna (also available at the link above),
  • FEEDER_LONG is the longitude of the antenna (also available at the link above),
  • FEEDER_TZ is the time zone in the format TZ database name,
  • FEEDER_NAME is the name of the location. It is used only in the title of the map’s website,
  • ADSB_SDR_SERIAL is the serial number of the ADS-B dongle; the previous steps set this to 1090 by default, but if you are using a different serial number, enter it here,
  • ADSB_SDR_GAIN is the desired gain of the dongle in dB or autogain, if you want the software to determine the optimal gain,
  • ULTRAFEEDER_UUID is the previously generated UUID,
  • FEEDER_HEYWHATSTHAT_ID is the code from the URL generated earlier,
  • FEEDER_HEYWHATSTHAT_ALTS is a list of altitudes in meters for which the map will display the theoretical maximum range; common starting points are 3000 meters and 12000 meters.

For example:

FEEDER_ALT_FT=50.524
FEEDER_ALT_M=15.4
FEEDER_LAT=52.16547
FEEDER_LONG=20.96719
FEEDER_TZ=Europe/Warsaw
ADSB_SDR_SERIAL=1090
ADSB_SDR_GAIN=autogain
ADSB_SDR_PPM=1
ULTRAFEEDER_UUID=00000000-0000-0000-0000-000000000000
FEEDER_HEYWHATSTHAT_ID=CW5KV545
FEEDER_HEYWHATSTHAT_ALTS=3000,12000

To return to the previous view, select Simple mode in the Portainer. In this mode, the Portainer will automatically assign the entered environment variables to the name and value categories. If you plan to add more ADS-B data aggregators to your setup, this will make the process easier, as you will be able to add variables that you will need in the future.

Implementing Docker Compose in production

The last step left is to create the environment and run the installation. To do so, under the Actions section, click on Deploy the stack and wait a while for the Docker container images to be downloaded to the device’s memory.

If everything is successful, you will see Success: Stack successfully deployed in the upper right corner of the screen, and then two newly created containers will appear in the container list. 🚀

Access to data via browser

Once configured and running using the above example, the container will make the website available on port 8080 of the host. Here are some generated web pages:

  • http://IP-ADRES-RPI:8080/ : A map of tar1090 and a table of all aircraft that the antenna detected and decoded,
  • http://IP-ADRES-RPI:8080/graphs1090/ : A page with graphs and statistics of our receiver’s performance.

Where is the ADS-B data from the station transmitted?

If you want to learn more about specific information and what protocol is used to send data from the receiver, take a look at the link here. The authors of SDR-Enthusiasts describe this question very precisely, along with a definition of who is a commercial and who is a non-profit data aggregator.

Disk I/O IOPS and Disk I/O Bandwith graphs missing in graphs1090

At the time of writing the tutorial, I noticed that input/output (I/O) data from the disk on which Ultrafeeder is installed is not being transferred to Graphs1090. In the near future, I will report the problem via a ticket on GitHub to the author of the component so that he can make an appropriate fix to the code.

ADS-B Graphs10190, Disk I/O

If you have additional questions about the setup, go ahead and leave a comment under this article or contact me directly. I will be happy to answer any concerns and help solve any problems. Your questions can help improve this guide for other users.

Additional sources and information

Thank you for reaching this point. For further exploration and more information, I recommend checking out the links below. They are valuable sources that were used in the development of this guide.

Blog
print(“Hello World”)

Welcome on my blog, where ‘Hello World’ is a symbolic start. Discover with me the fascinating world of coding and news from the world of technology.

Filip Chochół

Filip Chochol runs two blogs: personal “chochol.io” and together with his girlfriend “Warsaw Travelers” about travel. He specializes in IT resource management and technical support, and has been active in the field of cyber security awareness for almost two years. A proponent of open-source technologies, he previously worked in the film and television industry in the camera division (2013-2021). After hours, he develops interests in smart homes and networking.

Comments (1)

  • Gravatar

    amnesiasays:

    09/01/2025 at 13:32

    How about using a Synology Container Manager? Can you make a tutorial using that? Is there any changes since DSM7 and USB access?

Leave a Reply

Your email address will not be published. Required fields are marked *


This site uses Akismet to reduce spam. Learn how your comment data is processed.