SDRplay and Client Version 2.1.1

Thanks for testing the new changes.

This should not be happening. This might be some configuration error or an indication that there is not enough space on the SD card to bring up the client container.

Another thing to point out is that it appears that you have installed SDRplay API on the host. This brings up the API service via systemd. I don’t know how the service works internally, but it may as well be holding access to the USB device. Do not install the SDRplay API on the host. Ansible brings up a build container, builds the non-free software and brings up the SDRplay API service on its own in another container without requiring the user to do anything other than enabling the satnogs_non_free_sdrplay_enabled: true as you have already done.

To further troubleshoot, could you:

  1. remove the SDRplay API from the host
  2. provide the configuration ( sudo cat /var/lib/docker-bindmounts/ansible_ansible/etc/ansible/host_vars/ansible/config.yml) with the API key redacted?
  3. provide the output of sudo docker ps
  4. provide the output of sudo ls -laR /var/lib/docker-bindmounts/satnogs_satnogs-client/opt/satnogs-non-free

Thanks in advance.

1 Like

Nice work @Acinonyx !

I did a test run of this on station 1864.
The RSP1a plugged in after the -setup was finished, probe taking it’s time to fail.

$ docker exec -it satnogs_satnogs-client SoapySDRUtil --probe=driver=sdrplay
######################################################
## Soapy SDR – the SDR abstraction library
######################################################

Probe device driver=sdrplay
Error probing device: no available RSP devices found

After restarting the containers docker restart satnogs_satnogs-client satnogs_sdrplay

Probe device driver=sdrplay
shm_open: No such file or directory
[ERROR] sdrplay_api_Open() Error: sdrplay_api_Fail
[ERROR] Please check the sdrplay_api service to make sure it is up. If it is up, please restart it.
[ERROR] SoapySDR::Device::enumerate(sdrplay) sdrplay_api_Open() failed
Error probing device: no available RSP devices found

And after reboot it is back to:

Probe device driver=sdrplay
Error probing device: no available RSP devices found

Maybe it’s due to the apiservice not having access to the sdr ?

$ docker exec -it satnogs_sdrplay SoapySDRUtil --probe=driver=sdrplay
######################################################
##     Soapy SDR -- the SDR abstraction library     ##
######################################################

Probe device driver=sdrplay
Error probing device: SoapySDR::Device::make() no match

docker ps:

CONTAINER ID   IMAGE                                                                                                   COMMAND                  CREATED          STATUS         PORTS     NAMES
3fa72cebf4ea   librespace/satnogs-client:2.1.1                                                                         "satnogs-client"         16 minutes ago   Up 6 minutes             satnogs_satnogs-client
fd133100b34e   librespace/satnogs-client:2.1.1                                                                         "/opt/satnogs-non-fr…"   16 minutes ago   Up 6 minutes             satnogs_sdrplay
096c0e9ac7eb   registry.gitlab.com/librespacefoundation/satnogs/satnogs-auto-scheduler/satnogs-auto-scheduler:master   "bash -c 'while true…"   6 days ago       Up 6 minutes             auto-scheduler-auto-scheduler-1
fcee4f1cd027   librespace/ansible:9.13.0                                                                               "/bin/sh -c 'trap : …"   9 days ago       Up 6 minutes             ansible_ansible
8f64f1d950a7   librespace/satnogs-config:1.1                                                                           "/bin/sh -c 'trap : …"   9 days ago       Up 6 minutes             ansible_satnogs-config
d8c82299c03d   librespace/hamlib:4.5.4                                                                                 "/docker-entrypoint.…"   9 days ago       Up 6 minutes             satnogs_rigctld

the bindmount:

$ sudo ls -laR /var/lib/docker-bindmounts/satnogs_satnogs-client/opt/satnogs-non-free
/var/lib/docker-bindmounts/satnogs_satnogs-client/opt/satnogs-non-free:
total 20
drwxr-xr-x 5 root root 4096 Feb 14 11:48 .
drwxr-xr-x 3 root root 4096 Feb 14 11:28 ..
drwxr-xr-x 2 root root 4096 Feb 14 11:47 bin
drwxr-xr-x 2 root root 4096 Feb 14 11:47 include
-rw-r--r-- 1 root root    0 Feb 14 11:48 .installed
drwxr-xr-x 3 root root 4096 Feb 14 11:48 lib

