Missing Waterfall with usb_claim_interface error -6

For a guide on how to adjust the gains optimally (at least in most situations), have a look at this guide here: https://wiki.satnogs.org/Omnidirectional_Station_How_To#Setting_the_gain

Yep - I was looking at the guide last night. But I ran into problems. I have an E4000 tuner which has 6 IF gain settings, a mixer gain setting and a LNA gain setting (I have a datasheet for the part). I ran CubicSDR/SoapyRemote and when I turned off automatic gain in the program, the controls for the 6 IF gain and LAN gain (I think, it is labelled ā€œtunerā€) settings appeared. But when I change a setting for an IF stage, something immediately changes other IF gains (not necessarily back to the original). So I am still fighting some kind of automatic gain control. The only way I can boost gain is to turn auto gain control back on, and then the waterfall comes up about 15 dB.
When I upgraded my pi from 0.9 to 1.3.1, I had left the single gain parameter (rf gain = 34) the same. I dont know how the firmware was splitting that gain across the gain stages. If anyone can send me a link to the rtlsdr driver for the E4000 would be great (see if I can work through the code).

And just to add the ā€œTunerā€ gain value in CubicSDR doesnt appear to have any effect (it doesnt cause any IF gians to change, or the waterfall level to change.)

OK, so I think the issue here is that in the previous version of SatNOGS, gr-osmosdr was the SDR backend, and when you adjusted the gain it probably only adjusted the LNA gain (or at least it would have only adjusted one of them).

The updated SatNOGS client uses the SoapySDR backend, which can access more of the gain settings, however to do so you have to use the ā€œSettings Fieldā€ gain mode, and then enter all the gain settings in manuallyā€¦ If you use the ā€˜Overallā€™ gain mode, the gain is distributed across the available gain settings in a fairly naive way which will not result in good performance.

Could you post the output of SoapySDRUtil --probe so we can see whatā€™s exposed to the user?

Does it make sense to get 2 different results depending if you use the command ā€œSoapySDRUtil --probeā€ or ā€œSoapySDRUtil --probe=ā€œdriver=rtlsdrā€ā€? See results below. I compared driver options with the datasheet and I am guessing that the datasheet Mixer Gain (4dB or 12dB) and LNA gain (-5dB to 30dB in 13 steps) have been lumped together and called Tuner gain (-1dB to 42dB) in the driver. I have been trying different ā€œSatnogs RF gainsā€ and I have only been able to get the waterfall top limit to move about 4dB when using the new firmware. Observations 2319836 and 2312318 show examples of old vs new firmware (0.9 vs 1.3.1) results.

http://network.satnogs.org/observations/2319836/
http://network.satnogs.org/observations/2312318/

pi@pisatellitevhf:~ $ SoapySDRUtil --probe
######################################################

Soapy SDR ā€“ the SDR abstraction library

######################################################

Probe device
[INFO] [UHD] linux; GNU C++ version 8.3.0; Boost_106700; UHD_3.15.0.0-2

RtApiAlsa::getDeviceInfo: snd_pcm_open error for device (default), No such file or directory.

Found Elonics E4000 tuner


ā€“ Device identification

driver=RTLSDR
hardware=E4000
origin=https://github.com/pothosware/SoapyRTLSDR
remote:version=0.5.1-unknown
rtl=0


ā€“ Peripheral summary

Channels: 1 Rx, 0 Tx
Timestamps: NO
Other Settings:
* Direct Sampling - RTL-SDR Direct Sampling Mode
[key=direct_samp, default=0, type=string, options=(0, 1, 2)]
* Offset Tune - RTL-SDR Offset Tuning Mode
[key=offset_tune, default=false, type=bool]
* I/Q Swap - RTL-SDR I/Q Swap Mode
[key=iq_swap, default=false, type=bool]
* Digital AGC - RTL-SDR digital AGC Mode
[key=digital_agc, default=false, type=bool]


ā€“ RX Channel 0

Full-duplex: YES
Supports AGC: YES
Stream formats: CS8, CS16, CF32
Native format: CS8 [full-scale=128]
Stream args:
* Buffer Size - Number of bytes per buffer, multiples of 512 only.
[key=bufflen, units=bytes, default=262144, type=int]
* Ring buffers - Number of buffers in the ring.
[key=buffers, units=buffers, default=15, type=int]
* Async buffers - Number of async usb buffers (advanced).
[key=asyncBuffs, units=buffers, default=0, type=int]
* Remote Format - The stream format used on the remote device.
[key=remote:format, default=CS8, type=string, options=(CS8, CS16, CF32)]
* Remote Scale - The factor used to scale remote samples to full-scale floats.
[key=remote:scale, default=128.000000, type=float]
* Remote MTU - The maximum datagram transfer size in bytes.
[key=remote:mtu, units=bytes, default=1500, type=int]
* Remote Window - The size of the kernel socket buffer in bytes.
[key=remote:window, units=bytes, default=44040192, type=int]
* Remote Priority - Specify the scheduling priority of the server forwarding threads.
[key=remote:priority, default=0.500000, type=float, range=[-1, 1]]
* Remote Protocol - Specify the transport protocol for the remote stream.
[key=remote:prot, default=udp, type=string, options=(udp, tcp, none)]
Antennas: RX
Full gain range: [0, 0] dB
TUNER gain range: [0, 0] dB
Full freq range: [23.999, 1764] MHz
RF freq range: [24, 1764] MHz
CORR freq range: [-0.001, 0.001] MHz
Sample rates: 0.25, 1.024, 1.536, 1.792, 1.92, 2.048, 2.16, 2.56, 2.88, 3.2 MSps

