PlutoSDR support

Hi, I have added another GS ( 1441) with an Adalm Pluto SDR.
SoapySDRUtil --probe=“driver=plutosdr” shows nicely the information about the Pluto. Including the PlutoSDR as device name.

However, I am trying to find what to enter in the satnogs-setup in the SATNOGS_SOAPY_RX_DEVICE field.

Can anyone point me to info about this ?

Thanks,
Ben

SATNOGS_SOAPY_RX_DEVICE is really just the very same ID that makes SoapySDRUtil find the correct device, in this case, “plutosdr” should just work.

You also need to specify an antenna even for devices that only have one antenna input. USe the same string that is printed by SoapySDRUtil --probe.

2 Likes

Full-duplex: YES
Supports AGC: YES
Stream formats: CS8, CS12, CS16, CF32
Native format: CS16 [full-scale=2048]
Antennas: A_BALANCED
Full gain range: [0, 73] dB
PGA gain range: [0, 73] dB

Now set the antenna to A_BALANCED and testing again. Thanks !

1 Like

Still no luck so far…

Mar 28 18:22:17 raspberrypi satnogs-client[17005]: Traceback (most recent call last):
Mar 28 18:22:17 raspberrypi satnogs-client[17005]: File “/usr/bin/satnogs_fsk_ax25.py”, line 490, in
Mar 28 18:22:17 raspberrypi satnogs-client[17005]: main()
Mar 28 18:22:17 raspberrypi satnogs-client[17005]: File “/usr/bin/satnogs_fsk_ax25.py”, line 475, in main
Mar 28 18:22:17 raspberrypi satnogs-client[17005]: tb = top_block_cls(antenna=options.antenna, baudrate=options.baudrate, bb_freq=options.bb_freq, bw=options.bw, dc_removal=options.dc_removal, decoded_data_file_path=options.decoded_data_file_path, dev_args=options.dev_args, doppler_correction_per_sec=options.doppler_correction_per_sec, enable_iq_dump=options.enable_iq_dump, file_path=options.file_path, gain=options.gain, gain_mode=options.gain_mode, iq_file_path=options.iq_file_path, lo_offset=options.lo_offset, other_settings=options.other_settings, ppm=options.ppm, rigctl_port=options.rigctl_port, rx_freq=options.rx_freq, samp_rate_rx=options.samp_rate_rx, soapy_rx_device=options.soapy_rx_device, stream_args=options.stream_args, tune_args=options.tune_args, udp_IP=options.udp_IP, udp_port=options.udp_port, waterfall_file_path=options.waterfall_file_path)
Mar 28 18:22:17 raspberrypi satnogs-client[17005]: File “/usr/bin/satnogs_fsk_ax25.py”, line 92, in init
Mar 28 18:22:17 raspberrypi satnogs-client[17005]: tune_args, settings, samp_rate_rx, “fc32”)
Mar 28 18:22:17 raspberrypi satnogs-client[17005]: File “/usr/lib/python3/dist-packages/soapy/soapy_swig.py”, line 166, in make
Mar 28 18:22:17 raspberrypi satnogs-client[17005]: return _soapy_swig.source_make(nchan, device, dev_args, stream_args, tune_args, other_settings, sampling_rate, type)
Mar 28 18:22:17 raspberrypi satnogs-client[17005]: RuntimeError: SoapySDR::Device::make() no match
Mar 28 18:22:21 raspberrypi satnogs-client[17005]: satnogsclient.observer.observer - ERROR - No waterfall data file found

Is there anything I can run manually to test if I can figure out the right / necessary settings ?

Thanks,
Ben

As @pierros just clarified in the other thread, SATNOGS_SOAPY_RX_DEVICE has to include the “driver” keyword, i.e. you have to use “driver=plutosdr” and not just “plutosdr” as I wrote in my first message.

Thanks,
the driver=plutosdr was allready the one I used.
Now tried:
driver=plutosdr,USB:1.3.5 also without luck.
Now trying
driver=plutosdr,uri=192.168.2.1

GA
interesting by this thread…must i do install pluto driver ?

thank
eric

F1SMV yes, I started here:


Don’t skip the dependencies part. In the end the detection of the device on the Raspberry Pi worked all ok, and Soapy server did run the Adalm Pluto as device on the Pi and I could connnect to it from Pothos SDR. Now only one small step :wink:

Thank but libiio librairies are not update for Buster and dont want to install on raspi 4…may be soon…

