Project

General

Profile

Rtl-sdr » History » Version 72

horiz0n, 02/19/2016 10:51 PM

1 1 steve-m
[[PageOutline]]
2
= rtl-sdr =
3
4 30 horiz0n
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].
5 1 steve-m
6
== Specifications ==
7
8 70 horiz0n
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 1100 - 1250 MHz)'''. When used out-of-spec, a tuning range of 50 MHz - 2.2 GHz is possible (with gap).
9 1 steve-m
10
== Supported Hardware ==
11
12 45 horiz0n
The following devices are known to work fine with RTLSDR software:
13 1 steve-m
14 43 steve-m
||'''VID'''||'''PID'''||'''tuner'''||'''device name'''||
15 42 Hoernchen
||0x0bda||0x2832||all of them||Generic RTL2832U (e.g. hama nano)||
16
||0x0bda||0x2838||E4000||ezcap USB 2.0 DVB-T/DAB/FM dongle||
17
||0x0ccd||0x00a9||FC0012||Terratec Cinergy T Stick Black (rev 1)||
18 49 Hoernchen
||0x0ccd||0x00b3||FC0013||Terratec NOXON DAB/DAB+ USB dongle (rev 1)||
19 42 Hoernchen
||0x0ccd||0x00d3||E4000||Terratec Cinergy T Stick RC (Rev.3)||
20
||0x0ccd||0x00e0||E4000||Terratec NOXON DAB/DAB+ USB dongle (rev 2)||
21
||0x185b||0x0620||E4000||Compro Videomate U620F||
22
||0x185b||0x0650||E4000||Compro Videomate U650F||
23
||0x1f4d||0xb803||FC0012||GTek T803||
24
||0x1f4d||0xc803||FC0012||Lifeview LV5TDeluxe||
25
||0x1b80||0xd3a4||FC0013||Twintech UT-40||
26
||0x1d19||0x1101||FC2580||Dexatek DK DVB-T Dongle (Logilink VG0002A)||
27
||0x1d19||0x1102||?||Dexatek DK DVB-T Dongle (MSI DigiVox mini II V3.0)||
28
||0x1d19||0x1103||FC2580||Dexatek Technology Ltd. DK 5217 DVB-T Dongle||
29
||0x0458||0x707f||?||Genius TVGo DVB-T03 USB dongle (Ver. B)||
30
||0x1b80||0xd393||FC0012||GIGABYTE GT-U7300||
31
||0x1b80||0xd394||?||DIKOM USB-DVBT HD||
32
||0x1b80||0xd395||FC0012||Peak 102569AGPK||
33
||0x1b80||0xd39d||FC0012||SVEON STV20 DVB-T USB & FM||
34 14 steve-m
35 57 Hoernchen
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
36 38 Hoernchen
37 31 horiz0n
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.
38 2 steve-m
39 30 horiz0n
Other dongles based on the RTL2832U might be added in the future as well.
40 5 steve-m
41
This is the PCB of the ezcap-stick:[[br]][[br]]
42
[[Image(ezcap_top.jpg,50%)]][[br]]
43
More pictures can be found [http://www.steve-m.de/pictures/rtl-sdr/ here].
44 2 steve-m
45
== Software ==
46
47
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.
48
49
The code can be checked out with:
50
{{{
51
git clone git://git.osmocom.org/rtl-sdr.git
52
}}}
53 35 horiz0n
54 1 steve-m
It can also be browsed on http://cgit.osmocom.org/cgit/rtl-sdr/
55 45 horiz0n
56 48 horiz0n
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
57 1 steve-m
58 56 horiz0n
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.''' 
59 41 horiz0n
60 1 steve-m
=== Building the software ===
61
62 27 horiz0n
==== rtlsdr library & capture tool ====
63 1 steve-m
64 29 horiz0n
'''You have to install development packages for libusb1.0''' and can either use cmake or autotools to build the software.
65 27 horiz0n
66
Please note: prior pulling a new version from git and compiling it, please do a "make uninstall" first to properly remove the previous version.
67
68 19 steve-m
Building with cmake:
69
{{{
70 1 steve-m
cd rtl-sdr/
71 20 horiz0n
mkdir build
72
cd build
73
cmake ../
74 19 steve-m
make
75 33 steve-m
sudo make install
76 19 steve-m
}}}
77
78
Building with autotools:
79
{{{
80
cd rtl-sdr/
81
autoreconf -i
82
./configure
83
make
84 33 steve-m
sudo make install
85 19 steve-m
}}}
86
87 72 horiz0n
The build executables (rtl_sdr, rtl_tcp and rtl_test) can be found in rtl-sdr/src/.
88 27 horiz0n
89 1 steve-m
[attachment:RelWithDebInfo.zip pre-built Windows version] using libusb 1.0.9 and pthreads-win32 cvs
90 72 horiz0n
91
===== rtl_sdr =====
92
93
Call with arguments
94
95
rtl_srd ... /tmp/iq.bin
96
97
to record samples to a file or to forward the data to a fifo.
98
99
===== rtl_tcp =====
100
101
Call (without arguments)
102
103
rtl_tcp
104
105
use the rtl_tcp=... device argument in gr-osmosdr source to receive the samples in GRC and control the rtl settings remotely.
106
107
===== rtl_test =====
108
109
rtl_test -t
110
111
rtl_test -s 3.2e6
112 36 Hoernchen
113 1 steve-m
==== Gnuradio Source ====
114 27 horiz0n
115 29 horiz0n
'''The gnuradio source requires the rtl-sdr package and a recent gnuradio (>= v3.5.3) to be installed.'''
116 27 horiz0n
117 56 horiz0n
The source supports direct device operation as well as a tcp client mode when using the rtl_tcp utility as a spectrum server.
118 54 horiz0n
119 27 horiz0n
Please note: prior pulling a new version from git and compiling it, please do a "make uninstall" first to properly remove the previous version.
120
121
Building with cmake:
122
{{{
123
git clone git://git.osmocom.org/gr-osmosdr
124
cd gr-osmosdr/
125
mkdir build
126
cd build/
127 52 horiz0n
cmake ../ -Wno-dev
128 27 horiz0n
make
129 34 steve-m
sudo make install
130
sudo ldconfig
131 1 steve-m
}}}
132 44 horiz0n
133 53 horiz0n
NOTE: The source block will appear under 'OsmoSDR' category in GRC menu.
134 27 horiz0n
135
==== Automated installation ====
136
137 28 horiz0n
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.
138 2 steve-m
139
=== Usage ===
140
141 1 steve-m
Example: To tune to 392.0 MHz, and set the sample-rate to 1.8 MS/s, use:
142 2 steve-m
143
{{{
144 50 tsaitgaist
./rtl_sdr /tmp/capture.bin -s 1.8e6 -f 392e6
145 2 steve-m
}}}
146
147
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).
148
149
=== Known problems ===
150
151
 * 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.
