Commit Graph

65 Commits

Author SHA1 Message Date
Csaba Sipos dc82ffd1f8 add xtrx support
Signed-off-by: Eric Wild <>
2020-11-19 01:41:05 +01:00
Clayton Smith fe03d83703 Remove disabled OsmoSDR and MiriSDR code
OsmoSDR and MiriSDR support was disabled in v0.2.1 because the hardware
is rare and obsolete. I think it would be useful to completely remove
the associated code, since this will reduce the future maintenance
burden for gr-osmosdr.

Signed-off-by: Eric Wild <>
2020-11-01 00:12:56 +01:00
Mike Walters 5cf6f4df96 grc: Fix YML block generation
This fixes the template syntax that removes a set of variables from sink
blocks. Previously, this was causing NameErrors when trying to generate
a flowgraph containing a sink block.

Signed-off-by: Eric Wild <>
2020-08-03 01:20:52 +02:00
Sylvain Munaut e9890283ca grc: Convert XML GRC blocks to YML
Conversion done by Mickey Vänskä <>

Signed-off-by: Sylvain Munaut <>
2020-02-16 09:51:37 +01:00
Sylvain Munaut 982945a477 build: Update CMakeLists.txt copyright header
Part of GNURadio 3.8 migration

Signed-off-by: Sylvain Munaut <>
2020-02-16 09:51:37 +01:00
Dimitri Stolnikov 3c7d3f1664 rtl,rtl_tcp: add bias=0|1 parameter to switch off|on bias voltage on
2017-06-11 22:04:03 +02:00
Lukas Lao Beyer 5ecfa255d2 Add support for FreeSRP
This patch adds support for both receiving and transmitting using
the FreeSRP. More information on the FreeSRP can be found at:

The gr-osmosdr blocks added make use of libfreesrp, the library
required for interfacing with this device. The libfreesrp source
code is freely available at

Usage example:

osmocom_fft -a "freesrp"
2017-04-18 23:48:08 +02:00
Dimitri Stolnikov 2b79811350 bladerf: implement options for clock configuration
Since firmware 2016.01-rc1 bladeRF has the ability to lock to an
external reference as well as produce arbitrary frequency signal
(25 MHz here) on its clock output.

Use gr-osmosdr source with the following arguments to produce 25
MHz on the SMB connector:

osmocom_fft -a bladerf,smb=25e6


To lock the bladeRF itself to an external GPSDO reference, use
additional arguments tamer=external for 10MHz or tamer=external_1pps for
1PPS GPSDO signals.

osmocom_fft -a bladerf,smb=25e6,tamer=external


The described method requires