73 Eric

still not getting any further. Not working:

driver=plutosdr
driver=pluto
dirver=plutosdr,hostname=192.168.2.1
driver=plutosdr,uri=usb:1.3.5

(output from SoapySDRUtil --find gives: Found device 0
device = plutosdr
driver = plutosdr
uri = usb:1.3.5 )

The same error appears for every of these settings I tried:
RuntimeError: SoapySDR::Device::make() no match
Apr 17 13:57:14 raspberrypi satnogs-client[10087]: satnogsclient.observer.observer - ERROR - No waterfall data file found

I am running out of ideas.

Anyone ?

Thanks,
Ben

Please post the output of the

SoapySDRUtil --probe="driver=plutosdr"

pi@raspberrypi:~ $ SoapySDRUtil --probe=“driver=plutosdr”
######################################################

Soapy SDR – the SDR abstraction library

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

Probe device driver=plutosdr


– Device identification

driver=PlutoSDR
hardware=ADALM-PLUTO
ad9361-phy,model=ad9364
ad9361-phy,xo_correction=39999946
backend_version=0.18 (git tag: v0.18 )
fw_version=v0.31
hw_model=Analog Devices PlutoSDR Rev.B (Z7010-AD9364)
hw_model_variant=1
hw_serial=104400b839910016f8ff1c00d79a650b98
library_version=0.19 (git tag: 67d3c05)
local,kernel=4.14.0-42540-g387d584
usb,idProduct=b673
usb,idVendor=0456
usb,libusb=1.0.22.11312
usb,product=PlutoSDR (ADALM-PLUTO)
usb,release=2.0
usb,serial=104400b839910016f8ff1c00d79a650b98
usb,vendor=Analog Devices Inc.


– Peripheral summary

Channels: 1 Rx, 1 Tx
Timestamps: NO
Sensors: xadc_temp0, xadc_voltage0, xadc_voltage1, xadc_voltage2, xadc_voltage3, xadc_voltage4, xadc_voltage5, xadc_voltage6, xadc_voltage7, xadc_voltage8, adm1177_current0, adm1177_voltage0, ad9361-phy_temp0, ad9361-phy_voltage2
* xadc_temp0: 50.323676 C
* xadc_voltage0 (vccint): 0.998291 V
* xadc_voltage1 (vccaux): 1.790039 V
* xadc_voltage2 (vccbram): 1.004150 V
* xadc_voltage3 (vccpint): 0.999023 V
* xadc_voltage4 (vccpaux): 1.790771 V
* xadc_voltage5 (vccoddr): 1.333740 V
* xadc_voltage6 (vrefp): 1.240723 V
* xadc_voltage7 (vrefn): -0.009521 V
* xadc_voltage8: 0.893555 V
* adm1177_current0: 0.404499 A
* adm1177_voltage0: 4.992090 V
* ad9361-phy_temp0: 36.842000 C
* ad9361-phy_voltage2: 0.241758 V


– RX Channel 0

Full-duplex: YES
Supports AGC: YES
Stream formats: CS8, CS12, CS16, CF32
Native format: CS16 [full-scale=2048]
Antennas: A_BALANCED
Full gain range: [0, 73] dB
PGA gain range: [0, 73] dB
Full freq range: [70, 6000] MHz
RF freq range: [70, 6000] MHz
Sample rates: 0.065105, 1, 2, 3, 4, 6, 7, 8, 9, 10 MSps
Filter bandwidths: 0.2, 1, 2, 3, 4, 6, 7, 8, 9, 10 MHz


– TX Channel 0

Full-duplex: YES
Supports AGC: NO
Stream formats: CS8, CS12, CS16, CF32
Native format: CS16 [full-scale=32768]
Antennas: A
Full gain range: [0, 89] dB
PGA gain range: [0, 89] dB
Full freq range: [70, 6000] MHz
RF freq range: [70, 6000] MHz
Sample rates: 0.065105, 1, 2, 3, 4, 6, 7, 8, 9, 10 MSps
Filter bandwidths: 0.2, 1, 2, 3, 4, 6, 7, 8, 9, 10 MHz

Ok that’s nice! So all you have to do in your satnogs setup is to specify driver=plutosdr on the SATNOGS_SOAPY_RX_DEVICE field and A_BALANCED at the SATNOGS_ANTENNA field.

Everything else (sampling rate, gain, etc) it’s up to you.

