Skip to content
Josh Blum edited this page Jun 1, 2019 · 37 revisions

Soapy plugins for OsmoSDR devices

https://raw.githubusercontent.com/wiki/pothosware/SoapyOsmo/images/soapy_sdr_osmo_logo.png

This is a plugin module for Soapy SDR for various gr-osmosdr supported devices. In addition, Soapy SDR devices can be used from the gr-osmosdr interface when gr-osmosdr is compiled with Soapy SDR support. The following devices can be used from the SoapySDR API and software that supports SoapySDR:

Device Key Support status CMake configuration notes
Osmo-SDR osmosdr Supported through SoapyOsmo  
RTL-SDR rtl Use RTL-SDR support module Enable with -DUSE_OSMO_RTLSDR=ON
MiriSDR miri Supported through SoapyOsmo  
HackRF hackrf Use Hack RF support module Enable with -DUSE_OSMO_HACKRF=ON
BladeRF bladerf Use Blade RF support module Enable with -DUSE_OSMO_BLADERF=ON
RFSpace rfspace Use Net SDR support module Enable with -DUSE_OSMO_RFSPACE=ON
Airspy airspy Use Airspy support module Enable with -DUSE_OSMO_AIRSPY=ON
SDRPlay sdrplay Use SDR Play support module Not available in SoapyOsmo
RedPitaya redpitaya Use Red Pitaya support module Enable with -DUSE_OSMO_REDPITAYA=ON
FunCube fcd Use Audio support module Not available in SoapyOsmo
FreeRSP freesrp Supported through SoapyOsmo  

Pre-built installers for various systems are available through the Pothos SDR environment.

Note: Even though we are based off of gr-osmosdr, GNU Radio is not a dependency.

Recommended apt-get install instructions for Ubuntu:

sudo add-apt-repository -y ppa:myriadrf/drivers
sudo apt-get update

sudo apt-get install libboost-all-dev
sudo apt-get install osmo-sdr libosmosdr-dev
sudo apt-get install miri-sdr libmirisdr-dev
sudo apt-get install airspy libairspy-dev

The CMake build system will locate boost and SoapySDR development files on your system. Plugin modules will be built for every supported device to which a hardware driver can be located.

git clone https://github.com/pothosware/SoapyOsmo.git
cd SoapyOsmo
mkdir build
cd build
cmake ..
make
sudo make install

Use the SoapySDRUtil application to see if SoapySDR can detect your device. In this example, lets use the --probe option to print information about the RTL SDR device:

SoapySDRUtil --probe="driver=rtl"
######################################################
## Soapy SDR -- the SDR abstraction library
######################################################

Probe device driver=rtl
Using device #0 Realtek RTL2838UHIDIR SN: 00000001
Found Rafael Micro R820T tuner

----------------------------------------------------
-- Device identification
----------------------------------------------------
  driver=rtl
  hardware=rtl

----------------------------------------------------
-- Peripheral summary
----------------------------------------------------
  Channels: 1 Rx, 0 Tx
  Timestamps: NO

----------------------------------------------------
-- RX Channel 0
----------------------------------------------------
  Full-duplex: YES
  Antennas: RX
  Full gain range: [0, 49.6] dB
    LNA gain range: [0, 49.6] dB
  Full freq range: [24, 1766] MHz
    RF freq range: [24, 1766] MHz
    CORR freq range:  MHz
  Sample rates: [0.25, 2.56] MHz

Soapy SDR devices can also be used from the gr-osmosdr interface. This allows any device with a Soapy SDR plugin to be usable as a GNU Radio block or in an application that uses gr-osmosdr. Simply install Soapy SDR before configuring gr-osmosdr, Soapy SDR should be one of the configured components.