Carefully *read the instructions for external reference locking*
(especially max allowed voltage levels) on Nuand's blog https://
2016-02-28 17:45:54 +01:00
Dimitri Stolnikov 64cfd98c5b grc: update grc generator 2016-01-10 22:27:42 +01:00
Dimitri Stolnikov 55fe961987 update documentation 2015-12-18 22:20:27 +01:00
Dimitri Stolnikov 5943919828 hackrf: introduce bias=0|1 and bias_tx=0|1 parameters
... to support antenna/phantom power via a new device argument "bias"
(to match Airspy's existing bias power syntax). 0=disable and 1=enable.
I also added a device argument to control bias power at transmit time. I
named this option differently - "bias_tx" - to avoid accidentally
enabling bias power in transmit mode when an LNA may be attached in an
input amplifier configuration.

Original patch provided by Brad Hein
2015-05-27 23:55:00 +02:00
SDRplay afed5df615 Added SDRplay RSP support
Initial build for SDRplay RSP support. Basic functionality, AGC etc. to
be added
2015-04-28 22:35:18 +02:00
Dimitri Stolnikov 20fd6a8c34 airspy: implement DC bias control
use with -a "airspy,bias=1" to enable DC bias on antenna input
2014-11-27 16:38:25 +01:00
Dimitri Stolnikov aa4094b3fd introduce time & clock synchronisation APIs 2014-11-25 20:47:59 +01:00
Dimitri Stolnikov bfbc97db8f grc: fix template for gain mode setter
Problem observed & reported by Michael Dickens with swig 3.0.0, local
swig 2.0.11 seems not to be affected.
2014-04-16 20:27:25 +02:00
Dimitri Stolnikov 154c4ddd5f airspy: add support for AirSpy wideband receiver

Usage example:

osmocom_fft -a airspy

The following named gain stages are available:

LNA: 0 to 15, step 1
MIX: 0 to 15, step 1
IF: 0 to 15, step 1

At the moment the gains are not in dB but gain indices internal to R820t
2014-02-09 20:18:10 +01:00
Dimitri Stolnikov 80c4af4f31 bladerf: FX3 firmware loading not supported from within gr-osmosdr 2013-12-28 13:05:45 +01:00
Dimitri Stolnikov 9c6ac9e3e3 rfspace: add support for RFSPACE SDR-IQ and SDR-IP
Usage example:

osmocom_fft -a sdr-iq=/dev/ttyUSB0
osmocom_fft -a sdr-ip=host[:port]
osmocom_fft -a netsdr=host[:port][,nchan=2]

The following named gain stages are available:

SDR-IQ: ATT: -20 to +10 dB, in 10dB steps
SDR-IP: ATT: -30 to 0 dB, in 10dB steps

The ftdi_sio driver is being used for SDR-IQ. It creates a character
device of the form:

crw-rw---- 1 root dialout 188, 0 Dec 19 22:14 /dev/ttyUSB0

To be able to open the device without root permissions add yourself to
the "dialout" group or do a "chmod 666 /dev/ttyUSB0" after pluggin in.
2013-12-22 16:28:27 +01:00
Dimitri Stolnikov a98e682693 add UmTRX to the list of supported devices
requires Fairwaves' port of the Ettus UHD library:
2013-12-10 16:56:14 +01:00
Dimitri Stolnikov 8facbbcca1 netsdr: add support for RFSPACE NetSDR receiver
- implements broadcast UDP based device discovery
- prints device information (serial/versions) on startup
- reads available frequency range(s) from the device
- integrity checks of IQ stream using sequence numbers
- automatic bandpass or a wideband lowpass selectable

The following named gain stages are available:

ATT: -30 to 0 dB, in 10dB steps

Known limitations:

- setting the sample rate is possible only before the
  flowgraph has been started
2013-10-26 15:04:41 +02:00
Dimitri Stolnikov 71d8d02793 use numchan instead of nchan to prevent ambiguity...
..when specifying total number of channels offered by the block
2013-10-25 23:39:17 +02:00
Dimitri Stolnikov e5f7b28093 bladerf: add support for nuand LLC bladeRF (WIP)
This is based on the original work (
done by folks at nuand LLC for the gr3.6 branch of gr-osmosdr.

The following modifications have been done in this commit:

* port to gr-osmosdr master codebase (gr3.7)
* moved shared properties to bladerf_common
* added & verified IF filter bandwidth setters
* set LMS6002D registers with values taken from FAQ 5.27
* print device information (serial/versions) on startup
* added fpga= and fw= device arguments to program MCU/FPGA
* added bladerf=# dev. arg. to select a specific bladeRF
* grc gain field controls RF path VGA for RX/TX
* grc BB gain field controls BB path VGA for RX/TX

Usage example:

osmocom_fft -a "bladerf,fpga=/tmp/hostedx115.rbf"

The following RX named gain stages are available:

LNA: 0 to 6 dB, in 3dB steps
VGA1: 5 to 30 dB, in 1dB steps; nonlinear mapping done inside the lib
VGA2: 0 to 60 dB, in 3dB steps; not recommended to be used above 30dB

The following TX named gain stages are available:

VGA1: -35 to -4 dB, in 1dB steps, BB side
VGA2: 0 to 25 dB, in 1dB steps, RF side

Thanks a lot to the team of nuand LLC for this major contribution.
2013-07-21 11:59:22 +02:00
Dimitri Stolnikov 3ce7c33981 fcd: add support for FUNcube Dongle Pro+
The gnuradio block must be
installed before building gr-osmosdr.

Available named gains:

Dongle Classic:

LNA: -5 to 30 dB, in 2.5 dB steps
MIX: 4 or 12 dB

Dongle Pro+:

LNA: 0 or 1, meaning off/on only. no information about real values.
MIX: 0 or 1, meaning off/on only. no information about real values.
BB: 0 to 59 dB, in 1 dB steps

This patch also introduces optional "device" and "type" arguments which
allow to override the values automatically picked by gr-osmosdr:

osmocom_fft -a "fcd,device=hw:2,type=2"

The "device" argument overrides the audio device used by the underlying
driver to access the dongle's IQ sample stream.

The "type" argument selects the dongle type, 1 for Classic, 2 for Pro+.

Thanks to Alexey Bazhin for the initial patch and Volker Schroer for
2013-07-14 12:09:55 +02:00
Dimitri Stolnikov 02f38ca908 uhd: implement dc correction 2013-06-09 20:19:17 +02:00
Dimitri Stolnikov 7e55cb9224 introduce osmosdr namespace, remove _c suffix
- the namespace conversion adopts the common gnuradio coding guidelines
- suffix removal is a preparation to support 8/16 bit complex data types
2013-05-30 16:14:22 +02:00
Dimitri Stolnikov 3e6a24e5d9 convert to gnuradio 3.7 interface 2013-05-29 22:34:40 +02:00
Dimitri Stolnikov ceb14f0f13 hackrf: enable buffers argument for the source block 2013-05-26 13:04:06 +02:00
Dimitri Stolnikov 193fd0ad88 osmosdr: remove deprecated device arguments 2013-05-26 13:02:14 +02:00
Dimitri Stolnikov af819dfa4a uhd: add TX support 2013-05-07 22:46:07 +02:00
Dimitri Stolnikov a5bdb27240 hackrf: add TX support (wip)

- gain control for AMP & VGA
- frequency error correction
- automatic baseband filter
- up to 20M sampling rate


- no DC offset correction implemented (yet)
- high sampling rates may not work on slow machines

the following TX named gain stages are available:

RF: MGA-81563, switchable 0 or 14dB
IF: MAX2837 VGA, 0 to 47dB in 1dB steps
2013-04-28 12:36:31 +02:00
Dimitri Stolnikov afd56f4b5a hackrf: implement BB lowpass filter control
To use the default (automatic) bandwidth filter selection, this should
be set to 0.
2013-04-15 23:36:55 +02:00
Dimitri Stolnikov 448206b2d2 hackrf: implement full control for RF/IF/BB gain stages
the following named gain stages are available:

RF: MGA-81563, switchable 0 or 14dB
IF: MAX2837 LNA, 0 to 40dB in 8dB steps
BB: MAX2837 VGA, 0 to 62dB in 2dB steps
2013-04-13 23:12:22 +02:00
Dimitri Stolnikov f5670788fc hackrf: add support for HackRF devices through libhackrf

- gain control for LNA & VGA
- frequency error correction
- automatic baseband filter
- up to 20M sampling rate


- no DC offset correction implemented (yet)
- no RX preamplifier control (disabled by default)
- high sampling rates may not work on slow machines
2013-04-10 21:05:14 +02:00
Dimitri Stolnikov e415d843c7 add support for software IQ imbalance correction
this functionality depend on the gr-iqbal blocks developed by Sylvain
Munaut and is a compile time dependency:
2013-03-11 21:06:13 +01:00
Dimitri Stolnikov ede9c80455 rtl_tcp: add direct_samp and offset_tune args like used in rtl= target 2013-02-18 20:43:35 +01:00
Dimitri Stolnikov 91a93a39bc grc: updated documentation with recently introduced arguments 2013-01-21 20:37:56 +01:00
Dimitri Stolnikov 2878501284 add support for MSi2500 based DVB-T dongles through libmirisdr
this has been tested with analog modes only and still has to be
verified with the usual digital modes for proper implementation.
2012-09-30 20:12:48 +02:00
Dimitri Stolnikov bb0adf48e5 preset default if gain value in GRC to the one used outside of GRC 2012-08-01 22:57:36 +02:00
Dimitri Stolnikov f32eb2657c update GRC documentation 2012-08-01 22:57:21 +02:00
Dimitri Stolnikov 86ec5d3b73 add if gain setter API for rtl-sdr
and OsmoSDR devices

Observations lead to an useful gain
range from 15 to 30dB, a value of
24dB is used by default.
2012-07-18 21:24:57 +02:00
Dimitri Stolnikov 9c8f240a63 remove annoyingly hubristic source name 2012-06-22 00:39:35 +02:00
Dimitri Stolnikov b7c06541c3 add virtual rtlsdr source and move both to 'Sources' category in GRC 2012-06-12 21:45:01 +02:00
Dimitri Stolnikov 38811fb853 uhd: remove the equal character from uhd argument 2012-06-09 16:26:49 +02:00
Dimitri Stolnikov b2128bc864 fix escape sequence for uhd device arguments example 2012-05-27 17:58:44 +02:00
Dimitri Stolnikov 3ea0b38810 introduce device discovery api
This API allows to acquire a list of devices connected to the host and
creates an argument string ready to be passed to a source object for

Each device_t entry contains a "label" entry, which holds the generic
device name which may be shown to the user for device selection.

For certain radio hardware extended entries ("name", "serial", "type")
may be available to make bijective device addressing possible.

The argument string for target types "rtl_tcp" and "file" might be
constructed using the osmosdr::device_t class facilities.


 #include <osmosdr_device.h>
 #include <osmosdr_source_c.h>

osmosdr::devices_t devs = osmosdr::device::find();

BOOST_FOREACH(osmosdr::device_t &dev, devs) // try to create each dev
  osmosdr_source_c_sptr src = osmosdr_make_source_c(dev.to_string());
2012-05-20 12:55:52 +02:00
Dimitri Stolnikov 8c0be96215 grc: change gain_mode type to int to allow switching at runtime 2012-05-19 22:26:25 +02:00
Dimitri Stolnikov 8e82b44bff rtl_tcp: change device argument syntax to host[:port]
without any arguments the code will try to connect to localhost:1234
2012-05-13 19:49:07 +02:00
Dimitri Stolnikov 52dea1e0b7 remove unused grc source/sink block files 2012-05-12 20:19:45 +02:00
Dimitri Stolnikov e38dc2f427 rtl_tcp: implement sample rate and gain control 2012-05-06 19:42:27 +02:00
Dimitri Stolnikov f94d8da48e rtl_tcp: add initial component files
For use with the rtl_tcp utility acting as a spectrum server.

The "empty" rtl_tcp= device hint might be used to connect to rtl_tcp
running on local machine.
2012-05-05 23:47:00 +02:00