/var/lib/docker-bindmounts/satnogs_satnogs-client/opt/satnogs-non-free/bin:
total 580
drwxr-xr-x 2 root   root     4096 Feb 14 11:47 .
drwxr-xr-x 5 root   root     4096 Feb 14 11:48 ..
-rwxr-xr-x 1 root   root     5475 Feb 14 11:29 satnogs-non-free
-rwxr-xr-x 1 knegge knegge 575952 May  7  2024 sdrplay_apiService

/var/lib/docker-bindmounts/satnogs_satnogs-client/opt/satnogs-non-free/include:
total 56
drwxr-xr-x 2 root   root    4096 Feb 14 11:47 .
drwxr-xr-x 5 root   root    4096 Feb 14 11:48 ..
-rw-r--r-- 1 knegge knegge  2345 May  7  2024 sdrplay_api_callback.h
-rw-r--r-- 1 knegge knegge  1674 May  7  2024 sdrplay_api_control.h
-rw-r--r-- 1 knegge knegge  1501 May  7  2024 sdrplay_api_dev.h
-rw-r--r-- 1 knegge knegge 12219 May  7  2024 sdrplay_api.h
-rw-r--r-- 1 knegge knegge   594 May  7  2024 sdrplay_api_rsp1a.h
-rw-r--r-- 1 knegge knegge   990 May  7  2024 sdrplay_api_rsp2.h
-rw-r--r-- 1 knegge knegge  1491 May  7  2024 sdrplay_api_rspDuo.h
-rw-r--r-- 1 knegge knegge  1994 May  7  2024 sdrplay_api_rspDx.h
-rw-r--r-- 1 knegge knegge   694 May  7  2024 sdrplay_api_rx_channel.h
-rw-r--r-- 1 knegge knegge  2784 May  7  2024 sdrplay_api_tuner.h

/var/lib/docker-bindmounts/satnogs_satnogs-client/opt/satnogs-non-free/lib:
total 72
drwxr-xr-x 3 root   root    4096 Feb 14 11:48 .
drwxr-xr-x 5 root   root    4096 Feb 14 11:48 ..
lrwxrwxrwx 1 root   root      22 Feb 14 11:47 libsdrplay_api.so -> libsdrplay_api.so.3.15
lrwxrwxrwx 1 root   root      22 Feb 14 11:47 libsdrplay_api.so.3 -> libsdrplay_api.so.3.15
-rw-r--r-- 1 knegge knegge 60224 May  7  2024 libsdrplay_api.so.3.15
drwxr-xr-x 3 root   root    4096 Feb 14 11:48 SoapySDR

/var/lib/docker-bindmounts/satnogs_satnogs-client/opt/satnogs-non-free/lib/SoapySDR:
total 12
drwxr-xr-x 3 root root 4096 Feb 14 11:48 .
drwxr-xr-x 3 root root 4096 Feb 14 11:48 ..
drwxr-xr-x 2 root root 4096 Feb 14 11:48 modules0.8

/var/lib/docker-bindmounts/satnogs_satnogs-client/opt/satnogs-non-free/lib/SoapySDR/modules0.8:
total 172
drwxr-xr-x 2 root root   4096 Feb 14 11:48 .
drwxr-xr-x 3 root root   4096 Feb 14 11:48 ..
-rw-r--r-- 1 root root 166216 Feb 14 11:48 libsdrPlaySupport.so
1 Like

Hi.
These are the outputs as requested and let me know if you need anything else.
Thanks
Karl.

