Commit Graph
100 Commits
Author SHA1 Message Date
Steve Markgraf a854ae8b48 lib: use USB zero-copy transfers if possible
Decreases CPU load especially for embedded machines.
Requires Linux >= 4.6 and libusb >= 1.0.21. If this
is not the case or the allocation fails, we will
fall back to buffers allocated in userspace.

Signed-off-by: Steve Markgraf <steve@steve-m.de>
2018-05-01 14:23:37 +02:00
Steve Markgraf d93819d29d change version to 0.6git
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2018-05-01 12:46:31 +02:00
Steve Markgraf 9ca8780df7 change version to 0.5.4
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2018-04-29 00:30:45 +02:00
Steve Markgraf c403ef0bc1 rtl_test: fix build on Mac OS
Thanks to mot for reporting.
closes #3130

Signed-off-by: Steve Markgraf <steve@steve-m.de>
2018-04-26 23:51:15 +02:00
Steve Markgraf 4520f001d8 lib: fix FC0012 reset GPIO
Since a typo in rtlsdr_set_gpio_output() was fixed,
FC0012 tuners were not detected anymore, as the reset pin
is actually 4, not 5.

Thanks to David Basden et al for reporting the bug.

Signed-off-by: Steve Markgraf <steve@steve-m.de>
2018-02-20 22:24:46 +01:00
Steve Markgraf e3e6ee23b7 lib: add new HanfTek dongle
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2016-11-27 12:19:44 +01:00
Steve Markgraf 8b4d755ba1 Merge pull request #20 from lcl7/correct-e4k_reg_write
Correct return code of e4k_reg_write().
2015-05-16 00:48:37 +02:00
Steve Markgraf 6ee5573606 rtl_tcp: make all global variables static
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2014-02-10 23:59:21 +01:00
Steve Markgraf 89f73b183f lib: change default number of transfers to 15
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.

Signed-off-by: Steve Markgraf <steve@steve-m.de>
2014-02-10 23:57:19 +01:00
Steve Markgraf 5b0137abaf lib: handle events after canceling transfers
Otherwise the new transfer status does not propagate
into the xfer->status and we try to cancel all transfers
twice.

Also replace the ifdefs with a single macro for backwards
compatibility.

Signed-off-by: Steve Markgraf <steve@steve-m.de>
2014-02-09 15:50:32 +01:00
Steve Markgraf 929beafc6e lib: only print to stderr in tuner_r82xx_set_pll()
Found by keenerd.

Signed-off-by: Steve Markgraf <steve@steve-m.de>
2014-02-08 14:48:24 +01:00
Steve Markgraf 03a40c44f5 change version to 0.5.3git
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2014-02-08 14:46:26 +01:00
Steve Markgraf df9596b2d1 change version to 0.5.3
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2014-02-07 02:04:24 +01:00
Steve Markgraf 7fc97c40ed add configuration file for Travis CI
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2014-02-05 18:07:15 +01:00
Steve Markgraf 50743b1ccb remove unused variables, type fixes
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2014-02-04 19:53:24 +01:00
Steve Markgraf 0a90c7d417 rtl_test: update copyright header
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2014-02-04 19:26:40 +01:00
Steve Markgraf f2be2f945b rtl_sdr: clean up getopt-string
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2014-02-04 19:16:11 +01:00
Steve Markgraf bf92121aff unbreak 'make distcheck' with automake
Thanks to zecke for pointing this out.

Signed-off-by: Steve Markgraf <steve@steve-m.de>
2014-01-26 13:49:39 +01:00
Steve Markgraf be8716b2c8 cflags: add -Wdeclaration-after-statement
This allows people working on the code to spot the
most common error that breaks the MSVC build

Signed-off-by: Steve Markgraf <steve@steve-m.de>
2014-01-24 17:45:55 +01:00
Steve Markgraf c25f9cbc38 rtl_tcp: fix warning
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2014-01-24 14:35:22 +01:00
Steve Markgraf 4f31e5f560 rtl_fm/rtl_test: fix build with MSVC after recent changes
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2014-01-24 14:05:47 +01:00
Steve Markgraf ad4a029405 unbreak automake build
after the latest sublib changes we got:
src/Makefile.am:31: compiling `convenience/convenience.c' in
subdir requires `AM_PROG_CC_C_O' in `configure.ac'

