Also be warned - SoapySDRPlay uses somewhat unconventional gain settings, and setting any gain at all will result in a heap of attenuation being added. See this issue here: https://github.com/pothosware/SoapySDRPlay/issues/60
Because the latest SatNOGS updates don’t allow for the user to set these different gain parameters separately, it means that the default ‘gain distribution’ (and I use this term extremely loosely) in SoapySDR is used. This gain distribution basically takes the number you give it, and ‘fills up the gain buckets’ in whatever order the SDR module presents them. This can result in seriously bad gain settings on devices like the Airspy and SDR Play.
Yes, this is in part the fault of the SDR module authors not implementing gain distribution algorithms. Some of the modules have issues and/or PRs open to at least partially fix things. However it’s also partly the fault of the Soapy developers for possibly not realising that their gain distribution algorithm made basically no sense in the first place. Given how different some of these SDRs are, a ‘one-size-fits all’ solution is probably a bit idealistic.
Until either the upstream Soapy modules are changed to deal with gain distribution, or SatNOGS provides a way to set individual gains, then any SDR which more than one gain parameter is going to result in degraded performance, or a non-functional setup. This applies to the Airspy, SDRPlay, and probably other SDRs too. As the RTLSDRs only have one gain setting exposed (though realistically there should be 3 exposed, but librtlsdr doesn’t do this), it will work OK.