pi@Satnogs1920:~ $ sudo cat /var/lib/docker-bindmounts/ansible_ansible/etc/ansible/host_vars/ansible/config.yml
satnogs_antenna: Antenna A
satnogs_api_token: ***************************************************
satnogs_rf_gain: ‘34’
satnogs_rx_samp_rate: 2e6
satnogs_setup_satnogs_ansible_checkout_ref: master
satnogs_soapy_rx_device: driver=sdrplay
satnogs_station_elev: ‘550’
satnogs_station_id: ‘1920’
satnogs_station_lat: ‘54.892’
satnogs_station_lon: ‘-112.298’
satnogs_non_free_sdrplay_enabled: true
pi@Satnogs1920:~ $

pi@Satnogs1920:~ $ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
940f21ba31bb librespace/satnogs-client:2.1.1 “satnogs-client” 13 hours ago Up 12 hours satnogs_satnogs-client
9b64baf444bb librespace/satnogs-client:2.1.1 “/opt/satnogs-non-fr…” 13 hours ago Up 12 hours satnogs_sdrplay
228acd1949ed librespace/hamlib:4.5.4 “/docker-entrypoint.…” 13 hours ago Up 13 hours satnogs_rigctld
2c5b3f7c1f42 librespace/ansible:9.13.0 “/bin/sh -c 'trap : …” 15 hours ago Up 14 hours ansible_ansible
db016c272306 librespace/satnogs-config:1.1 “/bin/sh -c 'trap : …” 15 hours ago Up 14 hours ansible_satnogs-config
pi@Satnogs1920:~ $

pi@Satnogs1920:~ $ sudo ls -laR /var/lib/docker-bindmounts/satnogs_satnogs-client/opt/satnogs-non-free
/var/lib/docker-bindmounts/satnogs_satnogs-client/opt/satnogs-non-free:
total 20
drwxr-xr-x 5 root root 4096 Feb 13 21:59 .
drwxr-xr-x 3 root root 4096 Feb 13 19:25 ..
drwxr-xr-x 2 root root 4096 Feb 13 21:58 bin
drwxr-xr-x 2 root root 4096 Feb 13 21:58 include
-rw-r–r-- 1 root root 0 Feb 13 21:59 .installed
drwxr-xr-x 3 root root 4096 Feb 13 21:59 lib

/var/lib/docker-bindmounts/satnogs_satnogs-client/opt/satnogs-non-free/bin:
total 580
drwxr-xr-x 2 root root 4096 Feb 13 21:58 .
drwxr-xr-x 5 root root 4096 Feb 13 21:59 ..
-rwxr-xr-x 1 root root 5475 Feb 13 19:27 satnogs-non-free
-rwxr-xr-x 1 pi pi 575952 May 7 2024 sdrplay_apiService

/var/lib/docker-bindmounts/satnogs_satnogs-client/opt/satnogs-non-free/include:
total 56
drwxr-xr-x 2 root root 4096 Feb 13 21:58 .
drwxr-xr-x 5 root root 4096 Feb 13 21:59 ..
-rw-r–r-- 1 pi pi 2345 May 7 2024 sdrplay_api_callback.h
-rw-r–r-- 1 pi pi 1674 May 7 2024 sdrplay_api_control.h
-rw-r–r-- 1 pi pi 1501 May 7 2024 sdrplay_api_dev.h
-rw-r–r-- 1 pi pi 12219 May 7 2024 sdrplay_api.h
-rw-r–r-- 1 pi pi 594 May 7 2024 sdrplay_api_rsp1a.h
-rw-r–r-- 1 pi pi 990 May 7 2024 sdrplay_api_rsp2.h
-rw-r–r-- 1 pi pi 1491 May 7 2024 sdrplay_api_rspDuo.h
-rw-r–r-- 1 pi pi 1994 May 7 2024 sdrplay_api_rspDx.h
-rw-r–r-- 1 pi pi 694 May 7 2024 sdrplay_api_rx_channel.h
-rw-r–r-- 1 pi pi 2784 May 7 2024 sdrplay_api_tuner.h