pi@pisatellitevhf:~ $ SoapySDRUtil --probe=ā€œdriver=rtlsdrā€
######################################################

Soapy SDR ā€“ the SDR abstraction library

######################################################

Probe device driver=rtlsdr
Found Elonics E4000 tuner
Found Elonics E4000 tuner


ā€“ Device identification

driver=RTLSDR
hardware=E4000
origin=https://github.com/pothosware/SoapyRTLSDR
rtl=0


ā€“ Peripheral summary

Channels: 1 Rx, 0 Tx
Timestamps: NO
Other Settings:
* Direct Sampling - RTL-SDR Direct Sampling Mode
[key=direct_samp, default=0, type=string, options=(0, 1, 2)]
* Offset Tune - RTL-SDR Offset Tuning Mode
[key=offset_tune, default=false, type=bool]
* I/Q Swap - RTL-SDR I/Q Swap Mode
[key=iq_swap, default=false, type=bool]
* Digital AGC - RTL-SDR digital AGC Mode
[key=digital_agc, default=false, type=bool]


ā€“ RX Channel 0

Full-duplex: YES
Supports AGC: YES
Stream formats: CS8, CS16, CF32
Native format: CS8 [full-scale=128]
Stream args:
* Buffer Size - Number of bytes per buffer, multiples of 512 only.
[key=bufflen, units=bytes, default=262144, type=int]
* Ring buffers - Number of buffers in the ring.
[key=buffers, units=buffers, default=15, type=int]
* Async buffers - Number of async usb buffers (advanced).
[key=asyncBuffs, units=buffers, default=0, type=int]
Antennas: RX
Full gain range: [0, 96] dB
IF1 gain range: [-3, 6] dB
IF2 gain range: [0, 9] dB
IF3 gain range: [0, 9] dB
IF4 gain range: [0, 2] dB
IF5 gain range: [3, 15] dB
IF6 gain range: [3, 15] dB
TUNER gain range: [-1, 42] dB
Full freq range: [51.999, 2200] MHz
RF freq range: [52, 2200] MHz
CORR freq range: [-0.001, 0.001] MHz
Sample rates: 0.25, 1.024, 1.536, 1.792, 1.92, 2.048, 2.16, 2.56, 2.88, 3.2 MSps

Hi Graem,

No, Iā€™m stuck, my node is online but not functional. Not really understanding what to check next. Iā€™m interested to understand better what your manual setting is and how to perform it.

73 de Pedro, LU7DID

Graems,

Did the same command than you and, alas, also get a 0dB gain. Not sure what that means or how to change it.

pi@mucrux:~ $ SoapySDRUtil --probe=ā€œdriver=rtlsdrā€
######################################################

Soapy SDR ā€“ the SDR abstraction library

######################################################

Probe device ā€œdriver=rtlsdrā€
[INFO] [UHD] linux; GNU C++ version 8.3.0; Boost_106700; UHD_3.15.0.0-2

RtApiAlsa::getDeviceInfo: snd_pcm_open error for device (default), No such file or directory.

Found Rafael Micro R820T tuner
Found Rafael Micro R820T tuner


ā€“ Device identification

driver=RTLSDR
hardware=R820T
origin=https://github.com/pothosware/SoapyRTLSDR
rtl=0


ā€“ Peripheral summary

Channels: 1 Rx, 0 Tx
Timestamps: NO
Other Settings:
* Direct Sampling - RTL-SDR Direct Sampling Mode
[key=direct_samp, default=0, type=string, options=(0, 1, 2)]
* Offset Tune - RTL-SDR Offset Tuning Mode
[key=offset_tune, default=false, type=bool]
* I/Q Swap - RTL-SDR I/Q Swap Mode
[key=iq_swap, default=false, type=bool]
* Digital AGC - RTL-SDR digital AGC Mode
[key=digital_agc, default=false, type=bool]


ā€“ RX Channel 0

Full-duplex: YES
Supports AGC: YES
Stream formats: CS8, CS16, CF32
Native format: CS8 [full-scale=128]
Stream args:
* Buffer Size - Number of bytes per buffer, multiples of 512 only.
[key=bufflen, units=bytes, default=262144, type=int]
* Ring buffers - Number of buffers in the ring.
[key=buffers, units=buffers, default=15, type=int]
* Async buffers - Number of async usb buffers (advanced).
[key=asyncBuffs, units=buffers, default=0, type=int]
Antennas: RX
Full gain range: [0, 49.6] dB
TUNER gain range: [0, 49.6] dB
Full freq range: [23.999, 1764] MHz
RF freq range: [24, 1764] MHz
CORR freq range: [-0.001, 0.001] MHz
Sample rates: 0.25, 1.024, 1.536, 1.792, 1.92, 2.048, 2.16, 2.56, 2.88, 3.2 MSps

