Airspy R2 on Ubuntu 22.04

In the past I’ve run the generic SDRs off of a RPI4 running piaware getting pretty decent results with one of the 978/1090 5.5dbi antennas and a Flightaware filter.

After using this setup for 2 years I decided it was time for an upgrade. I purchased an Airspy R2 and a Mini-Circuits ZFL-2500VH+ LNA. This gave me quite good results on the RPI4, but when checking the 1090 logs I noticed I was getting lost messages, over 300,000 in 5 days.

After seeing the lost messages, I decided that I should upgrade the host system so it could handle more data from the SDR. I purchased a HP Elite desk 705 G5 Mini with a Ryzen 5 Pro 3400G and 16GB of memory and a 256GB NVMe SSD to serve as my new host machine. After installing Ubuntu 22.04 and getting everything setup as this forum suggested I noticed I’m not getting nearly the performance gains expected. I’m some cases I’m seeing a reduction in performance compared to the Pi4. I’ve tried doing basic tuning of the gain but it seems that max gain at 21 gives me the best RSSI ratings under 0.

I’m looking for any suggestions people may have a similar set-up. I’m also open to running other higher end SDRs that may yield better results, just not the ones that are several hundred dollars like the German Mode-S Beast which seems to be the highest end dedicated ADS-B SDR on the market from what I can tell.

What settings are you running airspy_adsb with? The output of the following command will give you this:

sudo systemctl status airspy_adsb

The output for my Airspy Mini is below the line starting with the PID of 334 shows all the parameters:

airspy_adsb.service - Airspy ADS-B receiver
     Loaded: loaded (/lib/systemd/system/airspy_adsb.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2023-04-27 14:36:34 AEST; 2 weeks 3 days ago
       Docs: https://discussions.flightaware.com/t/howto-airspy-mini-piaware-dump1090-fa-configuration/44343
   Main PID: 334 (airspy_adsb)
      Tasks: 9 (limit: 472)
        CPU: 2w 6d 19h 49min 19.510s
     CGroup: /system.slice/airspy_adsb.service
             └─334 /usr/local/bin/airspy_adsb -v -t 300 -f 1 -w 5 -P 7 -e 18 -R rms -l 47787:beast -c 127.0.0.1:30004:beast -g auto -m 20 -S /run/airspy_adsb/stats.json

Apr 27 14:36:34 pi43 systemd[1]: Started Airspy ADS-B receiver.
Apr 27 14:36:34 pi43 airspy_adsb[334]: airspy_adsb v2.2-RC30
Apr 27 14:36:34 pi43 airspy_adsb[334]: Listening for beast clients on port 47787
Apr 27 14:36:34 pi43 airspy_adsb[334]: Acquired Airspy device with serial B8B067DC3623901F
Apr 27 14:36:34 pi43 airspy_adsb[334]: Decoding started at 20 MSPS (Gain: auto; Preamble Filter: 18.0)
Apr 27 14:36:35 pi43 airspy_adsb[334]: Push client connected to 127.0.0.1:30004 (beast)
Apr 27 14:36:35 pi43 airspy_adsb[334]: Push client disconnected from 127.0.0.1:30004 (beast)
Apr 27 14:36:48 pi43 airspy_adsb[334]: Push client connected to 127.0.0.1:30004 (beast)
May 03 08:22:04 pi43 airspy_adsb[334]: Push client disconnected from 127.0.0.1:30004 (beast)
May 03 08:22:17 pi43 airspy_adsb[334]: Push client connected to 127.0.0.1:30004 (beast)

Running with maximum gain may not be optimum - airspy_adsb’s auto gain setting is very effective (-g auto) and many airspy users here use that. Also, do you have graphs1090 installed?

https://github.com/wiedehopf/graphs1090#graphs1090

This produces an airspy-specific set of charts (example below) that will help people to comment on your setup.

The Airspy Misc shirt shows auto gain in action. In my case the gain only goes to maximum when there are no or very few aircraft within range.

There are people with a lot more knowledge than me here who will be able to comment. Posting these details will give them something to work from.

Here is the output for mine:

● airspy_adsb.service - Airspy ADS-B receiver
     Loaded: loaded (/lib/systemd/system/airspy_adsb.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2023-05-14 13:20:27 MDT; 8h ago
       Docs: https://discussions.flightaware.com/t/howto-airspy-mini-piaware-dump1090-fa-configuration/44343
   Main PID: 1600735 (airspy_adsb)
      Tasks: 9 (limit: 16557)
     Memory: 20.7M
        CPU: 13h 6min 59.020s
     CGroup: /system.slice/airspy_adsb.service
             └─1600735 /usr/local/bin/airspy_adsb -v -t 90 -f 1 -w 5 -P 8 -C 95 -e 50 -E 60 -l 47787:beast -c 127.0.0.1:30004:beast -g 21 -m 20 -S /run/airspy_adsb/stats.json

May 14 13:20:27 adsb systemd[1]: Started Airspy ADS-B receiver.
May 14 13:20:27 adsb airspy_adsb[1600735]: airspy_adsb v2.2-RC30
May 14 13:20:27 adsb airspy_adsb[1600735]: Listening for beast clients on port 47787
May 14 13:20:27 adsb airspy_adsb[1600735]: Acquired Airspy device with serial 744C60C82142134F
May 14 13:20:27 adsb airspy_adsb[1600735]: Decoding started at 20 MSPS (Gain: 21; CPU target: 95 %)
May 14 13:20:28 adsb airspy_adsb[1600735]: Push client connected to 127.0.0.1:30004 (beast)

I looked at the spec’s of your LNA. Very wide band, 10 MHz to 2.5 GHz. This could be affected/overloaded by non-ADSB signals and thus limiting the ADSB signals into your receiver. You could try adding your 1090 MHz bandpass filter before the LNA to see if the out of band signals are affecting your results. Worth trying, have fun with it all.

1 Like

That’s a good idea, do you think it would be beneficial to move my current filter in front of the LNA or should I get a new filter and filter before and after the LNA?

You could try both, Antenna > filter > LNA > Receiver and Antenna > LNA > filter > Receiver. If there are other signals swamping the LNA, the first arrangement will likely work better. The Filters do decrease the overall signal so, both options should be tried. Hope your system is easy to get to and change. It is a fun hobby and every situation is different. Have fun with it.

1 Like

That ended up increasing the number of messages/second by about 50-75! Looks like noise was probably a factor then. Since I’m only running 1090 but I have an antenna that is rated for 987 and 1090 and my filter is rated for 987 and 1090 would it be better to get a 1090 antenna and filter to further reduce noise?

I have not had noise problems in my setups, so cannot say much about the relative filter results. Probably depends on where you are located and what kinds of noise sources are around you. Cell towers and Radio stations have the power to mess with ADSB results. Flightaware has a light blue filter and is likely the one you own. They do have a 1090 only filter, but I do not see it generally available in the US.

You could set up a microSD card with spectrum analysis program, and actually see what kind of signals are in your area. You would probably need a display to do that. This might be a place to start looking: Do I Need A Filter? - #3 by abcd567

Fair enough, I live near an airport and 4 military bases so I’m thinking there is a high likelihood of interference from those sources.

1 Like

Sounds like San Antonio, lived there for a few years while in the USAF. Now in NW Florida, near Navy bases.

1 Like

Revisiting your original post are you talking about the difference between the number of messages reported by piaware as received from dump1090-fa and the number sent to FlightAware? (I use readsb, but I think the log entry is similar.)

May 16 16:41:38 pi43 piaware[942]: 6325827 msgs recv'd from readsb (2683 in last 5m); 6279878 msgs sent to FlightAware

If so, then the messages are not actually “lost” - there were a couple of recent threads on this, but I can only find one.
https://discussions.flightaware.com/t/piaware-only-forwarding-a-small-percentage-of-received-messages/87861

An older thread that explains what is happening is this one:

If I’ve assumed correctly, then there probably wasn’t a problem with running the R2 on the Raspi 4 (noting that you will get better results with a filter on either machine).

graphs1090 will let you easily see which position of filter and LNA gives the best results.

Looking at your airspy_adsb parameters, I think you should experiment with fixed values for -e and delete -C and -E. You are basically thrashing the processors - targeting 95% to be used by airspy_adsb but are very unlikely to be getting more than a fraction of a percent of extra positions than with much more conservative values. The -e value and other parameters I use are very conservative, but testing these settings on a batch of samples from my setup, showed I was missing only around 0.5% of positions and my Pi4 runs at 30% load. As I said previously also see what happens when you turn down the gain.

As @astrodeveloper says, there are no universally correct settings. It all comes down to experimentation - the rules of thumb for other SDRs often don’t translate to Airspys. That’s another reason to install graphs1090 and use the airspy charts to see if results get better or worse as you play with the parameters. (With the R2 you can also play with the 24M sample per sec rate - from memory people reported the Pi 4 struggled with -m 24, but your hardware probably won’t.)

2 Likes

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.