/var/lib/docker-bindmounts/satnogs_satnogs-client/opt/satnogs-non-free/lib:
total 72
drwxr-xr-x 3 root root 4096 Feb 13 21:59 .
drwxr-xr-x 5 root root 4096 Feb 13 21:59 ..
lrwxrwxrwx 1 root root 22 Feb 13 21:58 libsdrplay_api.so → libsdrplay_api.so.3.15
lrwxrwxrwx 1 root root 22 Feb 13 21:58 libsdrplay_api.so.3 → libsdrplay_api.so.3.15
-rw-r–r-- 1 pi pi 60224 May 7 2024 libsdrplay_api.so.3.15
drwxr-xr-x 3 root root 4096 Feb 13 21:59 SoapySDR

/var/lib/docker-bindmounts/satnogs_satnogs-client/opt/satnogs-non-free/lib/SoapySDR:
total 12
drwxr-xr-x 3 root root 4096 Feb 13 21:59 .
drwxr-xr-x 3 root root 4096 Feb 13 21:59 ..
drwxr-xr-x 2 root root 4096 Feb 13 21:59 modules0.8

/var/lib/docker-bindmounts/satnogs_satnogs-client/opt/satnogs-non-free/lib/SoapySDR/modules0.8:
total 172
drwxr-xr-x 2 root root 4096 Feb 13 21:59 .
drwxr-xr-x 3 root root 4096 Feb 13 21:59 ..
-rw-r–r-- 1 root root 166216 Feb 13 21:59 libsdrPlaySupport.so
pi@Satnogs1920:~ $

Can you reboot the RPi while the device is plugged in and the execute:

docker exec -ti satnogs_satnogs-client SoapySDRUtil --probe="driver=sdrplay"

Open a shell into the satnogs_sdrplay container and try to run:

LD_LIBRARY_PATH=/opt/satnogs-non-free/lib SOAPY_SDR_PLUGIN_PATH=/opt/satnogs-non-free/lib/SoapySDR/modules0.8 SoapySDRUtil --probe="driver=sdrplay"

Unfortunately, I don’t own the hardware, so I’m working with complete lack of visibility wrt the USB interface. Could you please check whether the device appears correctly under /dev/bus/usb? Specifically, it should have 666 permissions and the node major should be 189.

I had to use sudo to get a reply but it does recognize the SDRplay Device.

pi@Satnogs1920:~ $ docker exec -ti satnogs_satnogs-client SoapySDRUtil --probe=" driver=sdrplay"
permission denied while trying to connect to the docker API at unix:///var/run/d ocker.sock
pi@Satnogs1920:~ $ sudo docker exec -ti satnogs_satnogs-client SoapySDRUtil --probe=“driver=sdrplay”
######################################################

Soapy SDR – the SDR abstraction library

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

Probe device driver=sdrplay
[INFO] devIdx: 0
[INFO] SerNo: 1702026B00
[INFO] hwVer: 2
[INFO] rspDuoMode: 0
[INFO] tuner: 1
[INFO] rspDuoSampleFreq: 0.000000


– Device identification

driver=SDRplay
hardware=RSP2
sdrplay_api_api_version=3.150000
sdrplay_api_hw_version=2


– Peripheral summary

Channels: 1 Rx, 0 Tx
Timestamps: NO
Other Settings:
* RF Gain Select - RF Gain Select
[key=rfgain_sel, default=4, type=string, options=(0, 1, 2, 3, 4, 5, 6, 7, 8)]
* IQ Correction - IQ Correction Control
[key=iqcorr_ctrl, default=true, type=bool]
* AGC Setpoint - AGC Setpoint (dBfs)
[key=agc_setpoint, default=-30, type=int, range=[-60, 0]]
* ExtRef Enable - External Reference Control
[key=extref_ctrl, default=true, type=bool]
* BiasT Enable - BiasT Control
[key=biasT_ctrl, default=true, type=bool]
* RfNotch Enable - RF Notch Filter Control
[key=rfnotch_ctrl, default=true, type=bool]


– RX Channel 0

