Commit Graph

233 Commits

Author SHA1 Message Date
Hoernchen 80b4ad2921 offer avx and sse to speed up float->uint8 for tx 2013-05-06 21:52:19 +02:00
Dimitri Stolnikov 2d9e29ee46 hackrf: replace non-portable usleep with boost sleep 2013-05-02 23:08:32 +02:00
Dimitri Stolnikov 1ae6a839bb file: update returned gain and frequency ranges 2013-04-30 21:46:01 +02:00
Dimitri Stolnikov a0c50c2df1 source/sink: rename antennas to express their function 2013-04-30 21:44:31 +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 7ed94c6242 osmosdr: remove unimplemented sink template
transmit feature won't be available in final hardware
2013-04-30 20:29:47 +02:00
Dimitri Stolnikov a5bdb27240 hackrf: add TX support (wip)
features:

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

limitations:

- 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 882b6da6ac hackrf: updated source comments 2013-04-28 12:28:04 +02:00
Dimitri Stolnikov 37f6383c7c hackf: implement start & stop methods
This allows a block to enable an associated driver to begin
transfering data just before we start to execute the scheduler.
The end result is that this reduces latency in the pipeline
when dealing with audio devices, usrps, etc.
2013-04-26 21:50:50 +02:00
Dimitri Stolnikov 9bd7cbf4e1 source: update header documentation 2013-04-26 21:21:56 +02:00
Dimitri Stolnikov e157449a9e hackrf: don't skip first samples when streaming 2013-04-26 21:04:30 +02:00
Dimitri Stolnikov 98a805481e hackrf: make failures more verbose 2013-04-26 20:43:06 +02:00
Dimitri Stolnikov ae2de75272 cmake: add windows dll resource file 2013-04-16 21:53:09 +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 44ff525904 iqbal: fix c&p mistake in lib/CMakeLists.txt 2013-04-14 11:27:14 +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 7b66bb860a devices: software-only sources should be appended at the very end
hopefully this will result in hardware sources to be shown first
if any sort of a graphical interface is being used to show a list...
2013-04-10 21:17:31 +02:00
Dimitri Stolnikov 368c0ff130 cmake: handle iqbal like any other component 2013-04-10 21:09:02 +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 fd56ae7640 adopt gnuradio component header structure
this makes it neccessary to include headers with the osmosdr/ prefix

