AIrNav FlightStick vs FA Pro Stick Plus

I have no idea if Mode-A/C is enabled (any way to check). This is a build using wiedehopf scripts (tar1090, graphs1090 etc) and then the FlightAware client.

If you are using the FA image, have a look in the config file.
Look for (or add):

# Should PiAware enable reception of Mode A/C messages when requested?
# You may need to disable this if processing Mode A/C overloads your receiver.
allow-modeac no

I’d say these numbers haven’t been seen before due to it being much more busy this summer over the UK.

That’s an airspy station but the aircraft count is much higher than last year and higher than 2020 as well, though the numbers might be skewed by equipment changes.

In other words, if you cram enough aircraft in a small space, you can get higher numbers with any SDR :slight_smile:

1 Like

Many thanks for taking the time to reply…advice very much appreciated.

It’s been a while since l have played with Gain settings but I seem to recall when I reduced the gain the amount & range of aircraft seen reduced as did my position in the RadarBox UK Ranking slipping outside the Top 10 for the first time so knee-jerk reaction was to put it back to where it was! I’ll make this my first point of interest based upon what you knowledgeable guys are suggesting.

Well I doubt that lossy coax or poor antenna placement is an issue here! Using a Watson 1090 Radar Extender fed by 8m Westflex 103 fitted with N-Type connectors mounted on top of a 16 foot pole bolted to the apex of a two-storey house on a hill 142m asl which is just about the highest point in my town! Base of the antenna is 152m asl and has a unobstructed 360 view. I have always enjoyed excellent TV, Radio, ATC, CB/SSB etc. reception over the years. This photo was taken in 2008 and the TV, FM and DAB antennas have long gone leaving the 1090MHz all on its own.

Polar diagram here;

Well unless dump1090-fa enables Mode A/C by default I don’t have it enabled in the config and looking at SkyAware all 300+ aircraft currently listed are showing altitude but half-a-dozen of those might be missing speed, distance or heading if that is anything to go by?

With your continued help I will focus on trying to optimise my station rather than worry about comparing AN vs FA or updating any of the software for the time being so I have set the gain to 42.1 as suggested as from now and will see what difference that might make.

Thanks & kind regards,
-=Glyn=-

A quick sudo systemctl status dump1090-fa returns;