Full-duplex: NO
Supports AGC: YES
Stream formats: CS16, CF32
Native format: CS16 [full-scale=32767]
Antennas: Antenna A, Antenna B, Hi-Z
Corrections: DC removal
Full gain range: [0, 47] dB
IFGR gain range: [20, 59] dB
RFGR gain range: [0, 8] dB
Full freq range: [0.001, 2000] MHz
RF freq range: [0.001, 2000] MHz
CORR freq range: MHz
Sample rates: 0.0625, 0.096, 0.125, 0.192, 0.25, 0.384, 0.5, 0.768, 1, [2, 10.66] MSps
Filter bandwidths: 0.2, 0.3, 0.6, 1.536, 5, 6, 7, 8 MHz

Not sure what went right but I’ve managed to get a pass done with the RSP2 and your fantastic help.

Now it shows nothing in the waterfall and that’s because i didn’t have an antenna hooked up to the RSP2 but i have changed that now and will make a few more Observations.

Thanks for the great effort and help and if you need i can test more and hopefully you can add this to the next Version of SatNogs for all to use.

73
Karl.

Well It seems i spoke to soon. After a few good Obsevations i rebooted the Pi and it’s now back to failing to give waterfall info on the Observations.
I’m sure it not seeing the SDRplay RSP2 again.

pi@Satnogs1920:~ $ sudo docker exec -ti satnogs_satnogs-client SoapySDRUtil --probe=“driver=sdrplay”
######################################################

Soapy SDR – the SDR abstraction library

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

Probe device “driver=sdrplay”
[ERROR] avahi_client_new() failed: Daemon not running
[ERROR] avahi_client_new() failed: Daemon not running
shm_open: No such file or directory
[ERROR] sdrplay_api_Open() Error: sdrplay_api_Fail
[ERROR] Please check the sdrplay_api service to make sure it is up. If it is up, please restart it.
[INFO] [UHD] linux; GNU C++ version 12.2.0; Boost_107400; UHD_4.3.0.0+ds1-5

RtApiPulse::DeviceInfo pa_context_connect() failed: Connection refused

ALSA lib confmisc.c:855:(parse_card) cannot find card ‘0’
ALSA lib conf.c:5180:(_snd_config_evaluate) function snd_func_card_inum returned error: No such file or directory
ALSA lib confmisc.c:422:(snd_func_concat) error evaluating strings
ALSA lib conf.c:5180:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1334:(snd_func_refer) error evaluating name
ALSA lib conf.c:5180:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5703:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib control.c:1528:(snd_ctl_open_noupdate) Invalid CTL default
ALSA lib confmisc.c:855:(parse_card) cannot find card ‘0’
ALSA lib conf.c:5180:(_snd_config_evaluate) function snd_func_card_inum returned error: No such file or directory
ALSA lib confmisc.c:422:(snd_func_concat) error evaluating strings
ALSA lib conf.c:5180:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1334:(snd_func_refer) error evaluating name
ALSA lib conf.c:5180:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5703:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib control.c:1528:(snd_ctl_open_noupdate) Invalid CTL default
ERROR: Unable to create Avahi DNS-SD client :Daemon not running
[WARNING] Unable to scan ip: -26

[ERROR] SoapySDR::Device::enumerate(sdrplay) sdrplay_api_Open() failed
Error probing device: SoapySDR::Device::make() no driver specified and no enumeration results
pi@Satnogs1920:~ $

Thank you for your help with testing!

Based on the last output, it appears that the container startup order may be affecting IPC sharing. To confirm this, could you please try the following when you see the shm_open: No such file or directory error after running SoapySDRUtil --probe="driver=sdrplay":

  1. Restart the satnogs_satnogs-client container:
    sudo docker restart satnogs_satnogs-client
    
  2. After the restart, re-run the SoapySDRUtil command above and check if the error is resolved.

Let me know if restarting the container fixes the issue. If that’s the case, I will change the IPC sharing mode. Thank you!

Please find the output after restarting the docker container.

pi@Satnogs1920:~ $ sudo docker restart satnogs_satnogs-client
satnogs_satnogs-client

pi@Satnogs1920:~ $ SoapySDRUtil --probe=“driver=sdrplay”
######################################################
Soapy SDR – the SDR abstraction library
######################################################

