This page details information specific to RTL2832U-based DVB-T USB dongles.
- I have created a new discussion forum on Google Groups as a place to discuss this code.
RTL2832U-based USB DVB-T adapters (non-exhaustive list, see here for how to install device driver on Windows).
The following are the names of some common devices, but others not listed here will work if their USB ID is the same:
- Hama nano
- Terratec Noxon 1 & 2
- Dexatek 1 (also Logilink/MSI)
- Dexatek 2 (also ZAAPA HD)
- Dexatek 3
- Ardata MyVision/Gigabyte GT-U7300
- Terratec Cinergy T 1
- DIKOM HD
- Genius TVGo 2
You can double-check the full list by inspecting the main librtl2832++ source file.
You can also contact me with information (name/VID/PID/tuner type) regarding other devices that are not recognised automatically.
If your device is NOT recognised (missing from device table):
- Linux: type in the VID/PID into the GRC block
- Windows: add vid=0x#### pid=0x#### to device hint
- Code: use the simple API to set these 'USB device override values'
- Source: add one line to the device list in 'rtl2832.cc'
- Tuners are probed automatically now!
- Elonics E4000 (original: e4000, improved: e4k)
- Fitipower FC0013 (fc0013)
- Fitipower FC0012 (fc0012)
- Fitipower FC2580 (fc2580)
You can override the tuner too, if you wish:
- Linux: select the appropriate tuner from the list in the GRC block properties
- Windows: add tuner=e4k/e4000/fc0012/fc0013/fc2580 to the device hint
The library compiles:
You can freely take the rtl2832-* files from the gr-baz lib directory and re-use them in any other project where you need to control an RTL2832U-based device!
|ADC Resolution||8 bits|
|Dynamic range|| (Not that great - theoretically 48 dB?, but still enough for many applications.)
This can be improved by:
|Minimum sample rate||> 900 ksps (must be greater!)|
|Maximum sample rate||3.2 Msps|
|Nominal sample rate||1 Msps (much higher leads to subtle signal degradation)|
|Clock||28.8 MHz internal oscillator (expect large drift and phase noise)|
|Spectrum flatness||(Definitely not flat at centre, worse with low gain)|
|AGC|| Disabled for E4000, but still active somewhere (in RTL2832 demod chip itself?)
You can test this by tuning a strong carrier to be near/on the centre frequency.
If you know about this, please tell me.
|Sensitivity||TBD (decent all things considered)|
|Quality||Don't expect anything remotely close to a USRP.|
|Price||For ~$20 you'd be crazy not to try it!|
E4000 DC offset loop
- Disabled E4000 DC offset loop to avoid period 'jumps' in time-domain signal: I have disabled the DC offset loop in the E4000 tuner as I was seeing additional crud on the right of the centre frequency. In the time-domain, you can see it as a period jump in the incoming signal. I'll add an option to re-enable it so you can experiment (or you can modify the E4000 init function and un-comment the function call).
- These are avoided with the E4000 tuner by using the OsmoSDR e4k tuner code, instead of the original e4000 code.
- This can be done by using the tuner=e4k Device Hint in the ExtIO Device Hint on Windows, or, for GRC/GNU Radio, changing to the E4000 (OsmoSDR) item in the Tuners drop-down list in a RTL2832 Source (rtl_source_c) block's properties.
- I2C errors when tuning rapidly: personally I haven't had this problem, except when using a GRC flowgraph where the down-stream sample rates are mismatched. However, other people have reported this in normal use. Therefore this issue is as yet unresolved, as perhaps because the device wasn't designed to be rapidly re-tuned. One option is rate-limiting tune requests and/or investigating async control transfers in libusb.
- Should no longer occur with e4k tuner code (see above).
- I2C failure when tuning certain frequencies on E4000: For example, on both Windows and Linux if you tune to 90 MHz, then 89 MHz then back to 90 Mhz, you will see:
_I2CWriteByte: the control request was not supported by the device [-9] @ int PLL(rtl2832::tuner*, int, int):1749 "I2CReadByte(pTuner, 200, 5, writearray)"
- If you inspect the referenced E4000 PLL function, you will see an if blocks that set various registers depending on the requested tune frequency - this may hold the key. Otherwise, any other theories are welcome!
- Should no longer occur with e4k tuner code (see above).
- Using RTL2832 Source block in GNU Radio to receive P25
- Receiving aviation RADAR signals (Mode S)
- Installing and testing a dongle on Windows
- Covers WinUSB (libusb1) driver installation with Zadig, and testing with the ExtIO plugin under HDSDR.
These are some helpful posts to help you get started (e.g. installation walk-thrus in different languages):
- http://sdr.osmocom.org/trac/wiki/rtl-sdr (Inspiration and original code)
- http://www.reddit.com/r/rtlsdr (Dedicated sub-reddit)
- http://www.reddit.com/r/RTLSDR/comments/s6ddo/rtlsdr_compatibility_list_v2_w (reddit compatibility list version 2)
- http://www.hmmb.nl/downloads/RTL2832U-installing.pdf (English)
- http://www.tsf70.com/forum/viewtopic.php?id=3570 (French installation guide)
- http://www.tsf70.com/forum/viewtopic.php?id=3652 (French test under Linux)
- http://sdr.ipip.cz/rtl-sdr (Czech)
- http://www.osslab.com.tw/Hardware/Hack/RTL-SDR (Taiwan)
- http://www.elektronik-labor.de/HF/NoxonSDR2.html (German)
- http://radiolawendel.blogspot.com.au/2012/04/chiavette-usb-dvb-ora-si-possono.html (Italian)
- http://radiolawendel.blogspot.it/2012/04/chiavette-dvb-t-sdr-ultraeconomico-le.html (Italian)
- http://www.radiopassioni.it/pdf/Installazione%20USB%20USRP.pdf (Italian installation guide)
- http://www.ure.es/foro/6-tecnico/178786-sdr-con-receptor-tdt-usb.html?limit=10&start=100 (Spanish)
- http://www.hellocq.net/forum/read-htm-tid-291127-page-3.html (Chinese)
- http://www.divxea.tk/ (Spanish)
If you would like me to add a link, please contact me.