Signed-off-by: Steve Markgraf <steve@steve-m.de>
2014-01-24 10:58:01 +01:00
Steve Markgraf a2bc5b5117 lib/cmake: check for libusb_handle_events_timeout_completed()
libusb < 1.0.9 doesn't have libusb_handle_events_timeout_completed(),
but libusb <= 1.0.8 doesn't have version.h, so we need to check
for the function.

The cmake-code was borrowed from UHD, which also checks
for libusb_error_name(), we add that as well since it might come
handy later on.

Signed-off-by: Steve Markgraf <steve@steve-m.de>
2014-01-24 03:57:53 +01:00
Steve Markgraf 929972f835 lib: add SVEON STV27, sort device list
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2014-01-24 01:06:55 +01:00
Steve Markgraf 3409c0315f lib: speed up exiting from async handler
Now we're using libusb_handle_events_timeout_completed()
instead of the deprecated libusb_handle_events_timeout(),
and notify our async state machine when rtlsdr_cancel_async()
is called. This speeds up exiting from any program that uses the
device asynchronously.

Signed-off-by: Steve Markgraf <steve@steve-m.de>
2014-01-24 00:44:36 +01:00
Steve Markgraf 003bd51167 lib: check for validity of sample rates
Thanks to Joris van Rantwijk for finding what seems to be
a hardware limitation/bug (bit 28 of the rsamp register being
forced to the value of bit 27).

Signed-off-by: Steve Markgraf <steve@steve-m.de>
2014-01-05 22:51:44 +01:00
Steve Markgraf d683b128f9 lib: abort if submitting transfer fails, don't deadlock when cancelling fails
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2014-01-03 05:56:43 +01:00
Steve Markgraf 67302f4665 lib: add yet another Terratec OEM stick
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2013-12-26 19:33:30 +01:00
Steve Markgraf 1050b96b47 lib: add OEM versions of Terratec NOXON sticks
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2013-12-24 02:10:05 +01:00
Steve Markgraf 5f38c0519d change device name of OEM dongles
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2013-12-16 21:34:01 +01:00
Steve Markgraf 2890fe96e0 change version to 0.5.2git
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2013-12-16 21:31:08 +01:00
Steve Markgraf 2d0eaa898d change version to 0.5.2
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2013-12-12 00:26:43 +01:00
Steve Markgraf e1bf239a6d lib: add KWorld KW-UB450-T to device list
The TUA9001 tuner it uses is unsupported
at the moment, though.

Signed-off-by: Steve Markgraf <steve@steve-m.de>
2013-12-08 16:48:07 +01:00
Steve Markgraf f17818f737 rtl_test: use static instead of global var
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2013-11-21 16:33:44 +01:00
Steve Markgraf 33427f7f31 rtl_eeprom: add note regarding necessary replug of device
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2013-11-19 02:10:55 +01:00
Steve Markgraf aced2dbd0e rtl_fm/power: unbreak MinGW build
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2013-11-18 21:36:19 +01:00
Steve Markgraf 3969938eb6 cmake: detect libusb on FreeBSD
Source:
http://patch-tracker.debian.org/patch/series/view/rtl-sdr/0.5.0.4.4914-2/libusb-freebsd

Signed-off-by: Steve Markgraf <steve@steve-m.de>
2013-11-17 19:09:59 +01:00
Steve Markgraf fbfa127889 tuner_r82xx: enable multi-byte I2C transfers
This should speed some multi register reads up a bit.

Signed-off-by: Steve Markgraf <steve@steve-m.de>
2013-11-16 21:10:31 +01:00
Steve Markgraf 360dd369bd add Sveon STV21 stick to device list
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2013-11-10 01:18:42 +01:00
Steve Markgraf 1cdc3a02fd tuner_r82xx: set init_done after init
This broke r82xx_standby().