Probe device driver=sdrplay
Error probing device: SoapySDR::Device::make() no match

pi@Satnogs1920:~ $ docker exec -ti satnogs_satnogs-client SoapySDRUtil --probe=“driver=sdrplay”
permission denied while trying to connect to the docker API at unix:///var/run/docker.sock

pi@Satnogs1920:~ $ sudo docker exec -ti satnogs_satnogs-client SoapySDRUtil --probe=“driver=sdrplay”
######################################################
Soapy SDR – the SDR abstraction library
######################################################

Probe device driver=sdrplay
Error probing device: no available RSP devices found

pi@Satnogs1920:~ $ lsusb
Bus 001 Device 005: ID 1df7:3010 SDRplay RSP2/RSP2pro
Bus 001 Device 003: ID 0424:ec00 Microchip Technology, Inc. (formerly SMSC) SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Microchip Technology, Inc. (formerly SMSC) SMC9514 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
pi@Satnogs1920:~ $

I’ve just merged a change which should fix this issue:

You can run satnogs-setup and the script will prompt you to upgrade.

I still haven’t figured out why this happens. Could it be that whenever you re-plug the device, the API service needs to be restarted? If so, then a sudo docker restart satnogs_sdrplay should recover it from the error. Could you try that (after you have pulled the aforementioned upgrade)?

1 Like

Here’s where I’m at.

  1. New 32gb SD Card loaded via the Raspberry Pi Imager and with the SatNogs Image.

  2. Ran satnogs-setup

  3. Set SATNOGS_SETUP_SATNOGS_ANSIBLE_CHECKOUT_REF to master

  4. Ran echo "satnogs_non_free_sdrplay_enabled: true" | sudo tee -a /var/lib/docker-bindmounts/ansible_ansible/etc/ansible/host_vars/ansible/config.yml

  5. Ran satnogs-setup --install

  6. Ran sudo docker exec -ti satnogs_satnogs-client SoapySDRUtil --probe="driver=sdrplay"

    pi@Satnogs1920:~ $ sudo docker exec -ti satnogs_satnogs-client SoapySDRUtil --probe=“driver=sdrplay”
    ######################################################

    Soapy SDR – the SDR abstraction library

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

    Probe device driver=sdrplay
    Error probing device: SoapySDR::Device::make() no match

  7. pi@Satnogs1920:~ $ sudo docker restart satnogs_sdrplay
    Error response from daemon: No such container: satnogs_sdrplay
    pi@Satnogs1920:~ $

  8. Rebooted the pi and no change.

    Not sure why it’s now saying NO SUCH CONTAINER:satnogs_sdrplay ??

    Thanks
    Karl.

1 Like

So i think it might be a permission issue.

I added my user to the Docker permissions and then ran the satnogs-setup –install again.

  1. sudo usermod -aG docker pi
  2. newgrp docker
  3. satnogs-setup –install
  4. docker exec -ti satnogs_satnogs-client SoapySDRUtil --probe=“driver=sdrplay”

And it now show the SDRplay when probed. So i’ll make a few Observations and see it it works. Also i’m going to reboot after the observations and see if it still works.

I’ll keep you posted.

pi@Satnogs1920:~ $ docker exec -ti satnogs_satnogs-client SoapySDRUtil --probe=“driver=sdrplay”
######################################################

Soapy SDR – the SDR abstraction library

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

Probe device driver=sdrplay
[INFO] devIdx: 0
[INFO] SerNo: 1702026B00
[INFO] hwVer: 2
[INFO] rspDuoMode: 0
[INFO] tuner: 1
[INFO] rspDuoSampleFreq: 0.000000


– Device identification

driver=SDRplay
hardware=RSP2
sdrplay_api_api_version=3.150000
sdrplay_api_hw_version=2


– Peripheral summary

