RTL-SDR

From YobiWiki
Jump to navigation Jump to search

Resources

Trekstor DVB-T Stick Terres 2.0

It contains hopefully the RTL2832U, together with Elonics E4000 tuner
Seen by lsusb as 1f4d:c803 G-Tek Electronics Group, which matches Lifeview LV5TDeluxe according to osmocom

/var/log/syslog

New USB device found, idVendor=1f4d, idProduct=c803
New USB device strings: Mfr=1, Product=2, SerialNumber=3
Product: RTL2838UHIDIR
Manufacturer: Realtek
SerialNumber: 00000001
$ rtl_test -t
Found 1 device(s):
  0:  Lifeview LV5TDeluxe

Using device 0: Lifeview LV5TDeluxe
Found Elonics E4000 tuner
Supported gain values (14): -1.0 1.5 4.0 6.5 9.0 11.5 14.0 16.5 19.0 21.5 24.0 29.0 34.0 42.0 
Benchmarking E4000 PLL...
[...]
E4K range: 52 to 2212 MHz
E4K L-band gap: 1107 to 1241 MHz

rtl-sdr

sudo apt-get install rtl-sdr
rtl_test -t

Play radio, 96.3MHz:

rtl_fm -f 96.3e6 -W -s 200000 -r 48000 - | aplay -r 48k -f S16_LE

If needed, from sources:

git clone git://git.osmocom.org/rtl-sdr.git
cd rtl-sdr
mkdir build
cd build
cmake ../
make
cd ../build/src
./rtl_test -t

Sources contain one additional tool:

./rtl_power -f 88M:108M:125k -1 fm_stations.csv
./rtl_power -f 100M:1G:1M -i 5m -1 survey.csv

To analyze the result:

wget -O heatmap.py http://kmkeen.com/tmp/heatmap.py.txt
python heatmap.py survey.csv survey.png
python heatmap.py fm_stations.csv fm_stations.png

pyrtlsdr

Python wrapper for rtl-sdr

git clone https://github.com/roger-/pyrtlsdr

waterfall

git clone https://github.com/keenerd/rtlsdr-waterfall
cd rtlsdr-waterfall
ln -s ../pyrtlsdr/rtlsdr 
sudo apt-get install python-pyglet
./waterfall.py
use: waterfall.py <lower freq> <upper freq>
   frequencies in hertz
   example: waterfall.py 929e6 930e6
   arrow keys pan and zoom (shift for bigger steps)
   brackets to adjust gain
   click and drag to select
   A for autocorrelation
   C for constellation
   esc to quit
./waterfall.py 92e6 93e6

Quite detailed waterfall
Select with mouse -> constellation (C) or autocorrelation (A)

rtlizer

git clone https://github.com/csete/rtlizer
./build
./rtlizer 640x360+0+0

Quite fast to scan quickly with arrow keys

gqrx

Get latest and check for missing libs

ldd|grep found
apt-get install libzeroc-ice34
./gqrx

SDR#

sudo apt-get install mono-complete monodevelop
sudo apt-get install libportaudio2
svn co https://subversion.assembla.com/svn/sdrsharp/trunk sdrsharp.svn
cd sdrsharp.svn/
monodevelop

Open file .sdl
If opened as text, modify version 12 -> 11 and open again
Switch to Release; Build All; Exit
cd Release/ Edit SDRSharp.exe.config
=> enable RTLSDR

ln -s /usr/lib/x86_64-linux-gnu/libportaudio.so.2 libportaudio.so
ln -s /usr/lib/x86_64-linux-gnu/librtlsdr.so.0 librtlsdr.so
mono SDRSharp.exe

GNURadio

TODO

ADS-B

rtl_adsb

rtl-sdr contains already a basic decoder:

 Use:	rtl_adsb [-R] [-g gain] [-p ppm] [output file]
	[-d device_index (default: 0)]
	[-V verbove output (default: off)]
	[-S show short frames (default: off)]
	[-Q quality (0: no sanity checks, 0.5: half bit, 1: one bit (default), 2: two bits)]
	[-e allowed_errors (default: 5)]
	[-g tuner_gain (default: automatic)]
	[-p ppm_error (default: 0)]
	filename (a '-' dumps samples to stdout)
	 (omitting the filename also uses stdout)

Example:

./rtl_adsb -V
[...]
*c5d3eaddaba63b95b36305a632a0;
DF=24 CA=5
ICAO Address=d3eadd
PI=0xa632a0
Type Code=21 S.Type/Ant.=3
--------------
*835d53aa49b5aca233339449a21c;
DF=16 CA=3
ICAO Address=5d53aa
PI=0x49a21c
Type Code=9 S.Type/Ant.=1
--------------
*85ca7ba3ce33a2af6159b5aed168;
DF=16 CA=5
ICAO Address=ca7ba3
PI=0xaed168
Type Code=25 S.Type/Ant.=6
--------------

dump1090

Dumping ADS-B aeronautic data from 1090MHz

sudo apt-get install librtlsdr-dev
git clone https://github.com/antirez/dump1090.git
make

Usage:

./dump1090
./dump1090 --help
./dump1090 --interactive --net --enable-agc --metric

With "--net" go to http://127.0.0.1:8080

Actually this fork is much more advanced:

git clone https://github.com/MalcolmRobb/dump1090
make

DVB-T

After all it's initially a DVB-T receiver, isn't it?

TODO