Project

General

Profile

Rtl-sdr » History » Revision 84

Revision 83 (horiz0n, 02/19/2016 10:51 PM) → Revision 84/205 (horiz0n, 02/19/2016 10:51 PM)

[[PageOutline]] 
 = rtl-sdr = 

 DVB-T dongles based on the Realtek RTL2832U can be used as a cheap SDR, since the chip allows transferring the raw I/Q samples to the host, which is officially used for DAB/DAB+/FM demodulation. The possibility of this has been discovered by the V4L/DVB kernel developer [http://thread.gmane.org/gmane.linux.drivers.video-input-infrastructure/44461/focus=44461 Antti Palosaari]. 

 == Specifications == 

 The RTL2832U outputs 8-bit I/Q-samples, and the highest theoretically possible sample-rate is 3.2 MS/s, however, the highest sample-rate without lost samples that has been tested so far is 2.8 MS/s. The frequency range is highly dependent of the used tuner, '''dongles that use the Elonics E4000 offer the widest possible range (64 - 1700 MHz with a gap from approx. 1100 - 1250 MHz)'''. When used out-of-spec, a tuning range of approx. 50 MHz - 2.2 GHz is possible (with gap). 

 == Supported Hardware == 

 The following devices are known to work fine with RTLSDR software: 

 ||'''VID'''||'''PID'''||'''tuner'''||'''device name'''|| 
 ||0x0bda||0x2832||all of them||Generic RTL2832U (e.g. hama nano)|| 
 ||0x0bda||0x2838||E4000||ezcap USB 2.0 DVB-T/DAB/FM dongle|| 
 ||0x0ccd||0x00a9||FC0012||Terratec Cinergy T Stick Black (rev 1)|| 
 ||0x0ccd||0x00b3||FC0013||Terratec NOXON DAB/DAB+ USB dongle (rev 1)|| 
 ||0x0ccd||0x00d3||E4000||Terratec Cinergy T Stick RC (Rev.3)|| 
 ||0x0ccd||0x00e0||E4000||Terratec NOXON DAB/DAB+ USB dongle (rev 2)|| 
 ||0x185b||0x0620||E4000||Compro Videomate U620F|| 
 ||0x185b||0x0650||E4000||Compro Videomate U650F|| 
 ||0x1f4d||0xb803||FC0012||GTek T803|| 
 ||0x1f4d||0xc803||FC0012||Lifeview LV5TDeluxe|| 
 ||0x1b80||0xd3a4||FC0013||Twintech UT-40|| 
 ||0x1d19||0x1101||FC2580||Dexatek DK DVB-T Dongle (Logilink VG0002A)|| 
 ||0x1d19||0x1102||?||Dexatek DK DVB-T Dongle (MSI DigiVox mini II V3.0)|| 
 ||0x1d19||0x1103||FC2580||Dexatek Technology Ltd. DK 5217 DVB-T Dongle|| 
 ||0x0458||0x707f||?||Genius TVGo DVB-T03 USB dongle (Ver. B)|| 
 ||0x1b80||0xd393||FC0012||GIGABYTE GT-U7300|| 
 ||0x1b80||0xd394||?||DIKOM USB-DVBT HD|| 
 ||0x1b80||0xd395||FC0012||Peak 102569AGPK|| 
 ||0x1b80||0xd39d||FC0012||SVEON STV20 DVB-T USB & FM|| 

 If you don't know where to buy one or if you are just looking for a trustworthy source, try http://shop.sysmocom.de/products/eztv668-bulk 

 People over at reddit [http://www.reddit.com/r/RTLSDR/comments/s6ddo/rtlsdr_compatibility_list_v2_work_in_progress/ are collecting a list (v2)] of other devices that are compatible. 

 Other dongles based on the RTL2832U might be added in the future as well. 

 This is the PCB of the ezcap-stick:[[br]][[br]] 
 [[Image(ezcap_top.jpg,50%)]][[br]] 
 More pictures can be found [http://www.steve-m.de/pictures/rtl-sdr/ here]. 

 == Software == 

 rtl-sdr is a commandline tool that can initialize the RTL2832, tune to a given frequency, and record the I/Q-samples to a file. 

 The code can be checked out with: 
 {{{ 
 git clone git://git.osmocom.org/rtl-sdr.git 
 }}} 

 It can also be browsed on http://cgit.osmocom.org/cgit/rtl-sdr/ 

 If you are going to "fork it on github" and enhance it, please contribute back and submit your patches to: osmocom-sdr at lists.osmocom.org 

 A [http://cgit.osmocom.org/cgit/gr-osmosdr/ GNU Radio source block] for [http://sdr.osmocom.org/trac/ OsmoSDR] '''and rtlsdr''' is available. '''Please install a recent gnuradio (>= v3.5.3) in order to be able to use it.'''  

 === Building the software === 

 ==== rtlsdr library & capture tool ==== 

 '''You have to install development packages for libusb1.0''' and can either use cmake or autotools to build the software. 

 Please note: prior pulling a new version from git and compiling it, please do a "make uninstall" first to properly remove the previous version. 

 Building with cmake: 
 {{{ 
 cd rtl-sdr/ 
 mkdir build 
 cd build 
 cmake ../ 
 make 
 sudo make install 
 }}} 

 Building with autotools: 
 {{{ 
 cd rtl-sdr/ 
 autoreconf -i 
 ./configure 
 make 
 sudo make install 
 }}} 

 The build executables (rtl_sdr, rtl_tcp and rtl_test) can be found in rtl-sdr/src/. 

 [attachment:RelWithDebInfo.zip pre-built Windows version] using libusb 1.0.9 and pthreads-win32 cvs 

 ==== Gnuradio Source ==== 

 '''The gnuradio source requires the rtl-sdr package and a recent gnuradio (>= v3.5.3) to be installed.''' 

 The source supports direct device operation as well as a tcp client mode when using the rtl_tcp utility as a spectrum server. 

 Please note: prior pulling a new version from git and compiling it, please do a "make uninstall" first to properly remove the previous version. 

 Building with cmake: 
 {{{ 
 git clone git://git.osmocom.org/gr-osmosdr 
 cd gr-osmosdr/ 
 mkdir build 
 cd build/ 
 cmake ../ -Wno-dev 
 make 
 sudo make install 
 sudo ldconfig 
 }}} 

 NOTE: The source block will appear under 'OsmoSDR' category in GRC menu. 

 For initial tests we recommend the multimode receiver gnuradio companion flowgraph (see "Known Apps" table below). 

 ==== Automated installation ==== 

 Marcus D. Leech has kindly integrated the forementioned build steps into his gnuradio installation script at [http://www.sbrac.org/files/build-gnuradio]. This is the most user-friendly option so far. 

 === Usage === 

 ==== rtl_sdr ==== 

 Example: To tune to 392.0 MHz, and set the sample-rate to 1.8 MS/s, use: 

 {{{ 
 ./rtl_sdr /tmp/capture.bin -s 1.8e6 -f 392e6 
 }}} 

 to record samples to a file or to forward the data to a fifo. 

 If the device can't be opened, make sure you have the appropriate rights to access the device (udev-rules, or running it as root). 

 ==== rtl_tcp ==== 

 Example: 

 {{{ 
 rtl_tcp -a 10.0.0.2 [-p listen port (default: 1234)] 
 Found 1 device(s). 
 Found Elonics E4000 tuner 
 Using Generic RTL2832U (e.g. hama nano) 
 Tuned to 100000000 Hz. 
 listening... 
 Use the device argument 'rtl_tcp=10.0.0.2:1234' in OsmoSDR (gr-osmosdr) source 
 to receive samples in GRC and control rtl_tcp parameters (frequency, gain, ...). 
 }}} 

 use the rtl_tcp=... device argument in gr-osmosdr source to receive the samples in GRC and control the rtl settings remotely. 

 This application has been successfully crosscompiled for ARM and MIPS devices and is providing IQ data in a networked ADS-B setup at a rate of 2.4MSps. The gr-osmosdr source is being used together with an optimized gr-air-modes version. 

 ==== rtl_test ==== 
 {{{ 
 rtl_test -t 
 }}} 
 {{{ 
 rtl_test -s 3.2e6 
 }}} 

 === Known problems === 

  * If the samples are written to a harddrive, and not a ramdisk, samples may get dropped. An improved version with proper buffering and asynchronous usage of libusb is in the works. 

 == Using the data == 

 To convert the data to a standard cfile, following GNU Radio Block can be used:[[br]] 
 [[br]][[Image(rtl2832-cfile.png)]][[br]][[br]] 
 The GNU Radio Companion flowgraph (rtl2832-cfile.grc) is attached to this page. It is based on the FM demodulation flowgraph posted by Alistair Buxton [http://thread.gmane.org/gmane.linux.drivers.video-input-infrastructure/44461/focus=44525 on this thread]. 

 Please note: for realtime operation you may use fifos (mkfifo) to forward the iq data from the capture utility to the GRC flowgraph. 

 What has been successfully tested so far is the reception of [https://www.cgran.org/browser/projects/multimode/trunk Broadcast FM and air traffic AM] radio, [http://tetra.osmocom.org/ TETRA], [http://gmr.osmocom.org/ GMR], [http://svn.berlin.ccc.de/projects/airprobe/ GSM], [https://www.cgran.org/wiki/gr-air-modes ADS-B] and [https://github.com/smunaut/osmo-pocsag POCSAG]. 

 Tell us your success story with other wireless protocols in ##rtlsdr channel on freenode IRC network. 

 == Known Apps == 

 The following 3rd party applications and libraries are successfully using either librtlsdr directly or the corresponding gnuradio source (gr-osmosdr): 

 ||'''Name'''||'''Type'''||'''Author'''||'''URL'''|| 
 ||multimode RX||GRC Flowgraph||Marcus Leech||[https://www.cgran.org/browser/projects/multimode/trunk]|| 
 ||python-librtlsdr||Python Wrapper||David Basden||[https://github.com/dbasden/python-librtlsdr]|| 
 ||pyrtlsdr||Python Wrapper||Roger||[https://github.com/roger-/pyrtlsdr]|| 
 ||rtlsdr-waterfall||Python FFT GUI||Kyle Keen||[https://github.com/keenerd/rtlsdr-waterfall]|| 
 ||Wireless Temp. Sensor RX||Gnuradio App||Kevin Mehall||[https://github.com/kevinmehall/rtlsdr-433m-sensor]|| 
 ||!QtRadio||SDR GUI||Andrea Montefusco et al.||[http://napan.ca/ghpsdr3/index.php/RTL-SDR]|| 
 ||gqrx (fork)||SDR GUI||Mathis Schmieder||[https://github.com/mathisschmieder/gqrx]|| 
 ||rtl_fm '''(NEW)'''||SDR CLI||Kyle Keen||[https://github.com/keenerd/rtl-sdr]|| 
 ||SDR# '''(NEW)'''||SDR GUI||Youssef||[http://sdrsharp.com/]|| 

 Using our lib? Tell us! Don't? Tell us why! :) 

 [[br]][[br]] 
 [[Image(rtl-sdr-gmr.png)]][[br]] 
 Multiple GMR-carriers can be seen in a spectrum view with the full 3.2 MHz bandwidth (at 3.2 MS/s).
Add picture from clipboard (Maximum size: 48.8 MB)