Channels: 1 Rx, 0 Tx
Timestamps: NO
Other Settings:
* RF Gain Select - RF Gain Select
[key=rfgain_sel, default=4, type=string, options=(0, 1, 2, 3, 4, 5, 6, 7, 8)]
* IQ Correction - IQ Correction Control
[key=iqcorr_ctrl, default=true, type=bool]
* AGC Setpoint - AGC Setpoint (dBfs)
[key=agc_setpoint, default=-30, type=int, range=[-60, 0]]
* ExtRef Enable - External Reference Control
[key=extref_ctrl, default=true, type=bool]
* BiasT Enable - BiasT Control
[key=biasT_ctrl, default=true, type=bool]
* RfNotch Enable - RF Notch Filter Control
[key=rfnotch_ctrl, default=true, type=bool]


– RX Channel 0

Full-duplex: NO
Supports AGC: YES
Stream formats: CS16, CF32
Native format: CS16 [full-scale=32767]
Antennas: Antenna A, Antenna B, Hi-Z
Corrections: DC removal
Full gain range: [0, 47] dB
IFGR gain range: [20, 59] dB
RFGR gain range: [0, 8] dB
Full freq range: [0.001, 2000] MHz
RF freq range: [0.001, 2000] MHz
CORR freq range: MHz
Sample rates: 0.0625, 0.096, 0.125, 0.192, 0.25, 0.384, 0.5, 0.768, 1, [2, 10.66] MSps
Filter bandwidths: 0.2, 0.3, 0.6, 1.536, 5, 6, 7, 8 MHz

1 Like

So i’ve finally got another Observation to complete.

After Running “docker restart satnogs_satnogs-client satnogs_sdrplay
I was able to get an Observation to complete with an uploaded waterfall. :grinning_face:
Just not sure why the “satnogs_sdrplay” needed to be restarted after Rebooting.

pi@Satnogs1920:~ $ docker restart satnogs_satnogs-client satnogs_sdrplay
satnogs_satnogs-client
satnogs_sdrplay

pi@Satnogs1920:~ $ docker exec -ti satnogs_satnogs-client SoapySDRUtil --probe
######################################################

Soapy SDR – the SDR abstraction library

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

Probe device
[ERROR] avahi_client_new() failed: Daemon not running
[ERROR] avahi_client_new() failed: Daemon not running

RtApiPulse::DeviceInfo pa_context_connect() failed: Connection refused

[INFO] [UHD] linux; GNU C++ version 12.2.0; Boost_107400; UHD_4.3.0.0+ds1-5
ALSA lib confmisc.c:855:(parse_card) cannot find card ‘0’
ALSA lib conf.c:5180:(_snd_config_evaluate) function snd_func_card_inum returned error: No such file or directory
ALSA lib confmisc.c:422:(snd_func_concat) error evaluating strings
ALSA lib conf.c:5180:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1334:(snd_func_refer) error evaluating name
ALSA lib conf.c:5180:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5703:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib control.c:1528:(snd_ctl_open_noupdate) Invalid CTL default
ALSA lib confmisc.c:855:(parse_card) cannot find card ‘0’
ALSA lib conf.c:5180:(_snd_config_evaluate) function snd_func_card_inum returned error: No such file or directory
ALSA lib confmisc.c:422:(snd_func_concat) error evaluating strings
ALSA lib conf.c:5180:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1334:(snd_func_refer) error evaluating name
ALSA lib conf.c:5180:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5703:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib control.c:1528:(snd_ctl_open_noupdate) Invalid CTL default
ERROR: Unable to create Avahi DNS-SD client :Daemon not running
[WARNING] Unable to scan ip: -26

[INFO] devIdx: 0
[INFO] SerNo: 1702026B00
[INFO] hwVer: 2
[INFO] rspDuoMode: 0
[INFO] tuner: 1
[INFO] rspDuoSampleFreq: 0.000000


– Device identification

driver=SDRplay
hardware=RSP2
sdrplay_api_api_version=3.150000
sdrplay_api_hw_version=2


– Peripheral summary

