SDRPlay Receiver

I got an RSP1A running on SatNOGS 3409 VE9EX-2. Thank you @vk5qi for Adding SDRPlay RSPdx Support to SatNOGS · GitHub which is the basis of what I used.

I used the SatNOGS image_2022-09-10-Raspbian-SatNOGS-lite.zip for RaspBerry 4B, 8 GiB RAM, 32 GiB SD card, with the SDRPlay directly on a USB 2.0 port of the Pi. I used Ethernet and did not enable Wi-Fi.

On the Pi, I ran:
dmesg
[ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd083]
[ 0.000000] Linux version 6.1.21-v8+ (dom@buildbot) (aarch64-linux-gnu-gcc-8 (Ubuntu/Linaro 8.4.0-3ubuntu1) 8.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #1642 SMP PREEMPT Mon Apr 3 17:24:16 BST 2023
[ 0.000000] random: crng init done
[ 0.000000] Machine model: Raspberry Pi 4 Model B Rev 1.5
[ 0.000000] efi: UEFI not found.
[ 0.000000] Reserved memory: created CMA memory pool at 0x000000000ec00000, size 512 MiB

On the Pi, I ran:
pi@pi202312:~ $ uname -a
Linux pi202312 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr 3 17:24:16 BST 2023 aarch64 GNU/Linux

On the Pi, I ran this mix of driver versions and API versions, which got the job done:
wget http://www.sdrplay.com/software/SDRplay_RSP_API-Linux-2.13.1.run
wget http://www.sdrplay.com/software/SDRplay_RSP_API-ARM32-3.07.2.run
chmod u+x SDRplay_RSP_API-Linux-2.13.1.run
chmod u+x SDRplay_RSP_API-ARM32-3.07.2.run
sudo ./SDRplay_RSP_API-Linux-2.13.1.run
sudo ./SDRplay_RSP_API-ARM32-3.07.2.run
sudo systemctl start sdrplay

I ignored the error from sudo ./SDRplay_RSP_API-Linux-2.13.1.run:
cp: cannot stat ‘armv7l/libmirsdrapi-rsp.so.2.13’: No such file or directory
chmod: cannot access ‘/usr/local/lib/libmirsdrapi-rsp.so.2.13’: No such file or directory

For sudo ./SDRplay_RSP_API-ARM32-3.07.2.run , I accepted:
identification in applications such as lsusb? [y/n] y

Again, on the Pi, I ran:
sudo apt-get install build-essential cmake libsoapysdr-dev
sudo shutdown -r now

git clone https://github.com/SDRplay/SoapySDRPlay
cd SoapySDRPlay/
mkdir build
cd build
cmake …
make
sudo make install
sudo ldconfig

pi@pi202312:~ $ SoapySDRUtil --probe=“driver=sdrplay”
######################################################

Soapy SDR – the SDR abstraction library

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

Probe device driver=sdrplay
[INFO] devIdx: 0
[INFO] SerNo: 224009C299
[INFO] hwVer: 255
[INFO] rspDuoMode: 0
[INFO] tuner: 1
[INFO] rspDuoSampleFreq: 0.000000


– Device identification

driver=SDRplay
hardware=RSP1A
sdrplay_api_api_version=3.070000
sdrplay_api_hw_version=255


– 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, 9)]
* 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]]
* BiasT Enable - BiasT Control
[key=biasT_ctrl, default=true, type=bool]
* RfNotch Enable - RF Notch Filter Control
[key=rfnotch_ctrl, default=true, type=bool]
* DabNotch Enable - DAB Notch Filter Control
[key=dabnotch_ctrl, default=true, type=bool]


– RX Channel 0

Full-duplex: YES
Supports AGC: YES
Stream formats: CS16, CF32
Native format: CS16 [full-scale=32767]
Antennas: RX
Corrections: DC removal
Full gain range: [0, 48] dB
IFGR gain range: [20, 59] dB
RFGR gain range: [0, 9] 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, …, 6, 7, 8, 9, 10 MSps
Filter bandwidths: 0.2, 0.3, 0.6, 1.536, 5, 6, 7, 8 MHz

On the Pi, I ran:
sudo satnogs-setup
with

pi@pi202312:~ $ sudo -u satnogs SoapySDRUtil --args=“driver=sdrplay” --direction=RX --rate=2e6
######################################################

Soapy SDR – the SDR abstraction library

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