152
153
== Using the data ==
154
155 3 steve-m
To convert the data to a standard cfile, following GNU Radio Block can be used:[[br]]
156
[[br]][[Image(rtl2832-cfile.png)]][[br]][[br]]
157 2 steve-m
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].
158 6 steve-m
159 22 horiz0n
Please note: for realtime operation you may use fifos (mkfifo) to forward the iq data from the capture utility to the GRC flowgraph.
160
161 59 horiz0n
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].
162 32 horiz0n
163
Tell us your success story with other wireless protocols in ##rtlsdr channel on freenode IRC network.
164
165 61 horiz0n
== Known Apps ==
166 60 horiz0n
167 66 horiz0n
The following 3rd party applications and libraries are successfully using librtlsdr:
168 60 horiz0n
169
||'''Name'''||'''Type'''||'''Author'''||'''URL'''||
170 65 horiz0n
||multimode RX||GRC Flowgraph||Marcus Leech||[https://www.cgran.org/browser/projects/multimode/trunk]||
171 60 horiz0n
||python-librtlsdr||Python Wrapper||David Basden||[https://github.com/dbasden/python-librtlsdr]||
172 63 horiz0n
||pyrtlsdr||Python Wrapper||Roger||[https://github.com/roger-/pyrtlsdr]||
173 60 horiz0n
||rtlsdr-waterfall||Python FFT GUI||Kyle Keen||[https://github.com/keenerd/rtlsdr-waterfall]||
174 67 horiz0n
||Wireless Temp. Sensor RX||Gnuradio App||Kevin Mehall||[https://github.com/kevinmehall/rtlsdr-433m-sensor]||
175 71 horiz0n
||QtRadio||SDR GUI||Andrea Montefusco et al.||[http://napan.ca/ghpsdr3/index.php/RTL-SDR]||
176 69 horiz0n
||gqrx (fork)||SDR GUI||Mathis Schmieder||[https://github.com/mathisschmieder/gqrx]||
177 60 horiz0n
||rtl_fm '''(NEW)'''||SDR CLI||Kyle Keen||[https://github.com/keenerd/rtl-sdr]||
178
||SDR# '''(NEW)'''||SDR GUI||Youssef||[http://sdrsharp.com/]||
179
180
Using our lib? Tell us! Don't? Tell us why! :)
181
182 6 steve-m
[[br]][[br]]
183
[[Image(rtl-sdr-gmr.png)]][[br]]
184
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)