Channels: 1 Rx, 0 Tx
Timestamps: NO
Other Settings:
* RF Gain Select - RF Gain Select
[key=rfgain_sel, default=4, type=string, options=(0, 1, 2, 3, 4, 5, 6, 7, 8)]
* IQ Correction - IQ Correction Control
[key=iqcorr_ctrl, default=true, type=bool]
* AGC Setpoint - AGC Setpoint (dBfs)
[key=agc_setpoint, default=-30, type=int, range=[-60, 0]]
* ExtRef Enable - External Reference Control
[key=extref_ctrl, default=true, type=bool]
* BiasT Enable - BiasT Control
[key=biasT_ctrl, default=true, type=bool]
* RfNotch Enable - RF Notch Filter Control
[key=rfnotch_ctrl, default=true, type=bool]


– RX Channel 0

Full-duplex: NO
Supports AGC: YES
Stream formats: CS16, CF32
Native format: CS16 [full-scale=32767]
Antennas: Antenna A, Antenna B, Hi-Z
Corrections: DC removal
Full gain range: [0, 47] dB
IFGR gain range: [20, 59] dB
RFGR gain range: [0, 8] dB
Full freq range: [0.001, 2000] MHz
RF freq range: [0.001, 2000] MHz
CORR freq range: MHz
Sample rates: 0.0625, 0.096, 0.125, 0.192, 0.25, 0.384, 0.5, 0.768, 1, [2, 10.66] MSps
Filter bandwidths: 0.2, 0.3, 0.6, 1.536, 5, 6, 7, 8 MHz

1 Like

This is normal. The satnogs_sdrplay container is failing and restarting until the build completes which may take a while.

That’s strange.. I was expecting it to work when booting with the SDR plugged in. Maybe the SDRplay API service only attaches to the USB on service startup and won’t retry, and the container starts before udev creates the device node? Unfortunately, this binary is a black box and we can’t know how it operates.

1 Like

First, great to see this development and that it is working.

Regarding the restart, I see the same behavior when connecting a SDRPlay device to a OpenWebRX docker container. In there FAQ there is even a remark that restarting the container is the solution.

Jan | PE0SAT

1 Like

Thanks @PE0SAT . Is this the page you are referring to? It says:

SDRPlay devices seem to re-initialize their USB connection upon first initialization, which in turns results in the kernel creating new USB device files in the /dev/bus/usb filesystem. Docker does not currently handle these changes, so the new device does not show up in the running container.

Nevertheless, our setup should not be affected by this scenario because we add a device cgroup rule to make all USB devices available inside the container even after re-plugging.

I have another theory: that sdrplay_apiService checks for USB devices only on startup and for new devices it listens for udev events, and will only attempt to attach to hardware if an appropriate udev event occurs. Contrary to what we are used to so far, maybe the device needs to be un-plugged and re-plugged to overcome the issue? @ve6kdx is it possible to unplug and replug the USB cable when you encounter a detection failure, specifically Error probing device: no available RSP devices found, and check if this resolves the issue?

P.S. I will fix this so it’s not confusing:

1 Like

Should be fixed with this MR.

1 Like

Good Day and thanks for the support on this.

What i’ve found sofar is that if i reboot the pi and issue this command to check if the sdrplay is found, the command finds the sdrplay/rsp2 but never finishes the probe and hangs.
docker exec -ti satnogs_satnogs-client SoapySDRUtil --probe=“driver=sdrplay”

But if you then issue the docker restart satnogs_satnogs-client satnogs_sdrplay command everything starts to work just fine and when you –probe the driver=sdrplay as above it completes the task/restarts and also completes good Observations.

I’ll run the MR install/update later this evening.
Thanks
Karl.

2 Likes

I’ve ran satnogs-setup and installed the new MR update.

docker exec -ti satnogs_satnogs-client SoapySDRUtil --probe
Still hangs and even though it shows the driver loaded and displays the info it just won’t complete and get back to the command prompt.

docker restart satnogs_satnogs-client satnogs_sdrplay
This command seems to sort it out and you can then get a full output from the –probe and it returns to the command prompt and allows you to complete good observations.

Thank you.

Karl.

2 Likes