[INFO] devIdx: 0
[INFO] SerNo: 224009C299
[INFO] hwVer: 255
[INFO] rspDuoMode: 0
[INFO] tuner: 1
[INFO] rspDuoSampleFreq: 0.000000
[INFO] Using format CS16.
Stream format: CS16
Num channels: 1
Element size: 4 bytes
Begin RX rate test at 2 Msps
Starting stream loop, press Ctrl+C to exit…
1.8036 Msps 7.2144 MBps
1.90117 Msps 7.6047 MBps
1.93599 Msps 7.74397 MBps
1.95066 Msps 7.80265 MBps
1.96119 Msps 7.84477 MBps
1.9674 Msps 7.86961 MBps
^C pi@pi202312:~ $

pi@pi202312:~ $ SoapySDRUtil --info
######################################################

Soapy SDR – the SDR abstraction library

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

Lib Version: v0.7.2-2
API Version: v0.7.1
ABI Version: v0.7
Install root: /usr
Search path: /usr/lib/arm-linux-gnueabihf/SoapySDR/modules0.7
Search path: /usr/local/lib/arm-linux-gnueabihf/SoapySDR/modules0.7 (missing)
Search path: /usr/local/lib/SoapySDR/modules0.7
Module found: /usr/lib/arm-linux-gnueabihf/SoapySDR/modules0.7/libHackRFSupport.so (0.3.3)
Module found: /usr/lib/arm-linux-gnueabihf/SoapySDR/modules0.7/libLMS7Support.so (20.10.0)
Module found: /usr/lib/arm-linux-gnueabihf/SoapySDR/modules0.7/libRedPitaya.so (0.1.1)
Module found: /usr/lib/arm-linux-gnueabihf/SoapySDR/modules0.7/libairspySupport.so (0.1.2)
Module found: /usr/lib/arm-linux-gnueabihf/SoapySDR/modules0.7/libaudioSupport.so (0.1.1)
Module found: /usr/lib/arm-linux-gnueabihf/SoapySDR/modules0.7/libbladeRFSupport.so (0.4.1)
Module found: /usr/lib/arm-linux-gnueabihf/SoapySDR/modules0.7/libmiriSupport.so (0.2.5)
Module found: /usr/lib/arm-linux-gnueabihf/SoapySDR/modules0.7/libosmosdrSupport.so (0.2.5)
Module found: /usr/lib/arm-linux-gnueabihf/SoapySDR/modules0.7/libremoteSupport.so (0.5.2)
Module found: /usr/lib/arm-linux-gnueabihf/SoapySDR/modules0.7/librfspaceSupport.so (0.2.5)
Module found: /usr/lib/arm-linux-gnueabihf/SoapySDR/modules0.7/librtlsdrSupport.so (0.3.2)
Module found: /usr/lib/arm-linux-gnueabihf/SoapySDR/modules0.7/libuhdSupport.so (0.4.1)
Module found: /usr/local/lib/SoapySDR/modules0.7/libsdrPlaySupport.so (0.4.1-534a173)
Available factories… airspy, audio, bladerf, hackrf, lime, miri, osmosdr, redpitaya, remote, rfspace, rtlsdr, sdrplay, uhd
Available converters…

  • CF32 → [CF32, CS16, CS8, CU16, CU8]
  • CS16 → [CF32, CS16, CS8, CU16, CU8]
  • CS32 → [CS32]
  • CS8 → [CF32, CS16, CS8, CU16, CU8]
  • CU16 → [CF32, CS16, CS8]
  • CU8 → [CF32, CS16, CS8]
  • F32 → [F32, S16, S8, U16, U8]
  • S16 → [F32, S16, S8, U16, U8]
  • S32 → [S32]
  • S8 → [F32, S16, S8, U16, U8]
  • U16 → [F32, S16, S8]
  • U8 → [F32, S16, S8]

pi@pi202312:~/SoapySDRPlay $ git rev-parse HEAD
534a173996b0ca2a88ff1931950c869d244c90f8

The SatNOGS client is:
SatNOGS client configuration | Installed: satnogs-client-ansible-202209101521, satnogs-client-1.8.1, satnogs-flowgraphs-1.4-1

