Fix from c98be5dd for MSVC which does not require pthreads for boost threading library.
Under gcc -pthread adds support for multithreading with the pthreads library.
This patch adds support for both receiving and transmitting using
the FreeSRP. More information on the FreeSRP can be found at:
http://freesrp.org
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
https://github.com/freesrp/libfreesrp
Usage example:
osmocom_fft -a "freesrp"
This patch adds two gr-osmosdr blocks that can be used with the SDR transceiver
application available from the Red Pitaya application marketplace:
http://bazaar.redpitaya.com
These new source and sink blocks are based on the file block with some pieces
borrowed from the rtl_tcp block.
More details about Red Pitaya SDR transceiver can be found at:
http://pavel-demin.github.io/red-pitaya-notes/sdr-transceiver
Usage example:
osmocom_fft -a "redpitaya=192.168.1.100:1001"
Signed-off-by: Pavel Demin <pavel.demin@uclouvain.be>
Requires https://github.com/airspy/host
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
tuner.
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.
- 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
This is based on the original work (https://github.com/Nuand/gr-osmosdr)
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.
The gnuradio block https://github.com/dl1ksv/gr-fcdproplus 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
testing.
features:
- gain control for LNA & VGA
- frequency error correction
- automatic baseband filter
- up to 20M sampling rate
limitations:
- no DC offset correction implemented (yet)
- no RX preamplifier control (disabled by default)
- high sampling rates may not work on slow machines
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
cunstruction.
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.
Example:
#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());
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.