| 1 | == Realtek 2832 EZCap - A Frugal SDR == |
| 2 | |
| 3 | === Prereqs === |
| 4 | |
| 5 | === A cheap spectrum analyzer === |
| 6 | The steps below describe how to use a cheap USB TV dongle (RTL2832 EZCap) as a spectrum analyzer. This example uses node20-6.grid.orbit-lab.org since this has an attached RTL2832 device. |
| 7 | |
| 8 | *) Load image ''ubuntu-14-04-64bit-sdr.ndz'' on ''node20-6.grid.orbit-lab.org'' then ssh in the node with X11 forwarding enabled. This image should have rtlsdr library already compiled. |
| 9 | {{{ |
| 10 | grid> omf load -i ubuntu-14-04-64bit-sdr.ndz -t node20-6.grid.orbit-lab.org |
| 11 | grid> omf tell -a on -t node20-6.grid.orbit-lab.org |
| 12 | grid> ssh -Y node20-6 |
| 13 | }}} |
| 14 | |
| 15 | *) Install dependencies |
| 16 | {{{ |
| 17 | root@node20-6:~# apt-get install python python-wxgtk2.8 python-matplotlib python-numpy python-imaging git cmake libusb-1.0-0-dev |
| 18 | }}} |
| 19 | |
| 20 | *) Verify RTL2832 device is recognized by the node. |
| 21 | {{{ |
| 22 | root@node20-6:~/rtl-sdr/src# lsusb | grep Realtek |
| 23 | Bus 002 Device 003: ID 0bda:2838 Realtek Semiconductor Corp. RTL2838 DVB-T |
| 24 | }}} |
| 25 | |
| 26 | *) Remove default driver for RTL2832. |
| 27 | {{{ |
| 28 | root@node20-6:~# modprobe -r dvb_usb_rtl28xxu |
| 29 | }}} |
| 30 | |
| 31 | *) Verify RTL library has access to RTL2832 |
| 32 | {{{ |
| 33 | root@node20-6:~# cd ~/rtl-sdr/src |
| 34 | root@node20-6:~/rtl-sdr/src# ./rtl_test -t |
| 35 | Found 1 device(s): |
| 36 | 0: Realtek, RTL2838UHIDIR, SN: 00000406 |
| 37 | |
| 38 | Using device 0: Generic RTL2832U OEM |
| 39 | Found Elonics E4000 tuner |
| 40 | 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 |
| 41 | Sampling at 2048000 S/s. |
| 42 | Benchmarking E4000 PLL... |
| 43 | [E4K] PLL not locked for 52000000 Hz! |
| 44 | [E4K] PLL not locked for 2234000000 Hz! |
| 45 | [E4K] PLL not locked for 1117000000 Hz! |
| 46 | [E4K] PLL not locked for 1249000000 Hz! |
| 47 | E4K range: 53 to 2233 MHz |
| 48 | E4K L-band gap: 1117 to 1249 MHz |
| 49 | }}} |
| 50 | |
| 51 | *) Install pyrtlsdr library which provides a Python API for the RTL library |
| 52 | {{{ |
| 53 | root@node20-6:~# git clone git://github.com/roger-/pyrtlsdr.git |
| 54 | root@node20-6:~# cd pyrtlsdr |
| 55 | root@node20-6:~/pyrtlsdr# sudo python setup.py install |
| 56 | root@node20-6:~/pyrtlsdr# cd .. |
| 57 | }}} |
| 58 | |
| 59 | *) Export Python variable |
| 60 | {{{ |
| 61 | root@node20-6:~# export PYTHONPATH=$PYTHONPATH:/usr/lib/python2.7/dist-packages |
| 62 | }}} |
| 63 | |
| 64 | *) Install RTLSDR-SCANNER gui |
| 65 | {{{ |
| 66 | root@node20-6:~# git clone https://github.com/EarToEarOak/RTLSDR-Scanner.git |
| 67 | root@node20-6:~# cd RTLSDR-Scanner/src/ |
| 68 | root@node20-6:~/RTLSDR-Scanner/src/# ./rtlsdr_scan.py & |
| 69 | }}} |
| 70 | |
| 71 | || [[Image(random_tx.png, width=500px)]] || |
| 72 | |
| 73 | === Additional information === |
| 74 | For additional details on RTLSDR-SCANNER check http://eartoearoak.com/software/rtlsdr-scanner |
| 75 | |