GNU Radio block for interfacing with various radio hardware
Go to file
Adrian Chadd 9b386707d8 Fix hackrf receive hangs by checking before each lock wait
Fix receive path hangs if another thread closes down the hackrf
receive whilst this buffer receive function is waiting to be
woken up.


* Sleep for up to 100ms each time waiting for the cond to be kicked;
* Check whether streaming is still enabled each time rather than
  only when the function is entered.

This fixes hangs where consumers like gqrx via gnuradio
will do a stop_rx/start_rx very quickly to change something, and
the buffer receive path is waiting for a buffer.

Signed-off-by: Eric Wild <>
2020-12-18 13:22:24 +01:00
apps apps/osmocom_fft: Handle continuous range for sample rate gracefully 2020-02-16 09:52:00 +01:00
cmake add xtrx support 2020-11-19 01:41:05 +01:00
docs docs: Update docs template to the latest from GNURadio 2020-02-16 09:51:37 +01:00
grc add xtrx support 2020-11-19 01:41:05 +01:00
include/osmosdr A lot of Boost functionality is available in C++11. Since GNU Radio is moving away from Boost, it probably makes sense to do so in gr-osmosdr as well. 2020-08-02 23:52:25 +02:00
lib Fix hackrf receive hangs by checking before each lock wait 2020-12-18 13:22:24 +01:00
python build: Update build system to GR 3.8 standards 2020-02-16 09:52:00 +01:00
swig build: Update build system to GR 3.8 standards 2020-02-16 09:52:00 +01:00
AUTHORS Add support for FreeSRP 2017-04-18 23:48:08 +02:00
CMakeLists.txt add xtrx support 2020-11-19 01:41:05 +01:00
COPYING update license file to GPL v3 as in source 2012-04-21 14:07:25 +02:00 updated 2015-05-14 00:22:39 +02:00
README add xtrx support 2020-11-19 01:41:05 +01:00


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 (
 * 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

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://
cd gr-osmosdr/
mkdir build
cd build/
cmake ../
sudo make install
sudo ldconfig

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