AgeCommit message (Collapse)AuthorFilesLines
2017-02-02soapy: support step size in gain rangesJosh Blum5-14/+92
* This change is backwards compatible and checks for API support for step size. * Created soapy_common.cc/h to house common gain range functions * Moved factory mutex declaration to common source files as well
2017-02-02soapy: added device::find() supportJosh Blum1-0/+8
Was missing from the implementation. Now devices with a label show up nicely in GQRX
2016-06-22soapy: support newer getBandwidthRange() API callJosh Blum2-0/+16
Switch to the newer API call which can provide a list of ranges. There are feature detection ifdefs provided by the library so that code will always correctly compile.
2016-06-07soapy: provide default gain range stepJosh Blum2-4/+4
The soapysdr range type does not provide a step size, however apps like the osmocom siggen use this size for a slider, and a value of zero will cause a divide by zero error. Although many ranges are not actually linear, the idea to provide some default step to avoid crashes. A future addition to the API may include providing a step.
2016-06-07soapy: support automatic bandwidth paramJosh Blum2-2/+8
When the special 0.0 bandwidth setting is used, set the filter bandwidth to rate * 0.75. Passing automatic 0.0 bandwidth for some devices was problematic.
2016-02-28airspy: Option pack={0,1} to enable USB bit packingDimitri Stolnikov1-0/+10
Patch provided by Martin Smith. Last July there were several changes made to the Airspy firmware and libairspy that added support for a new bit packing mode where 4 sets of 12 bit samples are packed into 3 sets of 16 bits for the transfer across the USB bus ( https://i.imgur.com/qXnWoEK.png?1 ). 25% less data is transferred across the bus and this is good for some computers with cheap USB chipsets. There is an overhead of extra memory bandwidth required on the host side to unpack the data into a useful format, so for optimal performance bit packing is disabled by default. The data is automatically unpacked within libairspy before being passed along, so no changes are required anywhere else if packing is enabled (or not enabled). Airspy firmware older than v1.0.0-rc6 does not have the function, but that is detected and handled by libairspy. I wrote the attached patch to enable packing in gr-osmosdr, which I tested and it works. It is basically a clone of the bias=0|1 lines as pack=0|1 and calls the needed libairspy function. ref: https://github.com/airspy/firmware/commit/7e1806b https://github.com/airspy/firmware/commit/5b7dcab https://github.com/airspy/host/commit/a51eccb --- Do some Baseline test with Airspy command line tools to have something to compare USB throughput results -------------------------------------------------------------------------------------------------------- $ sudo mount -t debugfs none /sys/kernel/debug $ sudo modprobe usbmon $ wireshark -i usbmod3 & $ airspy_info ; sleep 120 ; \ airspy_rx -t 4 -r /dev/null -n 2400000000 ; sleep 120 ; \ airspy_rx -t 4 -r /dev/null -p 1 -n 2400000000 ; sleep 120 ; \ airspy_info Wireshark->Statistics->IO Graph The Bytes/Tick are double the actual data rate because of way wireshark collects the USB packets, I could have added a filter to fix this. But the relationship is valid 25% less with packing enabled. The data rate in the IO Grahp drops from 80MB/sec (in+out) [really 40MB/sec] to 60MB/second (in+out) [really 30MB/sec] from unpacked to packed. 10MSPS no packing, packing https://i.imgur.com/pA9LPdE.png?1 2.5MSPS no packing, packing https://i.imgur.com/lA8q5aq.png?1 Verification test with my patched gr-osmosdr -------------------------------------------- $ sudo mount -t debugfs none /sys/kernel/debug $ sudo modprobe usbmon $ wireshark -i usbmod3 & $ osmocom_fft -a "airspy=0" -s 10000000 --fft-rate=1 $ osmocom_fft -a "airspy=0,pack=1" -s 10000000 --fft-rate=1 $ osmocom_fft -a "airspy=0" -s 2500000 --fft-rate=1 $ osmocom_fft -a "airspy=0,pack=1" -s 2500000 --fft-rate=1 $ osmocom_fft -a "airspy=0" -s 2500000 --fft-rate=1 $ osmocom_fft -a "airspy=0,pack=0" -s 2500000 --fft-rate=1 I ran all of the above tests and the wireshark USB throughput graphs showed exactly what was expected. 40MB/sec(10MSPS+normal),30MB/sec(10MSPS+packing),10MB/sec(2.5MSPS +normal),7.5MB/sec(2.5MSPS+packing),10MB/sec(2.5MSPS+normal),10MB/ sec(2.5MSPS+normal). 25% less when packing was enabled and if you did not specify the "pack=1", then no bit packing is performed by libairspy. All the magnitudes within the FFT windows looked exactly the same as they do without bit packing.
2016-02-28apps: implement --peak-hold option for fftDimitri Stolnikov1-0/+3
2016-02-28apps: added --clock-source option to fft and siggenDimitri Stolnikov2-0/+12
2016-02-28bladerf: implement options for clock configurationDimitri Stolnikov8-2/+129
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 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 tamer={internal,external_1pps,external} The described method requires https://github.com/Nuand/bladeRF/releases/ tag/2016.01-rc1 Carefully *read the instructions for external reference locking* (especially max allowed voltage levels) on Nuand's blog https:// www.nuand.com/blog/2016-01-rc1-release/
2016-02-28allow both 3.7.* and git version of GnuRadioJiří Pinkava1-1/+6
2016-01-10do not check for NULL before calling freeJiří Pinkava6-21/+10
2016-01-10airspy: implement sensitivity and linerity gain profiles for set_gain()Dimitri Stolnikov2-32/+71
use them with airspy,linearity (the default) or airspy,sensitivity device arguments. Range is 0 to 21. Named gains still work as before. Requires libairspy commit dc5cbca2f6f03458c40eab7c0f88fdfed60a08ff
2016-01-10cmake: update component name & update AUTHORS fileDimitri Stolnikov2-1/+2
2016-01-10grc: update grc generatorDimitri Stolnikov1-1/+8
2016-01-10add Red Pitaya discovery in device find functionDimitri Stolnikov1-0/+9
2016-01-10cmake: If we are cross compiling, we shouldn't make decisions based onDimitri Stolnikov1-3/+3
the build system distribution. Signed-off-by: Philip Balister <philip@balister.org>
2016-01-10made siggen cooperate with sinks without bw rangeMarcus Müller2-20/+47
2016-01-10added file_sink_cMarcus Müller4-6/+328
2016-01-10redpitaya: fix compilation errors on MS Windows and on Mac OS XPavel Demin6-57/+56
2015-12-21redpitaya: change base class to gr::sync_blockPavel Demin5-37/+87
2015-12-18update documentationDimitri Stolnikov3-4/+9
2015-12-18redpitaya: add support for Red Pitaya SDR transceiverPavel Demin12-0/+892
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=" Signed-off-by: Pavel Demin <pavel.demin@uclouvain.be>
2015-12-10rfspace: Add basic Cloud-IQ support.Alexandru Csete3-6/+47
Cloud-IQ uses essentially the NetSDR protocol with different sample rates and product ID.
2015-12-07hackrf: change hackrf i/o from default char to explicit int8_tDimitri Stolnikov3-13/+13
original patch provided via github by Dirk Grunwald
2015-12-07hackrf: since devicecount is signed, make comparisons signed as wellDimitri Stolnikov2-5/+5
2015-12-07Merge remote-tracking branch 'origin/soapy_support'Dimitri Stolnikov1-0/+1
2015-12-06provide NAN define for MSVC older than VC12Josh Blum1-0/+6
This fixes a minor compile issue on VC11 and below where source_impl.cc and sink_impl.cc use the float NAN define. The patch simply defines the NAN macro conditionally, in a common header (which seemed like the best place).
2015-12-06rtl_tcp: fix ssize_t definition for MSVCJosh Blum1-1/+4
This was actually causing a cryptic compile error because of the define. The fix was to typedef ssize_t as ptrdiff_t, the same as bladerf_common.h
2015-12-06soapy: do not throw when IQ bal mode is set to offJosh Blum1-0/+1
The automatic IQ balance mode is not supported, but we should not throw when it is set to disabled. Setting to disabled is techinically allowable, and currently throwing is disruptive for users.
2015-07-17bladeRF: Support opening via a (subset of a) serial number, using any backendJon Szymaniak1-14/+60
The bladerf=X,[arguments] string now supports the following, where X is: - The "device instance" which represents the Nth bladeRF connected. This is 0-indexed, in the order displayed by `bladeRF-cli --probe`. - The device's serial number. For libbladeRF >= 1.4.1, a subset of the serial number is supported. The subset must be at least the first three characters of the serial number. The backend specifier has been changed from "libusb" to the wildcard ("*"), allowing any available backend to be used.
2015-07-17bladeRF: Added SOB/EOB stream tag handling support to bladerf_sinkJon Szymaniak5-6/+179
When running with metadata mode enabled, the bladerf_sink supports 'tx_sob' and 'tx_eob' stream tags. Anything not in the burst will be dropped, and a warning will be printed. Use of the bladeRF metadata can be enabled via a 'enable_metadata' device argument. If running full-duplex, this must be provided to both the source and the sink. This does not currently any additional features to the sink.
2015-07-16bug fixesUtomnia1-4/+15
2015-06-06cmake: move check for hackrf_device_list to hackrf subdirectoryDimitri Stolnikov2-9/+9
2015-06-01hackrf: use #ifdef just like in hackrf_sink_cDimitri Stolnikov1-1/+1
2015-06-01Pass LIBHACKRF_HAVE_DEVICE_LIST to a #defineHeikki Hannikainen1-0/+1
Signed-off-by: Heikki Hannikainen <hessu@hes.iki.fi>
2015-06-01hackrf: Add cmake magic to figure out if multiple devices support is ↵Heikki Hannikainen3-2/+15
available in libhackrf, so that backwards compatibility with old libhackrf is maintained. Signed-off-by: Heikki Hannikainen <hessu@hes.iki.fi>
2015-06-01hackrf_source: adjust error messageHeikki Hannikainen1-1/+1
Signed-off-by: Heikki Hannikainen <hessu@hes.iki.fi>
2015-06-01hackrf_source: Support selecting device with index number (hackrf=0)Heikki Hannikainen1-7/+28
Signed-off-by: Heikki Hannikainen <hessu@hes.iki.fi>
2015-06-01hackrf_sink_c: device enumerationHeikki Hannikainen1-15/+28
Signed-off-by: Heikki Hannikainen <hessu@hes.iki.fi>
2015-06-01hackrf device enumeration: Use only 6 characters of serial (should be unique ↵Heikki Hannikainen1-5/+6
per user?) and append it in device name Signed-off-by: Heikki Hannikainen <hessu@hes.iki.fi>
2015-06-01hackrf_source: Truncate serial numbers to 16 chars when enumerating, parse ↵Heikki Hannikainen1-5/+8
USB board IDs correctly Signed-off-by: Heikki Hannikainen <hessu@hes.iki.fi>
2015-06-01hackrf_source: attempt device enumeration with hackrf_device_listHeikki Hannikainen1-15/+24
Signed-off-by: Heikki Hannikainen <hessu@hes.iki.fi>
2015-06-01hackrf_sink: support hackrf_open_by_serialHeikki Hannikainen1-1/+8
Signed-off-by: Heikki Hannikainen <hessu@hes.iki.fi>
2015-06-01style update to match surroundingsHeikki Hannikainen1-2/+2
Signed-off-by: Heikki Hannikainen <hessu@hes.iki.fi>
2015-06-01Require hackrf argument to have a non-zero-length value to trigger serial ↵Heikki Hannikainen1-1/+1
number search Signed-off-by: Heikki Hannikainen <hessu@hes.iki.fi>
2015-06-01hackrf: support for hackrf_open_by_serial in hackrf sourceHeikki Hannikainen1-1/+8
Signed-off-by: Heikki Hannikainen <hessu@hes.iki.fi>
2015-05-27Fix config error with CMake version 2.8.7Marcus Müller1-1/+1
Replace find_package(SoapySDR CONFIG) with find_package(SoapySDR NO_MODULE), which has an identical effect but is supported by CMake 2.8.7 on Ubuntu 12.10
2015-05-27hackrf: introduce bias=0|1 and bias_tx=0|1 parametersDimitri Stolnikov3-1/+37
... 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-14updated MANIFEST.mdDimitri Stolnikov1-2/+2
2015-05-14add MANIFST.md for cgran.orgDimitri Stolnikov1-0/+33