OpenRSP
OpenRSP is an independent, open-source driver stack for the RSP family of software-defined radio receivers. It is a drop-in replacement for the proprietary driver: the API library, the background service that owns the USB device, and the firmware that runs on the receiver's USB bridge.
Not affiliated with SDRplay. OpenRSP is a community project. It is not made, endorsed or supported by SDRplay Ltd, and SDRplay is not responsible for it. Please do not contact SDRplay for help with OpenRSP.
Why OpenRSP exists
RSP receivers are popular, capable and affordable, but the software that drives them has been closed. Applications could only run where a binary driver was shipped, and nobody outside could fix a bug in it, port it or make it faster.
The proprietary driver stack has been reverse engineered for interoperability, every layer from the USB bridge firmware up to the application API, and re-implemented from scratch as open source. It was done so that the community can take the drivers further. In particular it gives the community and application developers:
- Any operating system. Build RSP applications for any platform, including Android and iPadOS, from one portable C++17 code base.
- A driver stack you can improve. Every layer is documented and tested, so bugs can be found and fixed in the open. Several long-standing crashes and lock-ups are already fixed, and the stream path now uses less CPU than the proprietary stack. How it works describes each layer.
- No lock-in for existing software. The API is 100% compatible with SDRplay API 3.15, so existing applications work without being recompiled or reconfigured.
- Privacy. OpenRSP never makes a network connection. The proprietary service reports each device's serial number to a remote server; OpenRSP does not.
At a glance
What is included
- The API library (
libsdrplay_api), with the same exported functions and structures as SDRplay API 3.15 - The device service (
sdrplay_apiService), installed at the same paths with the same systemd unit and udev rules - Open-source USB bridge firmware, uploaded to the receiver at plug-in
- Its own public API headers, interface- and ABI-identical to the 3.15 headers
rsp_info, a small read-only device lister- Two Android apps and two iPadOS apps: the OpenRSP driver app and a receiver demo
Where it runs
- Linux x86-64, arm64 and armhf (including Raspberry Pi), as
.runand.debpackages - Android 8.0 and later (arm64, armv7, x86-64)
- iPadOS on Apple-silicon iPads, through a USB DriverKit extension
- macOS (universal) and Windows (x64 and x86): built and tested, hardware testing in progress
See Hardware & platforms for the details.
Supported receivers
RSP1B (the reference device), RSP1A and RSPduo are supported and tested on real units. RSP1, RSP2, RSPdx and RSPdx-R2 are supported experimentally. Full table on the hardware page.
Getting OpenRSP
The source code, release packages for Linux, the Android APKs and build instructions for the other platforms will be published here soon. OpenRSP is released under the GNU GPL version 3. Testing, bug reports and patches are all welcome: see Get involved.
On Linux, installing the package replaces the proprietary stack and keeps a backup of it. Removing the package puts the backup back, so switching between the two is a single command either way.
sudo apt install ./sdrplay-api-open_3.15.2-<rev>_amd64.deb # install OpenRSP
sudo apt remove sdrplay-api-open # restore the previous install