Signed-off-by: Steve Markgraf <steve@steve-m.de>
2013-11-05 20:12:25 +01:00
Steve Markgraf ae6a72c586 build: make build with automake work again
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2013-11-04 22:15:44 +01:00
Steve Markgraf 965a4ab5e9 build: don't warn on unused parameters
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2013-11-04 22:12:09 +01:00
Steve Markgraf a1e55db1fe r82xx: make new driver build with MSVC
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2013-11-04 21:56:20 +01:00
Steve Markgraf 86be727e52 lib: declare fir coefficients as constant
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2013-11-04 21:54:55 +01:00
Steve Markgraf 015c78a4ca remove e4k-specific I2C functions from library
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2013-11-04 21:53:41 +01:00
Steve Markgraf aefd8b7d58 add Astrometa DVB-T/DVB-T2 stick
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2013-11-04 21:52:31 +01:00
Steve Markgraf e61731d230 add support for R828D tuner
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2013-11-04 21:51:35 +01:00
Steve Markgraf 230930e975 use new driver for R8XX tuners
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2013-11-04 21:50:02 +01:00
Steve Markgraf fda22c6a1d change version to 0.5.1git
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2013-11-04 21:43:17 +01:00
Steve Markgraf 55694f0750 new version: 0.5.1
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2013-10-29 15:35:52 +01:00
Steve Markgraf cb8907dd4e add DigitalNow Quad DVB-T PCI-E card
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2013-10-12 15:56:20 +02:00
Steve Markgraf 8c3a99c8f7 lib: add ASUS U3100MINI_PLUS_V2 to device list
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2013-06-12 18:50:28 +02:00
Steve Markgraf 390b560e4a change version to 0.5git
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2013-06-12 18:49:38 +02:00
Steve Markgraf af1e2d29e8 bump version to 0.5.0
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2013-06-04 21:04:10 +02:00
Steve Markgraf 3e17ef2b55 lib: don't detach kernel driver by default
Since this feature also disconnects running instances
of librtlsdr that claimed the device, it is now disabled
by default and can only be enabled at compile time.

To enable it when building with cmake:
cmake . -DDETACH_KERNEL_DRIVER=ON

To enable it when building with automake:
./configure --enable-driver-detach

Signed-off-by: Steve Markgraf <steve@steve-m.de>
2013-06-04 20:57:43 +02:00
Steve Markgraf 4a068f565b rtl_test: add info message
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2013-03-06 16:47:11 +01:00
Steve Markgraf e202d0f92a lib: add WinFast DTV Dongle mini D
Thanks to Alan Beard for reporting.

Signed-off-by: Steve Markgraf <steve@steve-m.de>
2013-03-01 15:16:41 +01:00
Steve Markgraf 3c4aa46f5a lib: detach and reattach kernel driver if needed
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2013-02-26 23:11:33 +01:00
Steve Markgraf f1803fe10f lib: special handling of dongle disconnect for OS != win32
libusb reacts differently to a device loss during runtime,
and sporadic errors can happen when starting a second
instance interfacing another dongle, thus we need to wait
for all transfers to fail before assuming the dongle has
been removed.

Signed-off-by: Steve Markgraf <steve@steve-m.de>
2013-02-17 16:43:29 +01:00
Steve Markgraf b656896f66 lib: remove "e.g. hama nano" from the default device description
This caused some confusion...

Signed-off-by: Steve Markgraf <steve@steve-m.de>
2013-01-29 00:30:09 +01:00
Steve Markgraf 84f0a9084b lib: enable standby mode of e4k and r820t on exit
Since the R820T is a power hog and gets quite hot,
this makes sense, especially when being battery-
powered.

Signed-off-by: Steve Markgraf <steve@steve-m.de>
2013-01-16 01:43:45 +01:00
Steve Markgraf 7840ec21d3 lib: reset device if needed
This improves the situation on hosts with flaky host
controllers like the Raspberry Pi and the WR703N.

Signed-off-by: Steve Markgraf <steve@steve-m.de>
2013-01-04 21:26:43 +01:00
Steve Markgraf 4b057fea0f rtlsdr_set_sample_rate(): don't access dev structure before checking for NULL
Thanks to Derek Lieber for reporting this bug.

