SDRPlay RSP1A error

I decided to put my station back into service. I have installed the raspberry but despite several attempts I am blocked by the installation of SoapySDRPlay.

I followed; Adding SDRPlay RSPdx Support to SatNOGS · GitHub

but I always get the same error:

pi@raspberrypi:~/SoapySDRPlay/build $ make
Scanning dependencies of target sdrPlaySupport
[ 16%] Building CXX object CMakeFiles/sdrPlaySupport.dir/Registration.cpp.o
/home/pi/SoapySDRPlay/Registration.cpp: In function ‘std::vector<std::map<std::__cxx11::basic_string, std::__cxx11::basic_string > > findSDRPlay(const Kwargs&)’:
/home/pi/SoapySDRPlay/Registration.cpp:52:26: error: ‘struct sdrplay_api_DeviceT’ has no member named ‘valid’

  • 52 | if (not rspDevs[i].valid) continue;*

Does anyone have any ideas?

Manu

Please share the cmake .. output.

Below are the results of the cmake… :

pi@raspberrypi:~/SoapySDRPlay/build $ cmake …
– Build type not specified: defaulting to release.
– LIBSDRPLAY_INCLUDE_DIRS - /usr/local/include
– LIBSDRPLAY_LIBRARIES - /usr/local/lib/libsdrplay_api.so
– Module sdrPlaySupport configured with version: 0.5.1-2c8169d
– Configuring done
– Generating done
– Build files have been written to: /home/pi/SoapySDRPlay/build

Manu

Share some extra information from the make, maybe it is visible what step creates the error.

I was also wondering if you used the latest SDRPlay api

SATNOGS ERREUR.txt (19.4 KB)

Attached is a text file showing what I’ve done.

I also tried to install the API :
SDRplay_RSP_API-ARM64-2.13.1.run

With no success

Maybe there’s an idea in the file?

One more thing: for the moment, SDRPlay is not connected to the pi

I gave it a try on a Raspberry Pi3b, no luck.
Do you have a ARM64 OS? I tried the ARM32 version

The SDRPLAY_RSP1B_ID error message gives me the idea there is some incompatibility because this RSP1B is there latest model.

Here we need support from the SDRPlay community.

Build steps and output:

Building SDRPlay support on a Raspberry Pi 3 Model B Rev 1.2

cat /proc/cpuinfo

processor	: 0
model name	: ARMv7 Processor rev 4 (v7l)
BogoMIPS	: 38.40
Features	: half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 
CPU implementer	: 0x41
CPU architecture: 7
CPU variant	: 0x0
CPU part	: 0xd03
CPU revision	: 4

processor	: 1
model name	: ARMv7 Processor rev 4 (v7l)
BogoMIPS	: 38.40
Features	: half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 
CPU implementer	: 0x41
CPU architecture: 7
CPU variant	: 0x0
CPU part	: 0xd03
CPU revision	: 4

processor	: 2
model name	: ARMv7 Processor rev 4 (v7l)
BogoMIPS	: 38.40
Features	: half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 
CPU implementer	: 0x41
CPU architecture: 7
CPU variant	: 0x0
CPU part	: 0xd03
CPU revision	: 4

processor	: 3
model name	: ARMv7 Processor rev 4 (v7l)
BogoMIPS	: 38.40
Features	: half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 
CPU implementer	: 0x41
CPU architecture: 7
CPU variant	: 0x0
CPU part	: 0xd03
CPU revision	: 4

Hardware	: BCM2835
Revision	: a22082
Serial		: 000000005f02114e
Model		: Raspberry Pi 3 Model B Rev 1.2

lscpu

Architecture:                    armv7l
Byte Order:                      Little Endian
CPU(s):                          4
On-line CPU(s) list:             0-3
Thread(s) per core:              1
Core(s) per socket:              4
Socket(s):                       1
Vendor ID:                       ARM
Model:                           4
Model name:                      Cortex-A53
Stepping:                        r0p4
CPU max MHz:                     1200.0000
CPU min MHz:                     600.0000
BogoMIPS:                        38.40
Vulnerability Itlb multihit:     Not affected
Vulnerability L1tf:              Not affected
Vulnerability Mds:               Not affected
Vulnerability Meltdown:          Not affected
Vulnerability Mmio stale data:   Not affected
Vulnerability Retbleed:          Not affected
Vulnerability Spec store bypass: Not affected
Vulnerability Spectre v1:        Mitigation; __user pointer sanitization
Vulnerability Spectre v2:        Not affected
Vulnerability Srbds:             Not affected
Vulnerability Tsx async abort:   Not affected
Flags:                           half thumb fastmult vfp edsp neon vfpv3 tls vfp
                                 v4 idiva idivt vfpd32 lpae evtstrm crc32
                                 
                                 
