FlightAware Discussions

Really Bad performance with PiAware 6.x

Anyone else had issues with really bad performance since upgrading to PiAwaer 6.x? Prior to upgrading, running PiAware 5.x, I’d been tracking about 40000 Total positions per day. Since the upgrade I’m under 15000 positions / day and the range has been cut almost in half.

I’ve messed with autogain a bit, but that doesn’t seem to help much. Wondering if there’s some other knob that needs tweaking?

TIA
Will

Package or sdcard install?
Upgrade or re-install? How did you do the upgrade?
What configuration changes did you make?

Details would be helpful
It was upgraded from PiAware 5.x to 6.x
This is a package install. And I’ve pasted both the dump1090-fa and dump978-fa files … I think the only changes I’ve made are to the dump1090-fa file though (ADAPTIVE_DYNAMIC_RANGE=yes )

$ sudo uname -a
Linux tkokv1 5.10.60-v7+ #1449 SMP Wed Aug 25 15:00:01 BST 2021 armv7l GNU/Linux
$ cat /etc/os-release 
PRETTY_NAME="Raspbian GNU/Linux 10 (buster)"
NAME="Raspbian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"

configs

$ cat /etc/default/dump1090-fa
# dump1090-fa configuration
# This is sourced by /usr/share/dump1090-fa/start-dump1090-fa as a
# shellscript fragment.

# dump1090-fa won't automatically start unless ENABLED=yes
ENABLED=yes

# SDR device type. Use "none" for a net-only configuration
RECEIVER=rtlsdr
# serial number or device index of device to use (only needed if there is more than one SDR connected)
RECEIVER_SERIAL="00001090"
# Initial receiver gain, in dB. If adaptive gain is enabled (see below) the actual gain
# may change over time
RECEIVER_GAIN=


#RECEIVER_OPTIONS="--device-index 00001090 --gain -10 --ppm 0"
#DECODER_OPTIONS="--max-range 360 --fix"
#NET_OPTIONS="--net --net-heartbeat 60 --net-ro-size 1300 --net-ro-interval 0.2 --net-ri-port 0 --net-ro-port 30002 --net-sbs-port 30003 --net-bi-port 30004,30104 --net-bo-port 30005"
#JSON_OPTIONS="--json-location-accuracy 1"

# Adjust gain to try to achieve optimal dynamic range / noise floor?
ADAPTIVE_DYNAMIC_RANGE=yes
# Target dynamic range in dB (leave blank to autoselect based on SDR type)
ADAPTIVE_DYNAMIC_RANGE_TARGET=
# Reduce gain when loud message bursts from nearby aircraft are seen?
ADAPTIVE_BURST=no
# Gain range to allow when changing gain, in dB (empty = no limit)
ADAPTIVE_MIN_GAIN=
ADAPTIVE_MAX_GAIN=

# Turn on options to reduce load on slower CPUs, at the expense of slightly worse decoder performance.
# Setting "auto" will enable these options only if the CPU appears to be a slow CPU (currently this
# means armv6 only, e.g. Pi Zero)
SLOW_CPU=no
# Local wisdom file used to select DSP implementations; uses built-in ranking if the file is missing
WISDOM=

# Correct CRC errors where possible
ERROR_CORRECTION=yes

# Receiver location, used for some types of position decoding. Provide the location as
# signed decimal degrees. If not given here, dump1090 will also try to read a receiver
# location from /var/cache/piaware/location.env (written automatically by PiAware, if installed)
RECEIVER_LAT=
RECEIVER_LON=
# Maximum range, in NM. Positions more distant than this are ignored. No limit if not set.
MAX_RANGE=360

# Network ports to listen on for connections
NET_RAW_INPUT_PORTS=
NET_RAW_OUTPUT_PORTS=30002
NET_SBS_OUTPUT_PORTS=30003
NET_BEAST_INPUT_PORTS=30004,30104
NET_BEAST_OUTPUT_PORTS=30005

# Accuracy of location written to JSON output
JSON_LOCATION_ACCURACY=1

# Additional options can be added here:
EXTRA_OPTIONS=""

# If OVERRIDE_OPTIONS is set, only those options are used; all other options
# in this config file are ignored.
OVERRIDE_OPTIONS=""

# This is a marker to make it easier for scripts to identify a v6-style config file
CONFIG_STYLE=6

$ cat /etc/default/dump978-fa 
# dump978-fa configuration
# This is sourced by /usr/share/dump978-fa/start-dump978-fa as a
# shellscript fragment.

# If you are using a PiAware sdcard image, this config file is regenerated
# on boot based on the contents of piaware-config.txt; any changes made to this
# file will be lost.

# dump978-fa won't automatically start unless ENABLED=yes
ENABLED=yes

RECEIVER_OPTIONS="--sdr driver=rtlsdr,serial=00000978 --format CS8"
DECODER_OPTIONS=""
NET_OPTIONS="--raw-port 30978 --json-port 30979"

What gain did adaptive gain end up picking? It sounds like your previously configured gain was a better choice - consider turning off adaptive gain and just setting a manual gain.

$ grep gain /etc/default/dump1090-fa.pre-v6-upgrade 
RECEIVER_OPTIONS="--device-index 00001090 --gain -10 --ppm 0"

Previous gain looks like it was -10 which I thought was auto as well in PiAware 5

-10 is “use the tuner AGC” which due to hardware + modulation quirks actually means “set a very high gain”. For ADS-B reception, there’s nothing much “auto” going on with that setting.

v6 tries to clear up that confusion a little by not referring to it as AGC at all; it’s now just another fixed gain step at around 60dB. You can set the same hardware gain settings in v6 with RECEIVER_GAIN=60. (-10 is also still understood)

A straight upgrade from v5 with no further config changes would have left your gain settings untouched, in theory.

2 Likes

well. I think when I did the upgrade initially I hit the upgrade button in the flightaware console and it failed for some reason, so I ended up running a apt upgrade after that.
It’s been more than a day so my memory is fuzzy…

Adjusted as follows and restarted dump1090-fa will see if it helps.

$ egrep 'GAIN|ADAPTIVE' /etc/default/dump1090-fa
RECEIVER_GAIN=60
ADAPTIVE_DYNAMIC_RANGE=no