OpenRSP

An open-source driver stack for RSP-family SDR receivers

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:

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 .run and .deb packages
  • 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