aboutsummaryrefslogtreecommitdiffstats
path: root/lib
AgeCommit message (Collapse)AuthorFilesLines
2014-03-10file: expose seek function in public APIDimitri Stolnikov5-7/+36
2014-03-10rtl: implement methods allowing runtime to control sampling processDimitri Stolnikov2-6/+30
2014-03-10bladerf: Fixed bug in cached device cleanupJon Szymaniak1-4/+10
A couple issues were present in bladerf_common::close, which caused entries in the _devs list (our "device cache") to not be removed. This would result in a stale device handle being used upon attempting to reopen the device. Two issues were associated with this bug: - The weak_ptr expired() conditional was incorrect; the logic was inverted. - The list item removal and iterator increment was done incorrectly and would result in a crash after the first item was fixed.
2014-03-10bladerf: Updated source/sink to use libbladeRF's sync interfaceBrian Padalino6-455/+139
2014-03-10source/sink: don't return void in void functionsDimitri Stolnikov2-4/+4
2014-02-20hackrf: signed samples, following commit fd77cfe8a6Hoernchen3-20/+18
2014-02-16bladeRF: RXVGA2 range is [0, 30]Jon Szymaniak1-1/+1
While the RXVGA2 gain can technically go up to 60 dB, the LMS6002D datasheet recommends it be clamped to 30dB. libbladeRF clamps to a max of 30dB, so there's no use in setting max to 60 dB here.
2014-02-16bladerf: Added 'verbosity' and 'loopback' device parametersJon Szymaniak2-0/+67
The 'verbosity' parameter may be used to increase or suppress output from libbladeRF. The available log levels are, in order of decreasing verbosity are: verbose, debug, info, warning, critical, silent The 'loopback' parameter may be used to put the bladeRF into one of the supported loopback modes. The valid modes are listed below. Their descriptions may be found in the libbladeRF documentation: bb_txlpf_rxvga2, bb_txlpf_rxlpf bb_txvga1_rxvga2, bb_txvga1_rxlpf rf_lna1, rf_lna2, rf_lna3
2014-02-11osmosdr/rtl/miri/hackrf: use 15 buffers by defaultDimitri Stolnikov5-8/+8
folowing rtl-sdr commit 89f73b183f2dac9c0dd75beca4cf2f77f20c4a36 So far we had 32 * 256KB which was a bit overkill, 15 are more than enough. 15 was chosen instead of 16 because at least on Linux there seems to be a system-wide limit of 63 transfers (when they are 256KB large), so 4 dongles can be used on a single machine without lowering the default transfer number.
2014-02-09airspy: add support for AirSpy wideband receiverDimitri Stolnikov7-1/+827
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-01-26rfspace: properly cover the absense of a serial numberDimitri Stolnikov1-1/+3
2014-01-18bladeRF: Modifying correction calls.Brian Padalino4-60/+42
Modifying correction function calls to match libbladeRF API.
2014-01-13bladerf: Removed sign extension and masking of samplesJon Szymaniak1-10/+17
This is no longer required as of FPGA v0.0.1, and has been removed to remove some unnecessary computation on samples.
2014-01-13bladerf: Updates for libbladeRF v0.11.0 API changesJon Szymaniak3-11/+23
2014-01-13bladerf: Use rational sample rate functionsJon Szymaniak4-69/+48
libbladeRF provides accessors for rational sample rates, which the integer sample rate functions use under the hood. Therefore, there's no need to check if the requested rate contains a fractional portion and switch between the two sets of functions.
2014-01-13bladerf: Added start()/stop() implementationsJon Szymaniak4-73/+109
2014-01-11bladerf: shorten the serial number that is being shown to the userDimitri Stolnikov1-1/+11
2014-01-11bladerf: implement DC offset and IQ imbalance correctionDimitri Stolnikov4-13/+99
This patch has been provided by Brent J.
2013-12-28bladerf: prepare functions to control DC offset / IQ balance (WIP)Dimitri Stolnikov2-0/+45
2013-12-27rfspace: add missing header for basename()Dimitri Stolnikov1-0/+1
2013-12-22rfspace: add support for RFSPACE SDR-IQ and SDR-IPDimitri Stolnikov8-1132/+1744
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.
2013-12-10device: implement "nofake" hint to exclude dummy devices from discoveryDimitri Stolnikov5-14/+25
usage example: osmosdr::device_t hint( "nofake" ); osmosdr::devices_t devs = osmosdr::device::find( hint );
2013-12-05file: add missing include for boost::formatDimitri Stolnikov1-0/+1
2013-12-05rtl/rtl_tcp: add 2.56e6 as 'good' sample rateSteve Markgraf2-0/+2
Several tests have shown that this is the highest sample rate where no samples are being dropped on rtl devices. Signed-off-by: Steve Markgraf <steve@steve-m.de>
2013-11-06sink/source: fix error message when unable to connect blocks internallyDimitri Stolnikov2-4/+8
2013-11-05netsdr: implement sample rate change in run modeDimitri Stolnikov2-17/+35
2013-11-04rtl: add R828D tunerSteve Markgraf3-1/+8
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2013-11-01netsdr: replace boost asio sockets with native bsd socketsDimitri Stolnikov2-17/+223
until we find out what's exactly interfering with fosphor when using python based flowgraphs (osmocom_fft). c++ flowgraphs are not affected.
2013-10-30bladerf: Don't reload the FPGA unless the force-reload param is setJon Szymaniak1-8/+17
2013-10-30bladerf: Moved initializations to bladerf_common.c, misc. cleanupJon Szymaniak5-256/+216
Common parameter handling has been moved into bladerf_common::init(). The buflen parameter is now in units of samples, not bytes. This deviates from the other gr-osmosdr items. However, with the requirement that buffers be in multiples of 1024 samples, this makes specifying this parameter a bit easier. The user shouldn't need to know we're operating on SC16Q12 values under the hood, and have to calculate accordingly. To avoid confusion when both a bladeRF source and sink are in a flow graph a [bladeRF source/sink] prefix has been added to output. Error number have been replaced with bladeRF string representations of these error values. Firmware flashing has been removed. The bladeRF-cli or bladeRF-flash tools are the preferred route for firmware upgrades.
2013-10-30bladerf: Moved no longer "common" items out of bladerf_commonJon Szymaniak6-61/+57
The gr_complex FIFO is no longer used on the TX side, so it doesn't really make sense to have it in bladerf_common. The associated items have been moved into bladerf_source, and some renaming has been done in bladerf_sink to tidy up. Pending further performance tests of the bladerf_source, the _fifo member (boost::circular_buffer) may need to be replaced.
2013-10-29bladerf: Added device caching, this enables full-duplex operation.Daniel Gröber5-58/+127
2013-10-26netsdr: add support for RFSPACE NetSDR receiverDimitri Stolnikov7-0/+1090
- 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-25use numchan instead of nchan to prevent ambiguity...Dimitri Stolnikov1-2/+2
..when specifying total number of channels offered by the block
2013-10-25hackrf: implement device discoveryDimitri Stolnikov2-6/+93
Unfortunately libhackrf still doesn't offer a way to enumerate devices *or* to open a specific device by index or it's serial number. Thus we have implemented a rather hack-ish way to detect the presence of a device by trying to open it and closing right after that.
2013-10-25uhd: improve device discoveryDimitri Stolnikov2-24/+26
2013-10-25remove unused variablesDimitri Stolnikov2-3/+2
2013-10-20file: allow changing the sample rate when throttle=trueDimitri Stolnikov2-8/+24
this is dangerous from signal processing perspective and should be used with caution.
2013-10-04bladerf: use newstyle version gettersDimitri Stolnikov2-10/+10
2013-10-03bladerf: make source less picky wrt rf gainDimitri Stolnikov1-10/+7
2013-10-03source/sink: initialize sample rate cache variableDimitri Stolnikov4-2/+6
Thanks to Jiří Pinkava for bringing this up.
2013-10-03source/sink: fix automatic bandwidth selectionDimitri Stolnikov2-2/+2
2013-09-28rtl: don't try to parse empty device index valuesDimitri Stolnikov1-6/+10
2013-09-28updated header documentation for bandwidth setterDimitri Stolnikov2-2/+2
2013-09-28bladerf: implement automatic bandwidth selectionDimitri Stolnikov2-0/+6
2013-09-28hackrf: enable AMP gain stage by defaultDimitri Stolnikov2-2/+2
2013-09-28hackrf: don't set automatic bandwidth on samplerate changeDimitri Stolnikov2-8/+10
automatic bandwidth selection may be triggered by calling set_bandwidth(0) after changing the sample rate
2013-09-28bladeRF: Refactored buffering scheme in sinkJon Szymaniak2-71/+160
Removed the use of an intermediate sample FIFO in the sink implementation. Note the the FIFO has not been moved out of bladerf_common --> bladerf_source_c in this commit. work() now handles converting samples from complex to SC16_Q12, and filling "transmit-ready" buffers. The callbacks are now only responsible for marking the provided buffer free, and returning the next buffer. It appears that a small deadlock issues remains in this changest, which can be induced by: 1: Using a small sample rate (160Khz) 2: Switching back and forth between sinusoid <-> GSM burst In this case, it appears that work() is blocked waiting for a buffer to become free. More investigation here is required...
2013-09-28bladerf: migration to async api (WIP)Dimitri Stolnikov6-294/+345
receive works, transmit locks up in work() after few seconds
2013-08-29Support setting external sampling to bladerfFrederik M.J. Vestre1-0/+20