Download wget http://www.sdrplay.com/software/SDRplay_RSP_API-ARM32-3.07.2.run

chmod 775 SDRplay_RSP_API-ARM32-3.07.2.run

./SDRplay_RSP_API-ARM32-3.07.2.run


Verifying archive integrity... All good.
Uncompressing SDRplay RSP API Install Package V3.07 (installer v2)
Installing SDRplay RSP API library 3.07...
Press RETURN to view the license agreement
Press space when prompted with --More-- to read the license agreement.

SDRplay Limited
END USER LICENCE AGREEMENT

The SDRplay software (“Product”) you are about to install, run and/or use is lic
ensed by SDRplay Limited, a company registered in England (No. 09035244), whose 
registered office is 21 Lenten Street ALTON Hampshire GU34 1HG UK(“SDRplay”), an
d is subject to the following licence terms (“Licence”). 
"You" (or "Your") shall mean an individual or Legal Entity exercising permission
s granted by this License.

By proceeding to install, run and/or use the Product, you confirm that you accep
t and agree to be bound by the terms of this Licence. If you do not agree to any
 of the terms of this Licence, SDRplay is unwilling to provide access to the Pro
duct to you and you should not proceed further and may not use the Product.
 
1.  Licence To Use The Product.
 
1.1          Grant of Licence.  
Subject to the terms and conditions of this License, SDRplay hereby grants to yo
u a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable li
cense to reproduce, publicly display, publicly perform, create Derivative works,
 incorporate in other products sublicense, and distribute the Product in Object 
form.

 
1.2          Restrictions.  You may not:  modify, disassemble, decompile or reve
rse engineer the Product, except to the extent specifically authorised under app
licable law notwithstanding contractual prohibition

1.3. Redistribution. You may reproduce and distribute copies of the Product in a
ny medium, without modifications, in Object form, provided that you meet the fol
lowing conditions:
1.  You must give any other recipients of the Product or Derivative Works a copy
 of this License; and
2.  You must cause any modified files to carry prominent notices stating that Yo
u changed the files; and
3.  Any Derivative Works that You distribute must include a readable statement t
Press y and RETURN to accept the license agreement and continue with
the installation, or press n and RETURN to exit the installer [y/n] y
Architecture: armv7l
API Version: 3.07
If not installing as root, you will be prompted for your password
for sudo access to the /usr/local area...
The rest of the installation will continue with root permission...
Udev rules directory found, adding rules...Done
Installing files into /usr/local (/lib, /bin, /include)...
Installing /usr/local/lib/libsdrplay_api.so.3.07...Done
Installing header files in /usr/local/include...Done
Installing API Service in /usr/local/bin...Done
Installing Service scripts and starting daemon...Created symlink /etc/systemd/system/multi-user.target.wants/sdrplay.service → /etc/systemd/system/sdrplay.service.
Done
 
Service has been installed and started. This device should be rebooted
before the service is used. After the installation script finishes,
reboot this device.
 
To start and stop the API service, use the following commands...
 
sudo systemctl start sdrplay
sudo systemctl stop sdrplay
 
SDRplay API 3.07 Installation Finished
 
Would you like to add SDRplay USB IDs to the local database for easier

identification in applications such as lsusb? [y/n] n

git clone https://github.com/pothosware/SoapySDRPlay3.git
cd SoapySDRPlay3
mkdir build
cd build

cmake ../
-- The CXX compiler identification is GNU 10.2.1
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Build type not specified: defaulting to release.
-- Found libsdrplay: /usr/local/include, /usr/local/lib/libsdrplay_api.so
-- LIBSDRPLAY_INCLUDE_DIRS - /usr/local/include
-- LIBSDRPLAY_LIBRARIES - /usr/local/lib/libsdrplay_api.so
-- Found Git: /usr/bin/git (found version "2.30.2") 
-- Module sdrPlaySupport configured with version: 0.5.1-2c8169d
-- Configuring done
-- Generating done
-- Build files have been written to: /home/lab/tmp/SoapySDRPlay3/build

