/gr-osmosdr

gr-osmosdr GnuRadio OOT module for SDRplay API 3.x - supports RSPduo (all modes) and RSPdx

Primary LanguageC++GNU General Public License v3.0GPL-3.0

# gr-osmosdr module for SDRplay API 3.x - supports RSPduo (all modes) and RSPdx

* Please note that this code is still experimental - if you have problems running it, please create a new issue in github *

This is a fork of the gr-osmosdr GnuRadio OOT module specifically for SDRplay RSPs.
Main points:
- requires SDRplay API version 3.x (3.07 as of June 2020)
- requires GnuRadio >=3.8
- supports RSPduo in all modes (one channel only for now)
- supports RSPdx
- supports the legacy devices (RSP1, RSP1A, and RSP2)
- works with gqrx
- tested only on Linux (Fedora 32 to be exact, but it should work on most recent Linux distributions)

## How to build it:

- download the SDRplay API version 3.x from here: https://www.sdrplay.com/downloads/ (select Linux x86 -> API/HW driver V3.x)
- the file you downloaded should be called something like SDRplay_RSP_API-Linux-3.x.y.run; make it executable and run it (chmod u+x <filename>; sudo ./<filename>)
- start the sdrplay_api service (or make sure the previous step started it)
- make sure you have gcc, g++, and cmake installed to build the gr-osmosdr module
- make sure you have GnuRadio (>= 3.8) and the matching GnuRadio developement package (on Fedora it is called 'gnuradio-devel'; on Debian/Ubuntu I think it is called 'gunradio-dev') installed
- git clone this repo and cd to the repo directory
- finally build and install this gr-osmosdr module with these commands:
```
mkdir build
cd build
cmake -Wno-dev -DENABLE_NONFREE=TRUE -DENABLE_SOAPY=OFF -DCMAKE_BUILD_TYPE=Release ../
make
sudo make install
```
- if you do not have gqrx already installed, you can get it or build it from here (https://github.com/csete/gqrx)


#### cmake options

This gr-osmosdr driver has a few cmake flags mostly for debugging and troublshhoting:
- -DSAMPLE_NUM_GAP_WARNING=TRUE -> display a warning whenever there is a gap in the sample numbers in the stream callback function
- -DONLY_CHECK_SAMPLE_GAPS=TRUE -> do not send samples back to the client app; just check for gaps in sample numbers
- -DSHOW_GAIN_CHANGES=TRUE -> logs an INFO level message whenever a gain change event occurs (very noisy when AGC is enabled)



===============================================================================
Original README:

While primarily being developed for the OsmoSDR hardware, this block
as well supports:

 * FUNcube Dongle through libgnuradio-fcd
 * FUNcube Dongle Pro+ through gr-fcdproplus
 * RTL2832U based DVB-T dongles through librtlsdr
 * RTL-TCP spectrum server (see librtlsdr project)
 * SDRplay RSP through SDRplay API library
 * gnuradio .cfile input through libgnuradio-blocks
 * RFSPACE SDR-IQ, SDR-IP, NetSDR (incl. X2 option)
 * AirSpy Wideband Receiver through libairspy
 * CCCamp 2015 rad1o Badge through libhackrf
 * Great Scott Gadgets HackRF through libhackrf
 * Nuand LLC bladeRF through libbladeRF library
 * Ettus USRP Devices through Ettus UHD library
 * Fairwaves UmTRX through Fairwaves' module for UHD
 * Fairwaves XTRX through libxtrx
 * Red Pitaya SDR transceiver (http://bazaar.redpitaya.com)
 * FreeSRP through libfreesrp

By using the OsmoSDR block you can take advantage of a common software api in
your application(s) independent of the underlying radio hardware.

For installation and usage guidelines please read the documentation available
at http://sdr.osmocom.org/trac/wiki/GrOsmoSDR

For the impatient :) a short excerpt:

The Gnu Radio block requires a recent gnuradio (>= v3.7) to be installed.

Before building the block you have to make sure that all the dependencies
(see list of supported devices above) you are intend to work with are
properly installed. The build system of gr-osmosdr will recognize them and
enable specific source/sink components thereafter.

Please note: prior pulling a new version from git and compiling it,
please do a "make uninstall" first to properly remove the previous version.

Building with cmake:

git clone git://git.osmocom.org/gr-osmosdr
cd gr-osmosdr/
mkdir build
cd build/
cmake ../
make
sudo make install
sudo ldconfig

NOTE: The osmocom blocks will appear under 'Sources' and 'Sinks' categories
in GRC menu.