● dump1090-fa.service - dump1090 ADS-B receiver (FlightAware customization)
   Loaded: loaded (/lib/systemd/system/dump1090-fa.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2022-07-26 11:38:30 BST; 23h ago
     Docs: https://flightaware.com/adsb/piaware/
 Main PID: 521 (dump1090-fa)
    Tasks: 3 (limit: 4915)
   CGroup: /system.slice/dump1090-fa.service
           └─521 /usr/bin/dump1090-fa --quiet --device-type rtlsdr --gain 60 --fix --lat 52.***** --lon -1.***** --max-range 360 --net-ro-port 30002 --net-sbs-port 30003 --net-bi-port 30004,30104 --net-bo-port 30005 --json-location-accuracy 1 --lat 52.****** --lon -1.****** --write-json /run/dump1090-fa

Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.

Not sure why I should have two separate instances of lat/lon but the first instance goes to 5 decimal places where the second instance is to 6 decimal places which mirrors the entry in 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=""
# Initial receiver gain, in dB. If adaptive gain is enabled (see below) the actual gain
# may change over time
RECEIVER_GAIN=60

# Adjust gain to try to achieve optimal dynamic range / noise floor?
ADAPTIVE_DYNAMIC_RANGE=no
# 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=auto
# 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=" --lat 52.****** --lon -1.******"

# 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

My installation is a package version not the image version if that makes a difference?

Thanks & kind regards,
-=Glyn=-

Using sites like Radarbox etc are not a good solution finding the best gain.
I would suggest checking with the method @wiedehopf documented on his wiki pages as suggested already.

Optimizing gain · wiedehopf/adsb-scripts Wiki (github.com)

Or this mega thread:
Thoughts on optimizing gain - FlightAware / ADS-B Flight Tracking - FlightAware Discussions

I am always doing it manually and not using the auto gain feature of dump1090.
A while ago i am using readsb only and set gain manually. I find it better than dump even if you have to manually set gain. But i am normally not a fan of too much automatism

Beside checking the graphs there is also a short command line in the wiki article above where you can check the values without waiting for too long.

It can be enabled via a network connection.
rbfeeder does that.

1 Like

Confirmed.

The source of 1st set of lat/lon is the settings you made in file /etc/defaukt/dump1090-fa.

The source of 2nd set of lat/lon is piaware, which obtains it from Flightaware server at login and stores it aslocation.env variable in it’s cache. The dump1090-fa picks these from there.

The following functions in file /user/share/dump1090-fa/start-dump1090-fa read lat & lon values from variable location.env stored in piaware cache.


if [ -f /var/cache/piaware/location.env ]
then 
    . /var/cache/piaware/location.env 
fi 

... ... ...
... ... ...
... ... ...

if [ -n "$RECEIVER_LAT" -a -n "$RECEIVER_LON" ]; then
    OPTS="$OPTS --lat $RECEIVER_LAT --lon $RECEIVER_LON"
 elif [ -n "$PIAWARE_LAT" -a -n "$PIAWARE_LON" ]; then
    OPTS="$OPTS --lat $PIAWARE_LAT --lon $PIAWARE_LON" 
fi

Thanks for following up on this for me…it’s been a long day and I’m off to bed in a minute so will reply properly tomorrow.

I just wanted to pull another set of graphs by way of comparison after I reduced the gain from 60 to 42.1 to see if I am moving in the right direction and to see what you guys think…here we go. No prizes for guessing what time I reduced the gain; :crazy_face:

SkyAware is currently showing the following at 11pm local time;
Aircraft: 109
Positions: 102
Messages: 1868.2

I’ll continue to monitor things over the next 24 hours to see what the 48 hour graphs show.

Thanks once again for your help & support in guiding me towards the optimum setup. This is still using the AN FlightStick which has been in use for the last two years so when I get a better understanding I will try the FA Pro Stick Plus with & without the dark blue 1090 filter to compare the two.

Thanks & kind regards,
-=Glyn=-

The numbers are looking better to me. You could even set the gain one or two steps lower ( 38.6 or 40.2)

These numbers still doesn’t match to me.
I doubt the messages of almost 1900 is still to high for 109 aircraft only. But - whatever…
As i don’t know the setting for dump1090-fa on disabling the Mode-A/C somebody else might need to help.

EDIT:
found it. You need to add -no-modeac to the config.
I’ve reported a similar thing last year here:

But different to your setup it only showed the rates on the map, not in graphs. So it could be that your values are correct.

In this thread obj explained where to put the command line switch in the new dump1090 config format.

The graphs are consistently lower than his value on the map.

The 1900 spike on the graph corresponds to 350 aircraft on the graph.
That’s a lot of aircraft in range. Which results in a high message rate.

I’m not certain but i think i did some improvements on the demodulation (and obj used some of those improvements and made some on top).
That was probably after most of the people posting message counts switched to an airspy.
So that could be another 50 to 100 messages i suppose …
The numbers aren’t surprising to me.
I’d be curious to look at his local map … see if there is noise coming through as aircraft or something like that. But i doubt it’s a lot.
It can contribute to the number on the map though (less usual to contribute much to the graph numbers).

Really if you’re gonna compare stuff, you need exactly the same decoder, somehow verify it’s not including bogus stuff … it’s pretty complicated.
Mostly the numbers tell you if you have more traffic / improved your receive chain somehow.
Comparing with others … the graphs aren’t perfect for that, especially with decoders using different approaches in some areas the results aren’t 100% comparable.

I was referring to his statement above:
Aircraft: 109
Positions: 102
Messages: 1868.2

That i interpret at 1868 messages with 109 current aircraft on the map.

But i fully agree to you. Don’t make things bigger as they are.

Yeah I know. I was using RB as a ‘quick & dirty’ method. Adjust gain/check ranking. As it slipped down after changing gain I just put it back to where it was! :crazy_face:

I did read weidehopf’s github, the thread you referred to and more besides. I have even posted in some other thread(s) about gain showing graphs.

Like you I prefer to set things manually but only when I fully understand what I am doing! :stuck_out_tongue_winking_eye:

Ah I didn’t realise that. I do use rbfeeder. Is there a definitive way to see if rbfeeder has turned it on or if it is active? To foxhunters point I could add -no-modeac to the config but would rbfeeder still override that? Would be good to see the currently loaded state of modeac.

Excuse my ignorance but is that as simple as just zooming in on my home location or is there another way of producing this?

Here is the last two days of charts if it helps;

To my uneducated eye the top chart looks very similar certainly not negatively impacted by lowering the gain. Obviously the ADS-B Signal Level is down but maybe that’s not a bad thing if the messages received are ‘clearer’ but there is a lot more fluctuation unlike the almost flat line in the previous 24 hours but maybe that previous signal is ‘topping out’ or something which may not be ideal?

Just groping around in the dark here until someone who really understands these things turns up and gives an educated opinion… :blush:

Thanks & kind regards,
-=Glyn=-

You look at the list and check low message count aircraft in the list if they are actually in the area using a global service like adsbexchange.

Determining bogus messages coming in for legitimate aircraft are hard to detect really :slight_smile:
But that’s usually not too terrible with the common decoders.

Yes, why would it be mentioned in this context if it didn’t do that?

I use Planeplotter which also turns on ModeA/C messages on my installation with the ProStick plus…
My figures on the map and graphs are pretty close to what you get.
With Planeplotter running the graphs show about 1500 m/s whereas the map shows about 2300.
Stopping Planeplotter (thus turning off the ModeA/C) reduces the figure on the map to around 1500.
Planeplotter also shows the numbers of Mode S and A/C messages and this ties up pretty well (see attached), so it looks pretty convincing that the excess numbers shown on the map are due to ModeA/C

image

From my experience, RB does not do any changes to the dump1090 config. It obviously only relies on having the option explicitly mentioned.

I installed dump1090, then RB where the message jump started.
After i added the option to dump1090 config and restarted the service, it turned back to normal, even after a restart of RB

That’s my observation from my installation.
Looks like a readsb installation is not impacted because there is a switch to turn Mode-AC on, but it seem to be disabled per default if this option isn’t set

No it relies on enabling modeac via the beast network connection.

Yeah readsb has this automatic enabling disabled …
This has come up often enough i consider changing the way tar1090 displays the message rate.
Or maybe work with obj to change both readsb and dump1090-fa to emit a message count that doesn’t include mode A/C messages.
But not sure he’d like such a change and … probably i’ll just forget about it as being not important :slight_smile:

Or so…
That’s exactly what i meant. Another reason why i prefer readsb over dump1090-fa :slight_smile:

Agreed. There are lot more of things in life way more important than an ADS-B message rate :slight_smile:

Ah…so starting to make sense now…thanks foxhunter. Despite dump1090-fa not enabling mode a/c it seems like AirNav have sneakily enabled it by sending the command across the network by stealth. Sounds like the kind of thing AN would do as they have previous form on overriding user preferences to send data…I wonder what they are doing with MY data this time?

A quick
jq < /run/dump1090-fa/stats.json '.total.local'
returns;

{
  "samples_processed": 407824629760,
  "samples_dropped": 0,
  "modeac": 70186894,
  "modes": 2725158433,
  "bad": 1098770878,
  "unknown_icao": 1105093835,
  "accepted": [
    232700323,
    8651569
  ],
  "signal": -14.1,
  "noise": -24.4,
  "peak_signal": -0.4,
  "strong_signals": 1302636

So Mode A/C is definitely turned on despite my not enabling nor being aware of it.

I have tried putting NO_MODEAC_AUTO=yes in EXTRA OPTIONS as suggested by obj but that seems to stop dump1090-fa from running altogether?

Looking at my dump1090-fa where should I insert either NO_MODEAC_AUTO=yes or --no-modeac-auto or -no-modeac (which one is it?) for it to work as expected please?

Also looking at that same file should I comment out those lines that don’t have a value and should I remove the second occurrence of my lat/lon under EXTRA OPTIONS?

To make things easier (I hope) here is my dump1090-fa below;

# 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=""
# Initial receiver gain, in dB. If adaptive gain is enabled (see below) the actual gain
# may change over time
RECEIVER_GAIN=42.1

# Adjust gain to try to achieve optimal dynamic range / noise floor?
ADAPTIVE_DYNAMIC_RANGE=no
# 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=auto
# 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=" --lat 52.****** --lon -1.******"

Thanks & kind regards,
-=Glyn=-