PlutoSDR support

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

Little add to the text above: With the Pluto not plugged into the Pi I get the same result.

Have you set up udev rules for pluto?

Hi,
did not, have now, removed the Pluto, plugged it back in, rebooted the Pi, now testing.

Thanks,

Ben

Sorry but that made no difference.
Apr 21 16:25:51 raspberrypi satnogs-client[313]: RuntimeError: SoapySDR::Device::make() no match

Have you installed soapy-plutosdr lib?


They provide debs also

Yes, I have, the detection utility at the end of the instructions detects the Pluto, I can run it as server on the Pi and connect to it remotely from SoapySDR on windows machine.

Hi all, I ran into exactly the same issues as Ben.
Has there been a solution in the meantime?
Thank you!

Sven

1 Like

Hi everybody,
just doing some tests with my Plutosdr, but now way, neither in a simple gnuradio flowgraph nor with this:

When started the previous code I obtain:

satnogs@raspberrypi:/home/pi $ satnogs_cw_decoder.py --soapy-rx-device=“driver=plutosdr” --rx-freq=433e6 --samp-rate-rx=2e6 --antenna=A_BALANCED
[INFO] Opening plutosdr #0 192.168.2.1…
ERROR: READ LINE: -32
[ERROR] Unable to set BB rate.
ERROR: READ LINE: -32
[INFO] Auto setting Buffer Size: 536870912
… and so on the same …

… and I’ve to stop the flowgraph by keyboard

Any infos??? I’m planning an SatNOGS station dedicated to L / S band, so the Plutosdr!

Tnx in advance,

Vittorio

EDIT: killing the running app kills the Plutosdr too! power cycle to get it back…

Yes, months later … but I am also about to set up an S-band GS using Pluto. Was this issue solved to everybody’s satisfaction?
Cheers, David.

No, unfortunately, at least based on my latest testing over the past two weeks.
At the moment I’m trying a Hackrf, that works, but that has other problems: high intrinsic noise / need of an external 10 MHz reference… I’m working on it :face_with_raised_eyebrow: :grinning_face_with_smiling_eyes:

Victor I3VFJ

Hi Victor,
The current SatNOGS ‘Software defined Radio’ page here still treats the HackRF as technically unsupported, but with some progress being made. You could update the Wiki page if you have managed to get it working reliably.

With regard to the Pluto, I met all sorts of problems during installation of the Soapy module - missing dependencies, wrong paths in scripts, insufficient directory read/write/execute permissions etc. Using this receiver is not for the faint-hearted! I also get the “SoapySDR::Device::make() no match” error … and hoping that someone will find an answer to the problem before I do !

1 Like

Hi!
If someone wants to debug the PlutoSDR support but is lacking the hardware, there is the SDR Testbed, providing real hardware (running 24/7 in hackerspace.gr) to interested projects via a Gitlab runner. See the presentation by @Acinonyx in the linked repo.

Sincerely,
Fabian / kerel

3 Likes