Thanks, but that’s exactly what I did, and that throws the error " RuntimeError: SoapySDR::Device::make() no match "

configuration:

                             ┌───────────────SatNOGS client configuration──────────────────┐
                             │ satnogs_antenna: A_BALANCED                                 │
                             │ satnogs_api_token: donttellanyone │
                             │ satnogs_dc_removal: false                                   │
                             │ satnogs_rf_gain: '66'                                       │
                             │ satnogs_rx_samp_rate: 1e6                                   │
                             │ satnogs_soapy_rx_device: driver=plutosdr                    │
                             │ satnogs_station_elev: '1'                                   │
                             │ satnogs_station_id: '1441'                                  │
                             │ satnogs_station_lat: '52'                                   │
                             │ satnogs_station_lon: '4.2'                                  │
                             │                                                             │
                             ├─────────────────────────────────────────────────────────────┤
                             │                         < Back >                            │
                             └─────────────────────────────────────────────────────────────┘

Hmm that’s strange. Probably a permission error. Can you run the SoapySDRUtil --probe="driver=plutosdr" as the satnogs user?

Had to visudo a bit to be able to switch from user “pi” to user “satnogs” because of not knowing the passwordt for user “satnogs” but yes, I can run and it gives no errors.

pi@raspberrypi:~ $ sudo -u satnogs -s
satnogs@raspberrypi:/home/pi $ SoapySDRUtil --probe=“driver=plutosdr”
######################################################

Soapy SDR – the SDR abstraction library

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

Probe device driver=plutosdr


– Device identification

driver=PlutoSDR
hardware=ADALM-PLUTO
ad9361-phy,model=ad9364
ad9361-phy,xo_correction=39999946
backend_version=0.18 (git tag: v0.18 )
fw_version=v0.31
hw_model=Analog Devices PlutoSDR Rev.B (Z7010-AD9364)
hw_model_variant=1
hw_serial=104400b839910016f8ff1c00d79a650b98
library_version=0.19 (git tag: 67d3c05)
< CUT>

Ok this is quite weird… Let’s run a flowgraph manually then!

  • Stop the satnogs-client, using sudo systemctl stop satnogs-client.service
  • Open a rigctld daemon by executing rigctld
  • Open a second terminal
  • Run as the satnogs user a flowgraph. Eg: satnogs_cw_decoder.py --soapy-rx-device="driver=plutosdr" --rx-freq=433e6 --samp-rate-rx=2e6 --antenna=A_BALANCED
1 Like

HI, thanks again for you time :slight_smile:
Running a flowgraph ends with the same “no match” error, please see below:

satnogs@raspberrypi:/home/pi $ satnogs_cw_decoder.py --soapy-rx-device="driver=plutosdr" --rx-freq=433e6 --samp-rate-rx=2e6 --antenna=A_BALANCED

Traceback (most recent call last):
File “/usr/bin/satnogs_cw_decoder.py”, line 459, in
main()
File “/usr/bin/satnogs_cw_decoder.py”, line 444, in main
tb = top_block_cls(antenna=options.antenna, bb_freq=options.bb_freq, bfo_freq=options.bfo_freq, bw=options.bw, dc_removal=options.dc_removal, decoded_data_file_path=options.decoded_data_file_path, dev_args=options.dev_args, doppler_correction_per_sec=options.doppler_correction_per_sec, enable_iq_dump=options.enable_iq_dump, file_path=options.file_path, gain=options.gain, gain_mode=options.gain_mode, iq_file_path=options.iq_file_path, lo_offset=options.lo_offset, other_settings=options.other_settings, ppm=options.ppm, rigctl_port=options.rigctl_port, rx_freq=options.rx_freq, samp_rate_rx=options.samp_rate_rx, soapy_rx_device=options.soapy_rx_device, stream_args=options.stream_args, tune_args=options.tune_args, udp_IP=options.udp_IP, udp_port=options.udp_port, waterfall_file_path=options.waterfall_file_path, wpm=options.wpm)
File “/usr/bin/satnogs_cw_decoder.py”, line 90, in init
tune_args, settings, samp_rate_rx, “fc32”)
File “/usr/lib/python3/dist-packages/soapy/soapy_swig.py”, line 166, in make
return _soapy_swig.source_make(nchan, device, dev_args, stream_args, tune_args, other_settings, sampling_rate, type)
RuntimeError: SoapySDR::Device::make() no match

1 Like