aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2018-06-17Fix compilation with boost-1.67Maxime Vincent1-0/+2
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2017-06-12Merge branch 'master' of git.osmocom.org:gr-osmosdrDimitri Stolnikov2-4/+54
2017-06-11freesrp: whitespace fixesDimitri Stolnikov1-133/+133
2017-06-11FreeSRP: Add support for multiple devices in get_devicesLukas Lao Beyer1-9/+9
2017-06-11rtl,rtl_tcp: add bias=0|1 parameter to switch off|on bias voltage onDimitri Stolnikov3-4/+21
gpio0
2017-06-11rtl_tcp: delete LUT table in destructorDimitri Stolnikov1-0/+1
2017-06-11RTL-TCP: Convert to single class modelKrzysztof Halasa3-76/+309
The existing RTL TCP driver is quite different from its brother RTL_SDR. It's much more complicated, uses gr::blocks::deinterleave and gr::blocks::float_to_complex, and generally doesn't work correctly (e.g. https://github.com/csete/gqrx/issues/99 Spectrum is mirrored when filter or demodulator changes (rtl_tcp) #99) I've converted the RTL TCP driver to the model used by RTL_SDR, simplifying it in the process, and fixing the GQRX issue.
2017-06-11RTL-SDR: convert _lut to float[] to reduce size by a factor of 256Krzysztof Halasa2-15/+8
The _lut is being indexed by I + Q (16 bits = 65536 entries), however both samples can be processed independently, resulting in 8-bit LUT. Saves a bit of RAM and CPU cache.
2017-04-21soapy - correct constant for frequency correctionsoapy_supportJosh Blum2-4/+4
This is a typo, some modules use the "CORR" string in the setFrequency(dir, chan, name, value) API to perform fine frequency adjustments. Updated modules will use setFrequencyCorrection(), this is support for backwards compatible implementations.
2017-04-18soapy: support set/getFrequencyCorrection() APIJosh Blum2-0/+16
backwards compatible changes with #ifdef set/get_freq_corr() call directly into the SoapySDR equivalent when supported by the API version.
2017-04-18soapy: support newer getSampleRateRange() API callJosh Blum2-0/+14
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.
2017-04-18soapy - check for freq corr before invokingJosh Blum2-4/+24
set_freq_corr() is often a NOP for devices. checking avoids crashes for some applications (ex GQRX)
2017-04-18Add support for FreeSRPLukas Lao Beyer21-0/+2716
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"
2017-02-27bladerf: discover and use VolkDimitri Stolnikov2-1/+3
2017-02-27bladeRF: Use VOLK for type conversionSylvain Munaut2-19/+7
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2017-02-27rfspace: use boost::chrono for sleepingDimitri Stolnikov1-1/+3
2017-02-27hackrf: correct gcc6 warningsDimitri Stolnikov2-20/+34
2017-02-27airspy: correct gcc6 warningsDimitri Stolnikov1-7/+18
2017-02-27rtl, rtl_tcp: Use std::abs.Alexandru Csete2-2/+2
Fixes compile error on Mac OS X.
2017-02-27Custom FIR kernels for Airspy.Alexandru Csete2-1/+149
2017-02-27rfspace: Send periodic keep-alive packets.Alexandru Csete2-0/+37
This patch enables sending keep-alive packets at 1 minute interval to RFSpace networked radios. Without this the TCP connection to the radio is closed after about 5 minutes (by the OS?).
2017-02-27rfspace: Wait 10 ms before sending queries to device.Alexandru Csete1-0/+1
This is necessary to esatablish a working connection to the RFSpace CloudIQ. Without this delay the radio will not be ready and we never receive any response to the queries and the radio will close the connection after 5 seconds.
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=192.168.1.100:1001" 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