Signed-off-by: Steve Markgraf <steve@steve-m.de>
2013-01-02 20:19:19 +01:00
Steve Markgraf f2880e1de2 update authors
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2012-12-16 16:25:40 +01:00
Steve Markgraf 43c0145200 rtl_eeprom: clean up get_string_descriptor()
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2012-11-04 15:57:34 +01:00
Steve Markgraf d3c9015d26 lib: add rtlsdr_get_index_by_serial()
This allows to open a device by a name (serial number string)
that has been programmed with rtl_eeprom -s.

Signed-off-by: Steve Markgraf <steve@steve-m.de>
2012-11-04 13:57:56 +01:00
Steve Markgraf cc35aa64be rtl_eeprom, rtl_test: remove unused variables and labels
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2012-11-04 13:53:11 +01:00
Steve Markgraf fdc9dcbc6b rtl_eeprom: add other configurations to choose from
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2012-11-03 17:29:59 +01:00
Steve Markgraf b85ffcfea5 add library support for EEPROM access and tool for modification
rtl_eeprom can be used to modify the USB descriptor
strings etc.

Signed-off-by: Steve Markgraf <steve@steve-m.de>
2012-11-02 21:47:14 +01:00
Steve Markgraf aad68f3a21 tuner_fc0013: disable loopthrough output
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2012-10-28 22:24:37 +01:00
Steve Markgraf ac05f9084c make sure offset tuning works with gr-osmosdr
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2012-10-28 15:42:39 +01:00
Steve Markgraf c179f860d5 tuner_r820t: check if Nint is within allowed range
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2012-10-26 19:22:52 +02:00
Steve Markgraf 105e77c5d9 add vid/pid of PixelView PV-DT235U(RN)
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2012-10-26 19:18:22 +02:00
Steve Markgraf ed449bc04d add PID of MSI DigiVox Micro HD
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2012-10-21 17:22:39 +02:00
Steve Markgraf cf66e3aa8b rtl_sdr: add -n parameter (only read n samples)
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2012-10-20 19:43:13 +02:00
Steve Markgraf 25789493c6 tuner_r820t: add manual RF gain setting
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2012-10-19 01:17:28 +02:00
Steve Markgraf 7ff4abd378 rtl_tcp: allow to set xtal frequencies
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2012-10-14 20:39:09 +02:00
Steve Markgraf c5d47b7f04 e4000_init(): use corrected xtal frequency
Otherwise the tuner would use the uncorrected xtal value
after enabling and disabling the direct sampling mode

Signed-off-by: Steve Markgraf <steve@steve-m.de>
2012-10-08 23:28:13 +02:00
Steve Markgraf 9b8b0e53f6 add getters for direct sampling and offset tuning mode
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2012-10-07 17:43:32 +02:00
Steve Markgraf 22549e0da0 rtlsdr_set_direct_sampling(): fix issue when switching between inputs
Switching back from input 2 to 1 didn't work.

Signed-off-by: Steve Markgraf <steve@steve-m.de>
2012-10-07 16:24:18 +02:00
Steve Markgraf d64c969bd6 tuner_r820t: improve tuning accuracy, allow freq correction
We now use Hz instead of KHz for calculating the PLL
parameters, and use the actual crystal frequency in Hz,
which allows to correct the frequency error in ppm.

Signed-off-by: Steve Markgraf <steve@steve-m.de>
2012-10-07 02:32:14 +02:00
Steve Markgraf 4c58bf8b1a rtl_tcp: make more functions of librtlsdr accessible via tcp
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2012-10-06 19:47:36 +02:00
Steve Markgraf b70c7d99f1 add function for offset tuning with zero-IF tuners
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2012-10-06 19:43:25 +02:00
Steve Markgraf 1e67d2a9a3 rtlsdr_demod_write_reg(): return 0 on success
Thanks to DreamNik for reporting this issue.

Signed-off-by: Steve Markgraf <steve@steve-m.de>
2012-10-04 19:54:19 +02:00
Steve Markgraf 28ea914422 add new product ID
thanks to Andrew Harrison for reporting it.

Signed-off-by: Steve Markgraf <steve@steve-m.de>
2012-10-04 19:53:00 +02:00
Steve Markgraf 18687916d6 tuner_fc001x: fix tuning for frequencies < 45 MHz
This allows tuning to 27 MHz for example (civil band).
Best results are achieved when setting the gain to
very low values.

