FlightAware Discussions

Piaware ver 6 with Adaptive Gain Control - Install it on x86_64 Machines with Ubuntu 20, Debian 10 &11, and on RPi 2, 3, 4 with Raspbian Buster (32-bit and 64-bit)

I used those scripts to upgrade mine. I just had to edit the dump1090-fa conf to put in “net-only”.

1 Like

Any issues with UDP after the upgrade? (View Anomalies on My ADS-B stats page.)

I installed all v6 scripts. Perfect, as usual. Thanks @abcd567 !

1 Like

Installation on Arch Linux amd64

(1) DUMP1090-FA

Follow procedure here:


Follow procedure here:




[abcd@archlinux2021 ~]$ sudo systemctl status piaware

● piaware.service - FlightAware ADS-B uploader
     Loaded: loaded (/usr/lib/systemd/system/piaware.service; enabled; vendor preset: disabled)
     Active: active (running) since Mon 2021-09-06 18:13:44 EDT; 18min ago
       Docs: https://flightaware.com/adsb/piaware/
   Main PID: 306 (piaware)
      Tasks: 4 (limit: 3565)
     Memory: 39.8M
        CPU: 4.139s
     CGroup: /system.slice/piaware.service
             ├─ 306 /usr/bin/piaware -p /run/piaware/piaware.pid -plainlog -statusfile /run/piaware/status.json
             ├─ 748 /usr/bin/python3 /usr/lib/piaware/helpers/fa-mlat-client --input-connect localhost:30005 --input-type dump1090 --results beast,conn>
             └─1834 /usr/lib/piaware/helpers/faup1090 --net-bo-ipaddr localhost --net-bo-port 30005 --stdout --lat 43.5xxx --lon -79.6xxx

Sep 06 18:24:24 archlinux2021 piaware[306]: 1160 msgs recv'd from dump1090-fa (658 in last 5m); 1160 msgs sent to FlightAware
Sep 06 18:24:31 archlinux2021 piaware[306]: mlat-client(748): Input connected to localhost:30005
Sep 06 18:24:31 archlinux2021 piaware[306]: mlat-client(748): Input format changed to BEAST, 12MHz clock
Sep 06 18:24:31 archlinux2021 piaware[306]: mlat-client(748): Beast-format results connection with ::1:30104: connection established
Sep 06 18:29:24 archlinux2021 piaware[306]: 2038 msgs recv'd from dump1090-fa (878 in last 5m); 2038 msgs sent to FlightAware
Sep 06 18:29:54 archlinux2021 piaware[306]: mlat-client(748): Receiver status: connected
Sep 06 18:29:54 archlinux2021 piaware[306]: mlat-client(748): Server status:   connected
Sep 06 18:29:54 archlinux2021 piaware[306]: mlat-client(748): Receiver:   78.7 msg/s received       34.7 msg/s processed (44%)
Sep 06 18:29:54 archlinux2021 piaware[306]: mlat-client(748): Server:      0.0 kB/s from server    0.0kB/s TCP to server     0.4kB/s UDP to server
Sep 06 18:29:54 archlinux2021 piaware[306]: mlat-client(748): Aircraft: 5 of 8 Mode S, 20 of 24 ADS-B used

There were some short issues, but those were coincidental, server-side. AFAIK they got fixed by now.

1 Like

The scripts in first post of this thread install the latest version available at the time of running the script. Now the latest version is 6.1, so if these scripts are run now, these will install ver 6.1

If anyone who has already installed piaware older ver (5.0 or 6.0) using scripts in first post of this thread, re-runs these scripts, his install will be upgraded to latest version (which is now 6.1)

The reason is that script runs following command before running the package building command dpkg-buildpackage -b:

git fetch --all
git reset --hard origin/master

Running this on a Pi 3B+ with the card image and wondering about results… I used the percentage of signals > 3db to tune prior and came up with 24.5 - Turned on adaptive gain yesterday using 30 for target dynamic range but maybe don’t understand correctly what that represents. New gain at 43.9 and the signal level graph below (change is obvious). What exactly does the target dynamic range represent? I thought it would be strongest to weakest signal but if that was true, my gain before at 24.5 looks closer to that. Any comments suggestions welcome.

If I understand it correctly the dynamic range option limits the range where the signal range is adapted between the max and min range

Limiting the gain range

If you know in advance approximately what the gain setting should be, so you want to allow adaptive gain to change the gain only within a certain range, you can set minimum and maximum gain settings in dB. Adaptive gain will only adjust the gain within this range. To set this:

  • Set adaptive-min-gain and adaptive-max-gain in piaware-config; or
  • Set ADAPTIVE_MIN_GAIN and ADAPTIVE_MAX_GAIN in /etc/default/dump1090-fa ; or
  • Pass the --adaptive-min-gain and --adaptive-max-gain options on the command line.

If you know approximately where the gain should be, then a good starting point would be to set the max and min adaptive gain to +/- 10dB around your gain setting.

1 Like

Range between the loudest possible signal and the noise floor (note that the noise floor is estimated differently to the “noise” number graphed above)

