| | 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 | |