Commit Graph

40 Commits

Author SHA1 Message Date
Dimitri Stolnikov 24d54c369f file: expose seek function in public API 2014-05-03 18:37:05 +02:00
Dimitri Stolnikov 1f7e798184 source/sink: don't return void in void functions 2014-05-03 18:22:21 +02:00
Dimitri Stolnikov 333e9bbbb2 airspy: add support for AirSpy wideband receiver
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.
2014-02-16 09:30:04 +01:00
Dimitri Stolnikov 7b1c5dc8a0 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.
2014-01-26 17:07:35 +01:00
Dimitri Stolnikov 05e17c6417 sink/source: fix error message when unable to connect blocks internally 2013-12-05 00:02:22 +01:00
Dimitri Stolnikov 7394251bd0 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:03 +02:00
Dimitri Stolnikov 884ee47605 source/sink: initialize sample rate cache variable
Thanks to Jiří Pinkava for bringing this up.
2013-10-03 14:50:16 +02:00
Dimitri Stolnikov 6187f182d5 source/sink: fix automatic bandwidth selection 2013-10-03 14:45:12 +02:00
Dimitri Stolnikov 65e34f6863 bladerf: add support for nuand LLC bladeRF (WIP)
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.
2013-07-28 19:57:45 +02:00
Dimitri Stolnikov 6f04a9b03a uhd: implement dc correction 2013-06-09 23:13:12 +02:00
Dimitri Stolnikov faa1f44550 return cached values in setters immediately if same as requested 2013-06-08 17:13:16 +02:00
Dimitri Stolnikov 52e1272ba5 uhd: update includes 2013-05-07 22:44:08 +02:00
Dimitri Stolnikov 13477f279f source/sink: return freq_range_t in get_bandwidth_range()
it was meta_range_t (which is binary compatible) before.
2013-04-30 21:00:57 +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
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
2013-04-10 21:05:14 +02:00
Dimitri Stolnikov fb79836158 print gnuradio version information in startup message 2013-03-17 10:31:51 +01:00
Hoernchen 69e0003407 This reverts commit 3fb4f96bb7.
This reverts commit 1772222cb3.
reorder include dirs
2013-03-12 19:39:30 +01:00
Dimitri Stolnikov 1772222cb3 workaround for build system related bug caused by gnuradio master
They really should not name the header config.h:

http://gnuradio.org/cgit/gnuradio.git/commit/?id=9297c84dfdae3002677f759ef2b38a877d2edc2c
2013-03-11 21:13:38 +01: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:

http://cgit.osmocom.org/cgit/gr-iqbal
2013-03-11 21:06:13 +01:00
Dimitri Stolnikov b74aeb108e print version information in startup message 2013-02-17 00:11:22 +01:00
Dimitri Stolnikov 241fc1922b return a sample rate of (0) instead of (0, 1) when a fatal error occurs 2013-01-10 20:35:00 +01:00
Dimitri Stolnikov d243abe2d7 return default devices for file and rtl_tcp in device::find() 2013-01-10 20:33:45 +01:00
Dimitri Stolnikov ad2e5523cb fill up missing radio channel(s) with gaussian noise
This is being done to prevent the application from crashing
due to a gnuradio bug. The GR maintainers have been informed.
2012-12-25 16:51: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 c51b04ee74 don't throw exceptions inside a gr_hier_block2 ctor
This avoids throws in ctor of gr_hier_block2, as gnuradio is unable to
deal with this behavior in a clean way. The GR maintainer Rondeau has
been informed.
2012-09-30 16:54:34 +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 869ed6df15 print information about supported components 2012-06-02 01:19:15 +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
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());
2012-05-20 12:55:52 +02:00
Dimitri Stolnikov e256bf332e reapply previous gain value when switched to manual gain mode 2012-05-19 22:47:28 +02:00
Dimitri Stolnikov 6bef750ac9 change gain mode argument to 'automatic' for clarity 2012-05-17 10:35:58 +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
Dimitri Stolnikov cf1c3ab117 pick first device if no device arguments were specified 2012-05-05 20:43:34 +02:00
Dimitri Stolnikov 3b6c74807c implement internal cache for setter functions
this is prevents GRC calling them multiple times with the same value
2012-05-05 17:35:38 +02:00
Dimitri Stolnikov 3a47e3661c add api for manual gain mode control 2012-05-05 00:43:32 +02:00
Dimitri Stolnikov f0ac70fa41 file: initial file source support
Example:
  file=/path/to/file.ext,freq=428e6,rate=1e6,repeat=true,throttle=true
2012-04-29 19:55:28 +02:00
Dimitri Stolnikov c1c0c2f212 first working multichannel source 2012-04-28 20:18:14 +02:00
Dimitri Stolnikov 31a4356ba5 fix copyright notice
Remove FSF line, since we do not have any agreements with them.
2012-04-26 19:28:02 +02:00
Dimitri Stolnikov 619d7a5a8b cleanup interface & documentation 2012-04-11 23:37:02 +02:00
Dimitri Stolnikov 0efd28de6b initial commit 2012-04-06 15:29:14 +02:00