(i.e. the default dynamic range target of 30dB means that adaptive gain will try to find the highest gain where the noise floor is still below -30dBFS)

Thats interesting - I had the following set when I started and it seems to have selected a gain that is over my MAX setting… I set these in the /boot/piaware-config.txt file since this is a card image - I used these since it was like 12db up and down from my previous gain setting. Making the changes in that file seemed to work as it did turn the auto gain feature ON, but looks like the other values are not sticking. If I look at the /etc/default/dump1090-fa file the min and max values are empty… I set them using piaware-config and seems good…

pi@piaware:/etc/default $ sudo piaware-config adaptive-min-gain 12.5
Set adaptive-min-gain to 12.5 in /boot/piaware-config.txt:135
pi@piaware:/etc/default $ sudo piaware-config adaptive-max-gain 36.4
Set adaptive-max-gain to 36.4 in /boot/piaware-config.txt:136
pi@piaware:/etc/default $ sudo systemctl restart dump1090-fa

Now the last line of the status shows:

Sep 10 15:01:59 piaware dump1090-fa[13974]: adaptive: reached upper gain limit, halting dynamic range scan here

so assume everything working - will monitor - thats for all the help!


For my thick skull, below -30 meaning between 0 and -30 or -30 and -100? Thanks!

A more negative number. a weaker signal, e.g. -35dBFS.

1 Like

I had a similar result. I ran it on auto for 5 or 6 days, and while my previous manual gain setting for my FA Pro Stick was 22.9, the auto gain was shifting it back and forth between 29 & 30. I had picked the previous setting based on periodically evaluating the strong messages percentage. Using the 22.9 setting got me into the ~7% range, but if I dropped another step of gain the number would fall to under 3% and I would lose aircraft. The Auto Gain settings was consistently giving me strong messages in the 20%-25% range.

I left the auto gain on because I figured that it was smarter than me, but after several days I noticed that I appeared to be averaging around 50 (~5%) fewer aircraft per day and had fallen below a couple of feeders in my area who had historically been just behind me.

I set it back to manual gain on Thursday to see if I get better results or it’s just a case of confirmation bias.

It’s really not! It’s mostly about trying to give reasonable results with zero user interaction. Manually finding a sweet spot is going to be better in almost all cases. If adaptive gain can get within 5-10% of the optimal value I’m happy… (I suspect that for your setup, a gain of 29 or 30 performs much better than max gain, right?)

For sure. I have a small upstream amp ahead of my filter (can’t remember which one is actually installed at this moment). If I set the pro stick at max gain I would probably only pick up about 6 planes per day!

Hi @abcd567 I installed 6.1 on a new station for testing. Is there any way to see what gain is being used when set to adaptive gain? Thanks!

Yes use the following command
sudo systemctl status dump1090-fa

It will show you the status and the steps taken to adjust gain.

Ctrl-c will return you to the prompt again

Other option for longer logging
$ grep "gain" /var/log/syslog.1 /var/log/syslog

third option
Another option is to look at the JSON page

Then you can see it in a text mode on the bottom of that page.

1 Like

Very interesting! Thanks.

A Useful Tip

The bash-scripts in the 1st post of this thread save the source-code folder and build .deb packages in the directory from where bash-scripts are run. After running all these bash-scripts, you will see a large number of folders and built packages in that directory (usually in /home/pi/ or /home/username/).

This can be avoided and all source-code folders & built packages can be saved in a dedicated directory by first creating a dedicated directory, then moving into that directory, then running the bash-scripts from there:

sudo mkdir Flightaware  
#instead of Flightaware, you may choose
#any other name you like

Now every time you want to run any of bash-scripts, first enter the directory Flightaware (or whatever name you have chosen to create it),

cd Flightaware  

Now copy-paste the bash-script in terminal and press Enter key to run the bash-script. All source-code folders and built packages will be saved inside folder “Flightaware”.

Next time when you want to run the bash-scripts again (to rebuilt or to upgrade to a newer version), first move into folder “Flightaware”, and then run the bash-scripts from there.


I have added above note to first post of this thread.


1 Like

Useful Tip - 2

If you have already run the bash-scripts from your home folder (/home/pi/ or /home/username/) you will have a heap of packages and folders saved there, as shown in Screenshot-1.

You can however clean up your home folder by creating a new folder “Flightaware” and moving all these packages and source-code folders into folder “Flightaware” by followin 2 simple commands:

sudo mkdir Flightaware
sudo mv dump* piawa* sky* tcl* Flightaware/

After above two commands, your home directory will look clean like shown in Screenshot-2.

The contents of folder “Flightaware” are shown in Screenshot-3

Next time when you want to run the bash-scripts again to upgrade to a newer version, first move into folder “Flightaware”, and then run the bash-scripts from there.

Screenshot-1: Home Folder Before Clean-Up



Screenshot-2: Home Folder After Clean-Up (All source-code and packages moved to folder Flightaware)



Screenshot-3: Contents of folder “Flightaware”