When using SDRPlay devices, a proprietary API software from SDRPlay needs to be installed so that OWRX can communicate with the SDRPlay receiver.
SDRPlay updates the API regularly and OWRX and the interfacing components follow closely the development of the SDRPlay API. Therefore it is important that the API is kept up to date as new versions of OWRX might use some API functions or calls which older versions do not support, and some features just stop working or the SDRPlay devices just stop working with OWRX.
The SDRPlay API is not maintained as a package for any Linux distributions, but it needs to be installed/updated manually. Here is a step-by-step guide on how to download and install or upgrade the SDRPlay API.
The current version of the API can be found from the SDRPlay API website at https://sdrplay.com/API/
The current version of the API can be downloaded directly using this link https://www.sdrplay.com/software/SDRplay_RSP_API-Linux-3.15.2.run. When new versions are released, the form of the URL remains and only the version number (like here 3.15.2) need to be changed from the URL.
Download the installation script:
wget https://www.sdrplay.com/software/SDRplay_RSP_API-Linux-3.15.2.run
Make the API installation file executable:
chmod a+x SDRplay_RSP_API-Linux-3.15.2.run
The installation needs to happen as root, so sudo is used here. The command can be ran without sudo, in such case the installation dialog will issue sudo request by itself and your password is requested by the sudo dialog. Proceed the way you want.
The contents of the installation dialog output depends on your system, so you might get different results or output as below, but the dialog should remain the same.
Execute the installation with this command:
sudo ./SDRplay_RSP_API-Linux-3.15.2.run
The installation script expects that the license agreement is viewed:
Press RETURN to view the license agreement
Continue with pressing RETURN
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]
Continue to the installation by pressing 'y' and RETURN.
The installation begins and lots of information is provided during install:
A copy of the license agreement can be found here: /root/sdrplay_license.txt Architecture reported as being 64 bit System reports 64 bit files found System is also setup to produce 64 bit files Architecture reports machine as being x86_64 compliant Checking for root permissions. You may be prompted for your password... The rest of the installation will continue with root permission... This API requires the following system dependencies... libusb and lidudev If the installer cannot detect the presence of these, you will have the option to continue and you will need to install them Checking for package tools... apt found Checking for packages... libusb-1.0 found libudev1 found Udev directory found, adding rules...rules added Adding SDRplay devices to the local hardware database...Done USB name database not found, continuing... Installing API files, the default locations are... API service : /opt/sdrplay_api API header files : /usr/local/include API shared library : /usr/local/lib Daemon start scripts : /etc/systemd/system Daemon start system : SystemD To continue the installation with these defaults press y and RETURN or press n and RETURN to change them [y/n]
Again, press y and RETURN to continue with the installation
Cleaning old API files...Done. Installing /usr/local/lib/libsdrplay_api.so.3.15...Done Installing header files in /usr/local/include...Done Installing API Service in /opt/sdrplay_api...Done Installing Service scripts and starting daemon...Removed /etc/systemd/system/multi-user.target.wants/sdrplay.service. Created symlink /etc/systemd/system/multi-user.target.wants/sdrplay.service → /etc/systemd/system/sdrplay.service. Done The API Service has been installed and started. After the installation has finished, please reboot this device. To start and stop the API service, use the following commands... sudo systemctl start sdrplay sudo systemctl stop sdrplay If supported on your system, lsusb will now show the RSP name SDRplay API 3.15 Installation Finished
The installation should finish and you are returned to the shell at this stage.
Check the SDRPlay service status
As indicated in the installation dialog output, the SDRPlay service has been installed and started. To verify the service status, run this command:
systemctl status sdrplay
The output of the command should be similar what's below and the service is OK and running.
If the result is different, it does not yet mean that the installation has failed. A reboot was requested by the installation dialog, it might fix the issue. In this case, run the command above after rebooting your system to verify good service status.
● sdrplay.service - SDRplay API Service Loaded: loaded (/etc/systemd/system/sdrplay.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2024-07-19 00:14:17 EEST; 4min 4s ago Main PID: 1236896 (sdrplay_apiServ) Tasks: 3 (limit: 9344) Memory: 472.0K CPU: 416ms CGroup: /system.slice/sdrplay.service └─1236896 /opt/sdrplay_api/sdrplay_apiService
Reboot the system
As indicated by the installation dialog, a reboot is required to finish the installation properly. Reboot the system with the following command:
sync; sync; reboot
When the system is up again, OWRX should be happy with the new version of the SDRPlay API