Project

General

Profile

Rtl-sdr » History » Version 133

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 83 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 approx. 1100 - 1250 MHz)'''. When used out-of-spec, a tuning range of approx. 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 117 horiz0n
If you don't know where to buy one or if you are just looking for a trustworthy source, try http://shop.sysmocom.de/t/software-defined-radio
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 131 laforge
=== Mailing List ===
61
62
We discuss both OsmoSDR as well as rtl-sdr on the following mailing list: [mailto:osmocom-sdr@lists.osmocom.org].
63
64
You can subscribe and/or unsubscribe via the following link: [http://lists.osmocom.org/mailman/listinfo/osmocom-sdr]
65
66 1 steve-m
=== Building the software ===
67
68 27 horiz0n
==== rtlsdr library & capture tool ====
69 1 steve-m
70 29 horiz0n
'''You have to install development packages for libusb1.0''' and can either use cmake or autotools to build the software.
71 27 horiz0n
72
Please note: prior pulling a new version from git and compiling it, please do a "make uninstall" first to properly remove the previous version.
73
74 19 steve-m
Building with cmake:
75
{{{
76 1 steve-m
cd rtl-sdr/
77 20 horiz0n
mkdir build
78
cd build
79
cmake ../
80 19 steve-m
make
81 33 steve-m
sudo make install
82 130 horiz0n
sudo ldconfig
83 19 steve-m
}}}
84
85 130 horiz0n
In order to be able to use the dongle as a non-root user, you may install the appropriate udev rules file by calling cmake with -DINSTALL_UDEV_RULES=ON argument in the above build steps.
86
{{{
87
cmake ../ -DINSTALL_UDEV_RULES=ON
88
}}}
89
90 19 steve-m
Building with autotools:
91
{{{
92
cd rtl-sdr/
93
autoreconf -i
94
./configure
95 33 steve-m
make
96 19 steve-m
sudo make install
97 130 horiz0n
sudo ldconfig
98 19 steve-m
}}}
99 1 steve-m
100 130 horiz0n
The built executables (rtl_sdr, rtl_tcp and rtl_test) can be found in rtl-sdr/src/.
101 1 steve-m
102 130 horiz0n
In order to be able to use the dongle as a non-root user, you may install the appropriate udev rules file by calling
103
{{{
104
sudo make install-udev-rules
105
}}}
106
107 1 steve-m
[attachment:RelWithDebInfo.zip pre-built Windows version] using libusb 1.0.9 and pthreads-win32 cvs
108 72 horiz0n
109 1 steve-m
==== Gnuradio Source ====
110 27 horiz0n
111 29 horiz0n
'''The gnuradio source requires the rtl-sdr package and a recent gnuradio (>= v3.5.3) to be installed.'''
112 56 horiz0n
113 54 horiz0n
The source supports direct device operation as well as a tcp client mode when using the rtl_tcp utility as a spectrum server.
114 27 horiz0n
115
Please note: prior pulling a new version from git and compiling it, please do a "make uninstall" first to properly remove the previous version.
116 92 horiz0n
117
Please note: you always should build & '''install the latest version of the dependencies (librtlsdr in this case)''' before trying to build the gr source.
118 27 horiz0n
119
Building with cmake:
120
{{{
121
git clone git://git.osmocom.org/gr-osmosdr
122
cd gr-osmosdr/
123 1 steve-m
mkdir build
124 27 horiz0n
cd build/
125 130 horiz0n
cmake ../
126 1 steve-m
make
127
sudo make install
128
sudo ldconfig
129
}}}
130
131 101 horiz0n
NOTE: The source block (osmosdr/rtlsdr Source) will appear under 'Sources' category in GRC menu.
132 1 steve-m
133 84 horiz0n
For initial tests we recommend the multimode receiver gnuradio companion flowgraph (see "Known Apps" table below).
134
135 104 horiz0n
You may find more detailed installation instructions in this recent [http://blog.opensecurityresearch.com/2012/06/getting-started-with-gnu-radio-and-rtl.html tutorial].
136 103 horiz0n
137 1 steve-m
==== Automated installation ====
138
139 101 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.
140
141 1 steve-m
=== Usage ===
142
143 78 horiz0n
==== rtl_sdr ====
144
145 1 steve-m
Example: To tune to 392.0 MHz, and set the sample-rate to 1.8 MS/s, use:
146
147
{{{
148
./rtl_sdr /tmp/capture.bin -s 1.8e6 -f 392e6
149 74 horiz0n
}}}
150
151
to record samples to a file or to forward the data to a fifo.
152
153 90 horiz0n
If the device can't be opened, make sure you have the appropriate rights to access the device (install udev-rules from the repository, or run it as root).
154 74 horiz0n
155 78 horiz0n
==== rtl_tcp ====
156
157 80 horiz0n
Example:
158
159 1 steve-m
{{{
160 79 horiz0n
rtl_tcp -a 10.0.0.2 [-p listen port (default: 1234)]
161
Found 1 device(s).
162
Found Elonics E4000 tuner
163
Using Generic RTL2832U (e.g. hama nano)
164
Tuned to 100000000 Hz.
165
listening...
166
Use the device argument 'rtl_tcp=10.0.0.2:1234' in OsmoSDR (gr-osmosdr) source
167
to receive samples in GRC and control rtl_tcp parameters (frequency, gain, ...).
168 74 horiz0n
}}}
169 79 horiz0n
170 76 horiz0n
use the rtl_tcp=... device argument in gr-osmosdr source to receive the samples in GRC and control the rtl settings remotely.
171 1 steve-m
172 103 horiz0n
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 (see Known Apps below).
173 85 steve-m
You can find a Makefile for OpenWRT [http://steve-m.de/projects/rtl-sdr/Makefile here].
174 76 horiz0n
175 110 horiz0n
A use case is described [https://sites.google.com/site/embrtlsdr/ here].
176
177 1 steve-m
==== rtl_test ====
178 90 horiz0n
To check the possible tuning range (may heavily vary by some MHz depending on device and temperature), call
179 74 horiz0n
{{{
180
rtl_test -t
181 1 steve-m
}}}
182 90 horiz0n
183
To check the maximum samplerate possible on your machine, type (change the rate down until no sample loss occurs):
184 74 horiz0n
{{{
185
rtl_test -s 3.2e6
186 1 steve-m
}}}
187 90 horiz0n
A samplerate of 2.4e6 is known to work even over tcp connections (see rtl_tcp above). A sample rate of 2.88e6 may work without lost samples but this may depend on your PC/Laptop's host interface.
188 2 steve-m
189
== Using the data ==
190
191 3 steve-m
To convert the data to a standard cfile, following GNU Radio Block can be used:[[br]]
192
[[br]][[Image(rtl2832-cfile.png)]][[br]][[br]]
193 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].
194 6 steve-m
195 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.
196
197 115 horiz0n
You may use any of the the following gnuradio sources (they are equivalent):
198
[[br]][[br]][[Image(osmosource.png)]][[br]]
199
200 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].
201 32 horiz0n
202
Tell us your success story with other wireless protocols in ##rtlsdr channel on freenode IRC network.
203
204 61 horiz0n
== Known Apps ==
205 60 horiz0n
206 81 horiz0n
The following 3rd party applications and libraries are successfully using either librtlsdr directly or the corresponding gnuradio source (gr-osmosdr):
207 60 horiz0n
208
||'''Name'''||'''Type'''||'''Author'''||'''URL'''||
209 88 horiz0n
||gr-pocsag||GRC Flowgraph||Marcus Leech||[https://www.cgran.org/browser/projects/gr-pocsag/trunk]||
210 106 horiz0n
||multimode RX (try first!)||GRC Flowgraph||Marcus Leech||[https://www.cgran.org/browser/projects/multimode/trunk]||
211 89 steve-m
||simple_fm_rvc||GRC Flowgraph||Marcus Leech||[https://www.cgran.org/browser/projects/simple_fm_rcv/trunk]||
212 60 horiz0n
||python-librtlsdr||Python Wrapper||David Basden||[https://github.com/dbasden/python-librtlsdr]||
213 63 horiz0n
||pyrtlsdr||Python Wrapper||Roger||[https://github.com/roger-/pyrtlsdr]||
214 60 horiz0n
||rtlsdr-waterfall||Python FFT GUI||Kyle Keen||[https://github.com/keenerd/rtlsdr-waterfall]||
215 67 horiz0n
||Wireless Temp. Sensor RX||Gnuradio App||Kevin Mehall||[https://github.com/kevinmehall/rtlsdr-433m-sensor]||
216 1 steve-m
||!QtRadio||SDR GUI||Andrea Montefusco et al.||[http://napan.ca/ghpsdr3/index.php/RTL-SDR]||
217 88 horiz0n
||gqrx (fork)||SDR GUI||Alexandru Csete||[https://github.com/mathisschmieder/gqrx]||
218 116 horiz0n
||rtl_fm||SDR CLI||Kyle Keen||merged in librtlsdr master||
219 119 horiz0n
||SDR#||SDR GUI||Youssef Touil||[http://sdrsharp.com/] and [http://rtlsdr.org/softwarewindows Windows Guide] or [http://rtlsdr.org/softwarelinux Linux Guide]||
220 109 horiz0n
||tetra_demod_fft||Trunking RX||osmocom team||[http://cgit.osmocom.org/cgit/osmo-tetra/tree/src/demod/python/osmosdr-tetra_demod_fft.py osmosdr-tetra_demod_fft.py] and the [http://tetra.osmocom.org/trac/wiki/osmo-tetra#Quickexample HOWTO] ||
221 128 horiz0n
||gqrx (original)||SDR GUI||Alexandru Csete||[https://github.com/csete/gqrx]||
222
||airprobe||GSM sniffer||osmocom team et al||[http://git.gnumonks.org/cgi-bin/gitweb.cgi?p=airprobe.git]||
223
||gr-smartnet (WIP)||Trunking RX||Nick Foster||[http://www.reddit.com/r/RTLSDR/comments/us3yo/rtlsdr_smartnet/][[br]][http://www.reddit.com/r/RTLSDR/comments/vbxl0/attention_grsmartnet_users_or_attempted_users/ Notes from the author]||
224
||gr-air-modes||ADS-B RX||Nick Foster||[https://www.cgran.org/wiki/gr-air-modes] call with --rtlsdr option||
225
||Linrad||SDR GUI||Leif Asbrink (SM5BSZ)||[http://www.nitehawk.com/sm5bsz/linuxdsp/hware/rtlsdr/rtlsdr.htm][[br]]DAGC changes were applied to librtlsdr master||
226
||gr-ais (fork)||AIS RX||Nick Foster[[br]]Antoine Sirinelli[[br]]Christian Gagneraud||[https://github.com/chgans/gr-ais]||
227 109 horiz0n
||GNSS-SDR  '''(NEW)'''||GPS RX (Realtime!)||Centre Tecnològic de[[br]]Telecomunicacions de Catalunya||[http://www.gnss-sdr.org/documentation/gnss-sdr-operation-realtek-rtl2832u-usb-dongle-dvb-t-receiver Documentation] and [http://www.gnss-sdr.org]||
228 114 horiz0n
||LTE-Cell-Scanner '''(NEW)'''||LTE Scanner||James Peroulas||[https://github.com/Evrytania/LTE-Cell-Scanner]||
229 120 horiz0n
||Simulink-RTL-SDR '''(NEW)'''||MATLAB/Simulink wrapper||Michael Schwall[[br]]Sebastian Koslowski[[br]]Communication Engineering Lab (CEL)[[br]]Karlsruhe Institute of Technology (KIT)||[http://www.cel.kit.edu/simulink_rtl_sdr.php]||
230 129 horiz0n
||gr-scan '''(NEW)'''||Scanner||techmeology||[http://www.techmeology.co.uk/gr-scan/]||
231 128 horiz0n
232
233 101 horiz0n
234 98 steve-m
235 91 horiz0n
[[br]]
236 60 horiz0n
Using our lib? Tell us! Don't? Tell us why! :)
237 91 horiz0n
[[br]][[br]][[br]]
238 6 steve-m
[[Image(rtl-sdr-gmr.png)]][[br]]
239
Multiple GMR-carriers can be seen in a spectrum view with the full 3.2 MHz bandwidth (at 3.2 MS/s).
240 132 laforge
241
== Credits ==
242
243 133 horiz0n
rtl-sdr is developed by Steve Markgraf and Dimitri Stolnikov, with contributions by Kyle Keen, Hoernchen, Christian Vogel and Harald Welte.
Add picture from clipboard (Maximum size: 48.8 MB)