Signed-off-by: Steve Markgraf <steve@steve-m.de>
2012-10-03 17:19:29 +02:00
Steve Markgraf b4e48d9555 rtlsdr_init_baseband: initialize possibly uninitialized registers
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2012-10-01 02:13:25 +02:00
Steve Markgraf a48f48e3b1 correct sample frequency with ppm offset
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2012-10-01 01:55:46 +02:00
Steve Markgraf 35263d0df3 rtlsdr_set_direct_sampling: reset IF freq to 0 on zero-IF tuners
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2012-09-20 23:44:49 +02:00
Steve Markgraf 143b103061 tuner_fc0013: fix and improve manual LNA gain
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2012-09-20 00:47:11 +02:00
Steve Markgraf 15b9e7ef02 tuner_fc0013: setting GPIO not needed for filter selection
The driver selects the VHF/UHF filter via I2C.

Signed-off-by: Steve Markgraf <steve@steve-m.de>
2012-09-19 06:06:09 +02:00
Steve Markgraf a943a2ed25 tuner_fc001x: check if PLL values are within boundaries
This fixes the issue of the FC0013 locking up at frequencies
between 928.0 and 950.0 MHz, which happened because
the numerator of the fraction exceeded its 5 bit limit.
For the tuner to behave normally again, the dongle needed
to be replugged.

For the FC0013 this now results in a small gap between
948.6 MHz and 950.0 MHz, where no valid PLL values
are existant.

For the FC0012 tuning is aborted when the maximum
frequency has been reached (948.6 MHz).

Signed-off-by: Steve Markgraf <steve@steve-m.de>
2012-09-19 03:15:43 +02:00
Steve Markgraf 01d8d308fc disable second ADC in IF mode, make input selectable in DS-mode
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2012-09-16 16:24:58 +02:00
Steve Markgraf 519406264c make rtlsdr_close() build on win32 again
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2012-09-13 23:27:35 +02:00
Steve Markgraf fc5881d4cd add support for direct sampling mode
This commit adds the function rtlsdr_set_direct_sampling()
which can be used to enable/disable a mode where the
RTL2832 acts as a direct sampling receiver.

This mode disables the tuner, and by attaching a long
wire, or better, a 50Ω to 200Ω transformer and a lowpass-
filter to the In-phase ADC input (pin 1 or 2 of the RTL2832,
whereas pin 1 is at the molded dot) it is possible to listen to
shortwave radio stations. The coupling capacitors can be
left in place, but for better results they should be removed.

Tuning in this mode is done with the DDC, and since the
ADC samples with 28.8 MHz, tuning is possible from 0 to
28.8 MHz.

Signed-off-by: Steve Markgraf <steve@steve-m.de>
2012-09-13 21:53:51 +02:00
Steve Markgraf 0c3c356d19 tuner_r820t: don't perform IMR calibration on init
This takes simply too much time (almost 3 seconds)
and doesn't really seem to make any difference for our
use case.

Signed-off-by: Steve Markgraf <steve@steve-m.de>
2012-09-09 17:45:00 +02:00
Steve Markgraf 9f3f44e03b autotools: add missing header
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2012-09-08 21:42:58 +02:00
Steve Markgraf 5a26bd51e7 add initial support for the R820T tuner
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2012-09-08 02:37:30 +02:00
Steve Markgraf 5f88049c0c rtlsdr_i2c_rad_reg: fix uninitialized variable
This could lead to a misdetection of the tuner on some
platforms (E4K instead of FC0013 on the raspberry pi).

Thanks to Christoph Gommel for reporting this issue.

Signed-off-by: Steve Markgraf <steve@steve-m.de>
2012-08-10 02:11:40 +02:00
Steve Markgraf 4e2a0ea0c4 tuner_e4k: update license in header
Changing the license of the header as well,
which had been forgotten in commit
6aec27c6d0
- "tuner_e4k: relicense driver under GPLv2+"

Signed-off-by: Steve Markgraf <steve@steve-m.de>
2012-07-30 23:29:41 +02:00