Hello friends
For a few days I have been trying to configure client 2.0 with a Raspberry PI 3 and an RSP1 without luck. When executing journalctl -f -u satnogs-client.service I get the image error and the station appears offline. Can anybody help me?
import distutils.version
[...]
ValueError: bad marshal data (unknown type code)
This error indicates an issue with one or more compiled Python modules (pyc files) on your station, see also this SO question.
It might be related to the recent change from Python2.7 to Python3 for satnogs-client. PEP 552, implemented in CPython with release Python 3.7, added 4 bytes to the header of the Python pyc / bytecode files.
Please also make sure that you have installed the soapysdr module for the SDR Play. To check if Soapy finds the SDRPlay module just run SoapySDRUtil --info
Yeap. You need to install it manually, cause the driver library is closed source. Follow the procedure from https://github.com/pothosware/SoapySDRPlay/wiki and make sure that the installation path matches the path that Soapy on your machine searches for modules.
Soapy is already installed yes. For each device family soapy has a module that has to be installed. For the devices with open drivers everything is installed in the SatNOGS image. This is not true for the SDRPlay because it ships with a closed source driver. You have to compile and install the soapy module for the SDRPlay yourself.
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.
So I’m wondering what the gain distribution algorithm did in that case?
I also note that those observations are missing all the usual observation metadata, so were these not captured using gr-satnogs?