thanks to Alexandru Csete for pointing this out.
2013-04-09 00:28:10 +02:00
Dimitri Stolnikov e77017f652 use GR_LIBRARY_FOO() to comply with gnuradio library naming scheme 2013-03-17 10:36:25 +01:00
Dimitri Stolnikov fb79836158 print gnuradio version information in startup message 2013-03-17 10:31:51 +01:00
Dimitri Stolnikov 901dca8135 remove APPEND from include_directories 2013-03-12 20:17:24 +01:00
Hoernchen 69e0003407 This reverts commit 3fb4f96bb7.
This reverts commit 1772222cb3.
reorder include dirs
2013-03-12 19:39:30 +01:00
Hoernchen 3fb4f96bb7 fix the other config.h includes as well 2013-03-12 14:51:01 +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 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 faa5123186 rtl_tcp: update rtl agc mode as well when switching tuner agc on/off 2013-02-18 20:11:54 +01:00
Dimitri Stolnikov 2ca2d8cd4d rtl_tcp: add named gain stage "IF" 2013-02-17 17:59:49 +01:00
Dimitri Stolnikov b74aeb108e print version information in startup message 2013-02-17 00:11:22 +01:00
Dimitri Stolnikov ed253ffc1e osmosdr: add named gain stage "IF" 2013-02-16 15:01:46 +01:00
Dimitri Stolnikov 864712bad0 rtl: add named gain stage "IF" 2013-02-16 15:01:29 +01:00
Dimitri Stolnikov d4de9d18c1 remove unused self() 2013-02-16 12:44:38 +01:00
Dimitri Stolnikov 0f371eeca1 remove gain_mode getter/setter where not used 2013-02-16 12:36:06 +01:00
Dimitri Stolnikov 878c80d8ca add meta_range_t::values() which returns all values of the range 2013-02-16 12:19:47 +01:00
Dimitri Stolnikov 18c860281d file: set repeat and throttle device args to true by default 2013-01-20 15:45:22 +01:00
Dimitri Stolnikov 9e60a61f73 osmosdr: notify work function on exit of async read 2013-01-20 15:39:15 +01:00
Dimitri Stolnikov 51787ff8e1 miri: notify work function on exit of async read 2013-01-20 15:38:56 +01:00
Dimitri Stolnikov 10573261c2 rtl: notify work function on exit of async read
this is required to handle the interruption of a flowgraph in a clean
way by returning WORK_DONE in work() function.
2013-01-16 20:30:37 +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 f81bf7cf12 uhd: return default subdev in get_devices 2013-01-10 20:30:38 +01:00
Dimitri Stolnikov aed2a94769 rtl: return new style label (with SN) in get_devices 2013-01-10 20:29:19 +01:00
Dimitri Stolnikov 61674dd638 file: add get_devices member which returns a default device 2013-01-10 20:28:16 +01:00
Dimitri Stolnikov 887dbb1457 rtl_tcp: add get_devices member which returns a default device 2013-01-10 20:27:56 +01:00
Dimitri Stolnikov 9bfce2694f rtl: return an appropriate tuning range when in direct sampling mode 2013-01-02 23:13:10 +01:00
Dimitri Stolnikov 6ad2043130 rtl_tcp: use gnuradio convention for indent 2013-01-02 00:29:07 +01:00
Dimitri Stolnikov 6ae9c1b4dc update tuning ranges 2013-01-01 23:03:31 +01:00
Dimitri Stolnikov 43a6afdf28 rtl_tcp: add support for tuner caps discovery 2012-12-29 17:01:33 +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 ccff99ea4f uhd: add lo_offset argument
This might be used to tune away from the noisy center region caused by
direct conversion receiver principle. The offset shall be choosen within
receiver (daughterboard) bandwidth.

Thanks to Marcus Leech & G0HWW for the original idea.
2012-11-29 22:38:52 +01:00
Dimitri Stolnikov 2193c32ae0 rtl, rtl_tcp: enable 250k rate as it has been verified for gmr and tetra 2012-11-28 22:40:28 +01:00
Dimitri Stolnikov cd638cef3e miri: don't parse buffers argument as double 2012-11-28 21:07:34 +01:00
Dimitri Stolnikov a314b43162 osmosdr: introduce buflen argument
this might be helful for rates <1MSPS
value must be multiple of 512 bytes
2012-11-28 21:06:43 +01:00
Dimitri Stolnikov 8041472ff7 rtl: introduce buflen argument
this might be helful for rates <1MSPS
value must be multiple of 512 bytes
2012-11-28 20:52:41 +01:00
Dimitri Stolnikov cf807398c8 rtl: print a user friendly message if unable to parse the argument 2012-11-04 15:08:16 +01:00
Dimitri Stolnikov 933c0e21b1 rtl: open device by given serial, fall back to index value if not found
the serial number of a rtl device can be changed using the "rtl_eeprom -
2012-11-04 14:25:00 +01:00
Steve Markgraf a13bc485ed miri: fix crackle due to garbage samples
The amount of input samples in the callback can vary
due to the nature of the isochronous transfers.

Signed-off-by: Steve Markgraf <steve@steve-m.de>
2012-10-16 18:27:56 +02:00
Steve Markgraf bd0628e1dc miri: we don't have get_sample_rates in libmirisdr
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2012-10-14 19:00:26 +02:00
Steve Markgraf 8c3786336f rtl: add offset tuning as device parameter
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2012-10-10 21:03:48 +02:00
Dimitri Stolnikov dee9d3e696 update available samplerates for rtl devices
250k didn't work for TETRA and GMR, 2M has.
2012-09-30 20:58:21 +02: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
Steve Markgraf 0f25daec61 rtl: add direct_samp as device parameter
This can be used to enable the direct sampling mode
of an rtlsdr stick, e.g.:

For input 1 (In-phase ADC):
rtl=0,direct_samp=1

For input 2 (Quadrature ADC):
rtl=0,direct_samp=2

Signed-off-by: Steve Markgraf <steve@steve-m.de>
2012-09-16 17:01:32 +02:00
Dimitri Stolnikov e3c60c4a70 rtl: print overflow marker to stderr 2012-08-08 20:45:03 +02:00
Dimitri Stolnikov bb2833250c osmosdr: print overflow marker to stderr 2012-08-08 20:42:45 +02:00
Dimitri Stolnikov a43fef00a7 rtl: wait for worker thread to complete without a timeout 2012-08-08 20:31:51 +02:00
Dimitri Stolnikov fe8984dfa5 osmosdr: wait for worker thread to complete without a timeout 2012-08-08 20:31:38 +02:00
Dimitri Stolnikov e3bea99310 rtl: check for NULL buffers 2012-08-08 20:27:27 +02:00
Dimitri Stolnikov f0b3de4d54 osmosdr: check for NULL buffers 2012-08-08 20:26:48 +02:00
Dimitri Stolnikov ff6615e08f rtl: explicitly set agc mode (off by default) 2012-08-01 22:57:11 +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 0b5f48eb07 osmosdr: automatically increase if gain when required 2012-07-08 23:56:18 +02:00
Dimitri Stolnikov f9acc7edf6 rtl: automatically increase if gain when required 2012-07-08 23:56:05 +02:00
Dimitri Stolnikov 10f0d89348 update gain names 2012-07-01 12:43:22 +02:00
Dimitri Stolnikov 604a9d79b0 use clip method provided by range class to pick gain values 2012-07-01 11:38:46 +02:00
Dimitri Stolnikov 1ea5a90b19 rtl: add sample rate 250k 2012-07-01 11:20:40 +02:00
Dimitri Stolnikov 8fc150c64d fix frequency range definition for e4k based devices 2012-07-01 11:18:29 +02:00
Dimitri Stolnikov c92822469c use endianness provided by boost 2012-06-29 21:27:22 +02:00
Dimitri Stolnikov fd83f5f33f osmosdr: include serial in label property 2012-06-09 20:03:57 +02:00
Dimitri Stolnikov 38811fb853 uhd: remove the equal character from uhd argument 2012-06-09 16:26:49 +02:00
Dimitri Stolnikov 3c3bdc15cf uhd: include type, name (if available) and serial in label property 2012-06-09 16:00:24 +02:00
Dimitri Stolnikov 8099f783c0 osmosdr: use sample rate API 2012-06-06 00:46:49 +02:00
Dimitri Stolnikov 842e48d101 osmosdr: implement setting of sample rate 2012-06-02 23:57:17 +02:00
Dimitri Stolnikov c6fa979160 osmosdr: disable IQ swapping feature 2012-06-02 23:03:55 +02:00
Dimitri Stolnikov 05700e6092 rtl, osmosdr: reorder buffer allocation to prevent memory leak
the leak would occur if the requested device could not be opened
2012-06-02 22:50:48 +02:00
Dimitri Stolnikov 237385a0c3 respect the signedness
thanks to Hoernchen <la@tfc-server.de>
2012-06-02 22:22:28 +02:00
Dimitri Stolnikov 9ec656dc05 make it play nice with windows
thanks to Hoernchen <la@tfc-server.de>
2012-06-02 21:56:17 +02:00
Dimitri Stolnikov a8625f0290 fix copy & paste errors 2012-06-02 17:02:31 +02:00
Dimitri Stolnikov 869ed6df15 print information about supported components 2012-06-02 01:19:15 +02:00
Dimitri Stolnikov 27dff71304 rtl: read out gain values via library api 2012-06-02 01:18:07 +02:00
Dimitri Stolnikov cd1db62699 osmosdr: read out gain values via library api 2012-06-02 01:16:26 +02:00
Dimitri Stolnikov 7ef9ebc7bb cleanup: make _samp_avail signed integer 2012-05-27 14:32:50 +02:00
Dimitri Stolnikov 6194958d71 rtl: clean up work function 2012-05-27 14:27:05 +02:00
Dimitri Stolnikov 674e084bdf rtl_tcp: remove unused variables 2012-05-27 14:02:50 +02:00
Dimitri Stolnikov 4b6018b68c remove OSMOSDR_API usage where appropriate 2012-05-27 13:50:58 +02:00
Dimitri Stolnikov 9a5e93cf0d osmosdr: change implementation to use libosmosdr 2012-05-26 22:24:47 +02:00
Dimitri Stolnikov e26074615b osmosdr_device: make it compile with boost 1.46.1 2012-05-20 15:30:01 +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
Steve Markgraf 7f796fe1b2 rtl_tcp_source: convert commands from host to network byteorder
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2012-05-13 23:06:09 +02:00
Dimitri Stolnikov 0e3d1995a0 rtl: skip one buffer full of garbage at the beginning 2012-05-13 20:01:50 +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
Steve Markgraf 20d4ef7e4a rtl_source_c: fix several off-by-one errors
Those summed up and caused sample loss.
Thanks to Hoernchen for helping me tracking those down.