Unfortunately I can not compare with the previous one because I upgraded the client because the previous SD card died to start with.

What troubles me is that Iā€™m getting a clean/flat/uneventful waterfall. The receiver seems to work. The antenna(s) works (because I tried it with other modes and because I did rotated them with functional antennas in my shack). And in these conditions I might not get a satellite but at least I should get noise, and Iā€™m getting none.

Still looking though.

73 de Pedro, LU7DID

From your stations recent observations it looks like you still havenā€™t set a RX gain setting.

Iā€™m sure @surligas or @Acinonyx can confirm this, but I think the default gain setting is 0. In the previous SatNOGS version this was something vaguely more useful (32.8 I believe).

A gain setting of 0 means your station is going to be deaf. Please follow the ā€˜Setting the gainā€™ guide to set an appropriate gain for your station: https://wiki.satnogs.org/Omnidirectional_Station_How_To#Setting_the_gain

1 Like

Thank you, performed the gain setting procedure, it seems itā€™s fixed now (see below).

However the main (odd) behaviour didnā€™t changed, no waterfall is created for passes.

I wonder if there is any additional check or review I can make?

73 de Pedro, LU7DID
######################################################

Soapy SDR ā€“ the SDR abstraction library

######################################################

Probe device ā€œdriver=rtlsdrā€
[INFO] [UHD] linux; GNU C++ version 8.3.0; Boost_106700; UHD_3.15.0.0-2

RtApiAlsa::getDeviceInfo: snd_pcm_open error for device (default), No such file or directory.

Found Rafael Micro R820T tuner


ā€“ Device identification

driver=RTLSDR
hardware=R820T
origin=https://github.com/pothosware/SoapyRTLSDR
remote:version=0.5.1-unknown
rtl=0


ā€“ Peripheral summary

Channels: 1 Rx, 0 Tx
Timestamps: NO
Other Settings:
* Direct Sampling - RTL-SDR Direct Sampling Mode
[key=direct_samp, default=0, type=string, options=(0, 1, 2)]
* Offset Tune - RTL-SDR Offset Tuning Mode
[key=offset_tune, default=false, type=bool]
* I/Q Swap - RTL-SDR I/Q Swap Mode
[key=iq_swap, default=false, type=bool]
* Digital AGC - RTL-SDR digital AGC Mode
[key=digital_agc, default=false, type=bool]


ā€“ RX Channel 0

Full-duplex: YES
Supports AGC: YES
Stream formats: CS8, CS16, CF32
Native format: CS8 [full-scale=128]
Stream args:
* Buffer Size - Number of bytes per buffer, multiples of 512 only.
[key=bufflen, units=bytes, default=262144, type=int]
* Ring buffers - Number of buffers in the ring.
[key=buffers, units=buffers, default=15, type=int]
* Async buffers - Number of async usb buffers (advanced).
[key=asyncBuffs, units=buffers, default=0, type=int]
* Remote Format - The stream format used on the remote device.
[key=remote:format, default=CS8, type=string, options=(CS8, CS16, CF32)]
* Remote Scale - The factor used to scale remote samples to full-scale floats.
[key=remote:scale, default=128.000000, type=float]
* Remote MTU - The maximum datagram transfer size in bytes.
[key=remote:mtu, units=bytes, default=1500, type=int]
* Remote Window - The size of the kernel socket buffer in bytes.
[key=remote:window, units=bytes, default=44040192, type=int]
* Remote Priority - Specify the scheduling priority of the server forwarding threads.
[key=remote:priority, default=0.500000, type=float, range=[-1, 1]]
* Remote Protocol - Specify the transport protocol for the remote stream.
[key=remote:prot, default=udp, type=string, options=(udp, tcp, none)]
Antennas: RX
Full gain range: [0, 49.6] dB
TUNER gain range: [0, 49.6] dB
Full freq range: [23.999, 1764] MHz
RF freq range: [24, 1764] MHz
CORR freq range: [-0.001, 0.001] MHz
Sample rates: 0.25, 1.024, 1.536, 1.792, 1.92, 2.048, 2.16, 2.56, 2.88, 3.2 MSps

Pedro: I am not a firmware person, so not going to be a lot of help. The one weird thing I see when I look at your observation is that the version of radio firmware is ā€œnullā€ for ā€œgr-satnogsā€. When your station was outputting a waterfall, it said the version was ā€œ2.1.2.0ā€. Maybe that means you need to reload the gr-satnogs firmware? Have you tried rebooting your station (I had to do that once for my station when it quit uploading waterfalls).

Hi, really I donā€™t know why the version is showing up this way.

Iā€™d rebooted countless times thus far.

I think itā€™s time to start from a fresh SD card again and build up from scratch, without support on additional steps nor tools to debug myself or clues on where to look for additional things Iā€™m stuck.

73 de Pedro, LU7DID