make
Scanning dependencies of target sdrPlaySupport
[ 16%] Building CXX object CMakeFiles/sdrPlaySupport.dir/Registration.cpp.o
/home/lab/tmp/SoapySDRPlay3/Registration.cpp: In function ‘std::vector<std::map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > > findSDRPlay(const Kwargs&)’:
/home/lab/tmp/SoapySDRPlay3/Registration.cpp:52:26: error: ‘struct sdrplay_api_DeviceT’ has no member named ‘valid’
   52 |       if (not rspDevs[i].valid) continue;
      |                          ^~~~~
/home/lab/tmp/SoapySDRPlay3/Registration.cpp:66:36: error: ‘SDRPLAY_RSP1B_ID’ was not declared in this scope; did you mean ‘SDRPLAY_RSP1_ID’?
   66 |       else if (rspDevs[i].hwVer == SDRPLAY_RSP1B_ID)
      |                                    ^~~~~~~~~~~~~~~~
      |                                    SDRPLAY_RSP1_ID
/home/lab/tmp/SoapySDRPlay3/Registration.cpp:84:44: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 3 has type ‘std::vector<std::map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >::size_type’ {aka ‘unsigned int’} [-Wformat=]
   84 |          sprintf_s(lblstr, sizeof(lblstr), "SDRplay Dev%ld %s %s", results.size(), modelName.c_str(), rspDevs[i].SerNo);
      |                                            ^~~~~~~~~~~~~~~~~~~~~~  ~~~~~~~~~~~~~~
      |                                                                                |
      |                                                                                std::vector<std::map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >::size_type {aka unsigned int}
/home/lab/tmp/SoapySDRPlay3/Registration.cpp:31:76: note: in definition of macro ‘sprintf_s’
   31 | _s(buffer, buffer_size, stringbuffer, ...) (sprintf(buffer, stringbuffer, __VA_ARGS__))
      |                                                             ^~~~~~~~~~~~

/home/lab/tmp/SoapySDRPlay3/Registration.cpp:84:58: note: format string is defined here
   84 |          sprintf_s(lblstr, sizeof(lblstr), "SDRplay Dev%ld %s %s", results.size(), modelName.c_str(), rspDevs[i].SerNo);
      |                                                        ~~^
      |                                                          |
      |                                                          long int
      |                                                        %d
/home/lab/tmp/SoapySDRPlay3/Registration.cpp:99:47: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 3 has type ‘std::vector<std::map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >::size_type’ {aka ‘unsigned int’} [-Wformat=]
   99 |             sprintf_s(lblstr, sizeof(lblstr), "SDRplay Dev%ld %s %s - Single Tuner", results.size(), modelName.c_str(), rspDevs[i].SerNo);
      |                                               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  ~~~~~~~~~~~~~~
      |                                                                                                  |
      |                                                                                                  std::vector<std::map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >::size_type {aka unsigned int}
/home/lab/tmp/SoapySDRPlay3/Registration.cpp:31:76: note: in definition of macro ‘sprintf_s’
   31 | _s(buffer, buffer_size, stringbuffer, ...) (sprintf(buffer, stringbuffer, __VA_ARGS__))
      |                                                             ^~~~~~~~~~~~

/home/lab/tmp/SoapySDRPlay3/Registration.cpp:99:61: note: format string is defined here
   99 |             sprintf_s(lblstr, sizeof(lblstr), "SDRplay Dev%ld %s %s - Single Tuner", results.size(), modelName.c_str(), rspDevs[i].SerNo);
      |                                                           ~~^
      |                                                             |
      |                                                             long int
      |                                                           %d
/home/lab/tmp/SoapySDRPlay3/Registration.cpp:111:47: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 3 has type ‘std::vector<std::map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >::size_type’ {aka ‘unsigned int’} [-Wformat=]
  111 |             sprintf_s(lblstr, sizeof(lblstr), "SDRplay Dev%ld %s %s - Dual Tuner", results.size(), modelName.c_str(), rspDevs[i].SerNo);
      |                                               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  ~~~~~~~~~~~~~~
      |                                                                                                |
      |                                                                                                std::vector<std::map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >::size_type {aka unsigned int}
/home/lab/tmp/SoapySDRPlay3/Registration.cpp:31:76: note: in definition of macro ‘sprintf_s’
   31 | _s(buffer, buffer_size, stringbuffer, ...) (sprintf(buffer, stringbuffer, __VA_ARGS__))
      |                                                             ^~~~~~~~~~~~

/home/lab/tmp/SoapySDRPlay3/Registration.cpp:111:61: note: format string is defined here
  111 |             sprintf_s(lblstr, sizeof(lblstr), "SDRplay Dev%ld %s %s - Dual Tuner", results.size(), modelName.c_str(), rspDevs[i].SerNo);
      |                                                           ~~^
      |                                                             |
      |                                                             long int
      |                                                           %d