Signed-off-by: Steve Markgraf <steve@steve-m.de>
2012-05-13 04:17:02 +02:00
Dimitri Stolnikov 52b5a8a4d3 uhd: added UHD as dependency for the gr-uhd based module
this may be required for compilation since the gnuradio trunk doesn't
provide UHD's include path via pkg-config.
2012-05-12 23:04:03 +02:00
Dimitri Stolnikov d384cf52e2 append dependency include dirs when building components 2012-05-12 12:41:55 +02:00
Dimitri Stolnikov 9b9c5bfcf4 rtl_tcp: implement frequency correction control 2012-05-07 23:02:36 +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
Dimitri Stolnikov 3a066ff258 implement virtually arbitrary gain values
internally, this will pick a certain gain value out of the valid gains
using the "smallest error" strategy.
2012-05-05 21:37:13 +02:00
Dimitri Stolnikov ba0b52868a changed logic value for automatic gain mode
sorry boys & girls!
2012-05-05 21:06:54 +02:00
Dimitri Stolnikov cf1c3ab117 pick first device if no device arguments were specified 2012-05-05 20:43:34 +02:00
Dimitri Stolnikov 0a4b9264a3 rtl_source_c: add buffers argument 2012-05-05 17:50:21 +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 34baaf3f93 rtl: add xtal arguments for rtl and tuner chips 2012-04-29 19:53:17 +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 755da481d4 osmosdr: add initial component files 2012-04-26 19:23:55 +02:00
Dimitri Stolnikov 584ddafe10 uhd: add initial component files 2012-04-26 19:20:16 +02:00
Dimitri Stolnikov 414b1b1331 fcd: add initial component files 2012-04-26 19:18:21 +02:00
Dimitri Stolnikov d5589e8e1d rtl: reimplement buffering to make it more efficient 2012-04-26 19:14:42 +02:00
Dimitri Stolnikov 514b806d0a update build system to check for component dependencies
this will only enable components if the dependencies were met.
2012-04-26 19:13:23 +02:00
Dimitri Stolnikov c954d4a410 remove unused doc template 2012-04-26 17:49:43 +02:00
Dimitri Stolnikov 619d7a5a8b cleanup interface & documentation 2012-04-11 23:37:02 +02:00
Hoernchen 43b35f0f0d proper scaling
Signed-off-by: Dimitri Stolnikov <horiz0n@gmx.net>
2012-04-09 23:00:03 +02:00
Dimitri Stolnikov e15b5cf6df change sample buffer to appear as shorts for performance reasons 2012-04-06 18:52:26 +02:00
Dimitri Stolnikov 43c59ad2b9 use well-known operators instead of fancy literary ones
this is needed for MSVC
2012-04-06 16:32:33 +02:00
Dimitri Stolnikov 313334d54a fix scaling in LUT generation 2012-04-06 15:58:12 +02:00
Dimitri Stolnikov 0efd28de6b initial commit 2012-04-06 15:29:14 +02:00