On the Pi, I ran:
journalctl --no-pager -u satnogs-client.service
Dec 31 19:16:03 pi202312 satnogs-client[420]: rot_init called
Dec 31 19:16:03 pi202312 satnogs-client[420]: initrots4_dummy: _init called
Dec 31 19:16:03 pi202312 satnogs-client[420]: rot_register (1)
Dec 31 19:16:03 pi202312 satnogs-client[420]: rot_register (2)
Dec 31 19:16:03 pi202312 satnogs-client[420]: dummy_rot_init called
Dec 31 19:16:03 pi202312 satnogs-client[420]: rot_open called
Dec 31 19:16:03 pi202312 satnogs-client[420]: dummy_rot_open called
Dec 31 19:16:03 pi202312 satnogs-client[420]: rot_get_position called
Dec 31 19:16:03 pi202312 satnogs-client[420]: dummy_rot_get_position called
Dec 31 19:16:03 pi202312 satnogs-client[420]: rot_get_position: got az=0.00, el=0.00
Dec 31 19:16:03 pi202312 satnogs-client[420]: rot_set_position called az=117.92 el=13.98
Dec 31 19:16:03 pi202312 satnogs-client[420]: rot_set_position: south_zero=0
Dec 31 19:16:03 pi202312 satnogs-client[420]: dummy_rot_set_position called: 117.92 13.98
Dec 31 19:16:03 pi202312 satnogs-client[420]: rig_init: rig does not have rx_range!!
Dec 31 19:16:03 pi202312 satnogs-client[420]: network_open: hoststr=127.0.0.1, portstr=4532
Dec 31 19:16:15 pi202312 python3[1181]: [1181]: sdrplay_api_Open
Dec 31 19:16:16 pi202312 satnogs-client[1181]: [INFO] devIdx: 0
Dec 31 19:16:16 pi202312 satnogs-client[1181]: [INFO] SerNo: 224009C299
Dec 31 19:16:16 pi202312 satnogs-client[1181]: [INFO] hwVer: 255
Dec 31 19:16:16 pi202312 satnogs-client[1181]: [INFO] rspDuoMode: 0
Dec 31 19:16:16 pi202312 satnogs-client[1181]: [INFO] tuner: 1
Dec 31 19:16:16 pi202312 satnogs-client[1181]: [INFO] rspDuoSampleFreq: 0.000000
Dec 31 19:16:16 pi202312 python3[1181]: [1204]: sdrplay_api_device: strmHandlerThread: Entry
Dec 31 19:16:16 pi202312 python3[1181]: [1205]: sdrplay_api_device: eventHandlerThread: Entry
Dec 31 19:16:16 pi202312 python3[1181]: [1206]: sdrplay_api_device: heartBeatThread: Entry
Dec 31 19:16:16 pi202312 satnogs-client[1181]: [INFO] Using format CF32.
Dec 31 19:23:18 pi202312 python3[1181]: [1205]: sdrplay_api_device: eventHandlerThread: Exit
Dec 31 19:23:18 pi202312 python3[1181]: [1206]: sdrplay_api_device: heartBeatThread: Exit
Dec 31 19:23:18 pi202312 python3[1181]: [1204]: sdrplay_api_device: strmHandlerThread: Exit
Dec 31 19:23:18 pi202312 python3[1181]: [1207]: sdrplay_api_Close
Dec 31 19:23:19 pi202312 satnogs-client[420]: netrigctl_close: done status=Command completed successfully

The SatNOGS observation SatNOGS Network - Observation 8806558 had the metadata:

radio: {
    name: "gr-satnogs",
    version: "v2.3-compat-xxx-v2.3.5.0",
    parameters: {
        soapy-rx-device: "driver=sdrplay,serial=224009C299",
        samp-rate-rx: "2e6",
        rx-freq: "437126350",
        file-path: "/tmp/.satnogs/data/receiving_satnogs_8806558_2023-12-31T19-16-03.out",
        waterfall-file-path: "/tmp/.satnogs/data/receiving_waterfall_8806558_2023-12-31T19-16-03.dat",
        decoded-data-file-path: "/tmp/.satnogs/data/data_8806558",
        doppler-correction-per-sec: null,
        lo-offset: null,
        ppm: null,
        rigctl-port: "4532",
        gain-mode: "Settings Field",
        gain: "48",
        antenna: "RX",
        dev-args: null,
        stream-args: null,
        tune-args: null,
        other-settings: null,
        dc-removal: null,
        bb-freq: null,
        bw: "600e3",
        enable-iq-dump: "0",
        iq-file-path: null,
        udp-dump-host: null,
        udp-dump-port: 57356,
        wpm: null,
        baudrate: null,
        framing: null
    }
},
latitude: 45.88202,
longitude: -66.76792,
elevation: 90,
frequency: 437126350

Brent Petersen, b.petersen@ieee.org, VE9EX, W1IY
SatNOGS Network - Ground Station VE9EX-1
SatNOGS Network - Ground Station VE9EX-2
SatNOGS Network - Ground Station UNB Fredericton Canada

1 Like