HOWTO: Airspy mini and Airspy R2: Piaware / dump1090-fa configuration

(1) PLANEFINDER DATAFEEDER

wget http://client.planefinder.net/pfclient_4.1.1_armhf.deb
sudo dpkg -i pfclient_4.1.1_armhf.deb

After installation finishes, in browser go to address IP-of-PI:30053, and enter following info:

  • Share code:
  • Receiver Lat:
  • Receiver Lon:
  • IP address: 127.0.0.1
  • Port number: 30005

(2) FLIGHTRADAR24 DATAFEEDER

sudo bash -c "$(wget -O - https://repo-feed.flightradar24.com/install_fr24_rpi.sh)"

After above script finishes installation, it will start “sign-up” wizard and display following message:
“Welcome to the FR24 Decoder/Feeder sign up wizard!”

Enter your

  • email address
  • sharing key
  • latitude
  • longitude
  • altitude
  • autoconfig (yes/no)$: y
  • logfile mode: 0
  • logfile path: /var/log/fr24feed
sudo systemctl restart fr24feed

In browser, go to address IP-of-PI:8754/settings.html
(1) Change Receiver :
From AVR (TCP) to Mode S Beast (TCP)

(2) Change Host/IP
From 127.0.0.1:30002 to 127.0.0.1:30005

Click “Save” button, then “Restart” button.
Both these buttons are at bottom-right corner of settings page.
See screenshot below

To Check Status:
(1) Go to address IP-of-PI:8754 in browser
(2) Give following command

fr24feed-status

Ok, odroid now up on the pole. Seems to be working ok, only 1 issue, the graph ADSB max range not showing data, all others working. Thanks for above feeder entries :slight_smile:

Have you claimed piaware yet or set piaware to your old feeder-id you are no longer using?

For Beginners - How to Get Back Existing Station Number in A Fresh Install

When piaware gets a location, so does dump1090-fa.
That location is required for range calculations.
You might need to reboot for the location to be updated.

It’s my pleasure. You’re welcome.

For testing i changed from gain 15 to gain 12, interesting:

image

Weakest signal RSSI went from -23 to -35 dBFS.

That looks like quite a large change. Perhaps the single gain setting in the airspy decoder changes more than one parameter internally.

It has multiple gain stages, 1 step is meant to be 3 dB approximately.
But if the gain stage settings when combined don’t allow that specific difference it’s just different.

So for 3 steps you’d expect approximately 9 dB difference, so a difference of 10 or 11 is close to 9 in a rough sense :slight_smile:

It’s not a exact science anyway with these measurements.
Maybe for some reason i can detect weaker signals than with the higher gain setting.
That sounds counter-intuitive, but it’s possible.

The airspy has several gain controls that you can see in software like SDR# if you set the gain to “Free”. You can adjust LNA gain, Mixer gain and IF gain. It’s reasonable to assume that on something like the adsb decoder with just one gain setting, there is a combination of those settings changing to get the ~3dB steps. Perhaps a lower gain setting results in a lower noise floor due to the combination of these internal settings and that allows better reception of distant signals.

ADS-B should be limited by line of sight rather than signal strength anyway given the transmitter power used (can be up to 500W).

Perhaps a utility to produce a histogram of received RSSIs would be useful for setting gains - should be possible capturing the aircraft.json for a period of time.

I can make a stacking graph with every colored area corresponding to 5 dB :wink:
Should only be 9 bins to collect data from.

Hmmm. Probably not.
Something like that with ranges would be interesting though.

http://airspy.com/downloads/airspy_gain_modes.xlsx

And a short explanation from prog

https://airspy.groups.io/g/main/topic/gain_settings_help/7725868?p=,,,20,0,0,0::recentpostdate%2Fsticky,,,20,2,0,7725868

1 Like

Possibly a change to the script used to get the data and put it into collectd would work. You wouldn’t actually need to store a histogram, but could calculate a 5 number summary for each sample and store the values in collectd. That would allow you to plot the signal distribution in a way that would be good enough to show how well adjusted the gain is. Should work for dump1090 decoding as well.

What is that? :slight_smile:
Haven’t dabbled in statistics for a while.

Nevermind it’s an actual term you can google!

Already storing minimum and maximum, so adding 3 values should be easy.

Yep, it’s a pretty standard way to show the distribution of a data set.

Yep, it’s a pretty standard way to show the distribution of a data set.

min, first quartile, median, third quartile, max.

Does this look sane:

124             signals.sort()
125 
126             if length > 0 :
127                 minimum = signals[0]
128                 quart1 = signals[length/4]
129                 median = signals[length/2]
130                 quart3 = signals[3*length/4]                                                                                       
131                 maximum = signals[-1]

The sort puts the list in ascending order, length is the number of items in the list.
Oh wait already see a problem with a 1 element list.
Nevermind it should do integer math and round down.

Not sure how i’m gonna solve the problem of average signal vs median.
Plotting both would be ugly.

stick with one. Median is sensible

Well changes are changes, most people don’t update the graphs anyway :slight_smile:

Hmm, but that would make the already recorded average not show.
I’ll think about it.

Which average is more representative is dependent on the data set. It’s situational, but you usually use the median when representing distribution, since with the mean a few outliers can skew it quite heavily one way or the other.

do we know if the airspy uses linearity or sensitivity mode for ads-b?