/home/lab/tmp/SoapySDRPlay3/Registration.cpp:123:47: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 3 has type ‘std::vector<std::map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >::size_type’ {aka ‘unsigned int’} [-Wformat=]
  123 |             sprintf_s(lblstr, sizeof(lblstr), "SDRplay Dev%ld %s %s - Master", results.size(), modelName.c_str(), rspDevs[i].SerNo);
      |                                               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  ~~~~~~~~~~~~~~
      |                                                                                            |
      |                                                                                            std::vector<std::map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >::size_type {aka unsigned int}
/home/lab/tmp/SoapySDRPlay3/Registration.cpp:31:76: note: in definition of macro ‘sprintf_s’
   31 | _s(buffer, buffer_size, stringbuffer, ...) (sprintf(buffer, stringbuffer, __VA_ARGS__))
      |                                                             ^~~~~~~~~~~~

/home/lab/tmp/SoapySDRPlay3/Registration.cpp:123:61: note: format string is defined here
  123 |             sprintf_s(lblstr, sizeof(lblstr), "SDRplay Dev%ld %s %s - Master", results.size(), modelName.c_str(), rspDevs[i].SerNo);
      |                                                           ~~^
      |                                                             |
      |                                                             long int
      |                                                           %d
/home/lab/tmp/SoapySDRPlay3/Registration.cpp:135:47: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 3 has type ‘std::vector<std::map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >::size_type’ {aka ‘unsigned int’} [-Wformat=]
  135 |             sprintf_s(lblstr, sizeof(lblstr), "SDRplay Dev%ld %s %s - Master (RSPduo sample rate=8Mhz)", results.size(), modelName.c_str(), rspDevs[i].SerNo);
      |                                               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  ~~~~~~~~~~~~~~
      |                                                                                                                      |
      |                                                                                                                      std::vector<std::map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >::size_type {aka unsigned int}
/home/lab/tmp/SoapySDRPlay3/Registration.cpp:31:76: note: in definition of macro ‘sprintf_s’
   31 | _s(buffer, buffer_size, stringbuffer, ...) (sprintf(buffer, stringbuffer, __VA_ARGS__))
      |                                                             ^~~~~~~~~~~~

/home/lab/tmp/SoapySDRPlay3/Registration.cpp:135:61: note: format string is defined here
  135 |             sprintf_s(lblstr, sizeof(lblstr), "SDRplay Dev%ld %s %s - Master (RSPduo sample rate=8Mhz)", results.size(), modelName.c_str(), rspDevs[i].SerNo);
      |                                                           ~~^
      |                                                             |
      |                                                             long int
      |                                                           %d
/home/lab/tmp/SoapySDRPlay3/Registration.cpp:147:47: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 3 has type ‘std::vector<std::map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >::size_type’ {aka ‘unsigned int’} [-Wformat=]
  147 |             sprintf_s(lblstr, sizeof(lblstr), "SDRplay Dev%ld %s %s - Slave", results.size(), modelName.c_str(), rspDevs[i].SerNo);
      |                                               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  ~~~~~~~~~~~~~~
      |                                                                                           |
      |                                                                                           std::vector<std::map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >::size_type {aka unsigned int}
/home/lab/tmp/SoapySDRPlay3/Registration.cpp:31:76: note: in definition of macro ‘sprintf_s’
   31 | _s(buffer, buffer_size, stringbuffer, ...) (sprintf(buffer, stringbuffer, __VA_ARGS__))
      |                                                             ^~~~~~~~~~~~

/home/lab/tmp/SoapySDRPlay3/Registration.cpp:147:61: note: format string is defined here
  147 |             sprintf_s(lblstr, sizeof(lblstr), "SDRplay Dev%ld %s %s - Slave", results.size(), modelName.c_str(), rspDevs[i].SerNo);
      |                                                           ~~^
      |                                                             |
      |                                                             long int
      |                                                           %d
make[2]: *** [CMakeFiles/sdrPlaySupport.dir/build.make:82: CMakeFiles/sdrPlaySupport.dir/Registration.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:123: CMakeFiles/sdrPlaySupport.dir/all] Error 2
make: *** [Makefile:149: all] Error 2

I haven’t compiled the system.

I used the image 2023111400: Releases · librespacefoundation / SatNOGS / satnogs-pi-gen · GitLab

A few years ago I managed to get it to work but maybe it was an older version SOAPYSDRPlay ?

Thanks anyway for the help!

1 Like