A Hands-On Introduction to SDR with USRP and GNU...
Transcript of A Hands-On Introduction to SDR with USRP and GNU...
![Page 1: A Hands-On Introduction to SDR with USRP and GNU Radiofiles.meetup.com/18094742/Presentation_Cyberspectrum_20160203_G… · A Hands-On Introduction to SDR with USRP and GNU Radio](https://reader033.fdocuments.in/reader033/viewer/2022042503/5aad2bad7f8b9aa9488dea7b/html5/thumbnails/1.jpg)
1
A Hands-On Introduction to SDRwith USRP and GNU Radio
(Part 1)
Cyberspectrum MeetupSanta Clara, California
Wednesday, February 3, 2016
Accompanying video can be found at:https://youtu.be/eEMYA-nzATM?t=1h27m47s
![Page 2: A Hands-On Introduction to SDR with USRP and GNU Radiofiles.meetup.com/18094742/Presentation_Cyberspectrum_20160203_G… · A Hands-On Introduction to SDR with USRP and GNU Radio](https://reader033.fdocuments.in/reader033/viewer/2022042503/5aad2bad7f8b9aa9488dea7b/html5/thumbnails/2.jpg)
- Special thanks to my colleague Nate Temple
- Etch-a-SDR Embedded SDR Devicehttps://github.com/devnulling/etch-a-sdr
- Presented at the Cyberspectrum Meetup on September 30, 2015
Special Thanks
2
![Page 3: A Hands-On Introduction to SDR with USRP and GNU Radiofiles.meetup.com/18094742/Presentation_Cyberspectrum_20160203_G… · A Hands-On Introduction to SDR with USRP and GNU Radio](https://reader033.fdocuments.in/reader033/viewer/2022042503/5aad2bad7f8b9aa9488dea7b/html5/thumbnails/3.jpg)
- A radio in which some or all of the physical-layer functions are implemented in software running on a microprocessor (or an FPGA)
- Software running on a CPU, or FPGA, running algorithms from DSP and communications theory
What is SDR
3
![Page 4: A Hands-On Introduction to SDR with USRP and GNU Radiofiles.meetup.com/18094742/Presentation_Cyberspectrum_20160203_G… · A Hands-On Introduction to SDR with USRP and GNU Radio](https://reader033.fdocuments.in/reader033/viewer/2022042503/5aad2bad7f8b9aa9488dea7b/html5/thumbnails/4.jpg)
- Most radios use the classic superheterodyne receiver architecture
- The RF signal from the antenna is mixed with a local oscillator to produce an intermediate frequency (IF) signal
- The IF signal is a fixed lower-frequency signal which is then filtered and demodulated
SDR Architecture
4
![Page 5: A Hands-On Introduction to SDR with USRP and GNU Radiofiles.meetup.com/18094742/Presentation_Cyberspectrum_20160203_G… · A Hands-On Introduction to SDR with USRP and GNU Radio](https://reader033.fdocuments.in/reader033/viewer/2022042503/5aad2bad7f8b9aa9488dea7b/html5/thumbnails/5.jpg)
- SDR uses a direct-conversion receiver (DCR) architecture
- Also called Zero-IF receiver, and homodyne receiver
- Eliminates the intermediate frequency (IF) by translating the band of interest directly to baseband
- The frequency of the LO is set to the same frequency as the transmitted/desired RF signal
SDR Architecture
5
![Page 6: A Hands-On Introduction to SDR with USRP and GNU Radiofiles.meetup.com/18094742/Presentation_Cyberspectrum_20160203_G… · A Hands-On Introduction to SDR with USRP and GNU Radio](https://reader033.fdocuments.in/reader033/viewer/2022042503/5aad2bad7f8b9aa9488dea7b/html5/thumbnails/6.jpg)
- Traditional radios are hard-wired to specific frequency bands and communication protocols
- Fixed-function, Black Box
- Can’t be easily modified, can’t easily access internal values and states
- SDR provides:
- Flexibility
- Upgradability
- Reconfigurability
- Lower cost
Why SDR
6
![Page 7: A Hands-On Introduction to SDR with USRP and GNU Radiofiles.meetup.com/18094742/Presentation_Cyberspectrum_20160203_G… · A Hands-On Introduction to SDR with USRP and GNU Radio](https://reader033.fdocuments.in/reader033/viewer/2022042503/5aad2bad7f8b9aa9488dea7b/html5/thumbnails/7.jpg)
- Joe Mitola first coined term in 1991
- Voice-band Softmodems / WinModems in 1990s and 2000s
- Cellular handsets (e.g., baseband processors such as Qualcomm Snapdragon)
- Cellular basestations (e.g., OpenBTS, Osmocom, srsLTE, OpenLTE, Eurecom OAI, Amarisoft LTE)
- GPS Receivers and Simulators (e.g., GNSS-SDR, Skydel Solutions, Navigation Laboratories)
- Adaptive and Cognitive Radio
- Radio Astronomy
- Satellite Communications
- Wireless Security Research and Spectrum Monitoring
- Wireless Prototyping and Testing
Applications of SDR
7
![Page 8: A Hands-On Introduction to SDR with USRP and GNU Radiofiles.meetup.com/18094742/Presentation_Cyberspectrum_20160203_G… · A Hands-On Introduction to SDR with USRP and GNU Radio](https://reader033.fdocuments.in/reader033/viewer/2022042503/5aad2bad7f8b9aa9488dea7b/html5/thumbnails/8.jpg)
- Processing can be either real-time or off-line (post-processing)
- C++ and UHD API
- GNU Radio and Python, NumPy, SciPy, Matplotlib (open-source)
- LabVIEW (National Instruments)
- Matlab (MathWorks)
- HDSDR, SDR#, SDR-Console, WinRAD (using ExtIO)
Software Toolchains
8
![Page 9: A Hands-On Introduction to SDR with USRP and GNU Radiofiles.meetup.com/18094742/Presentation_Cyberspectrum_20160203_G… · A Hands-On Introduction to SDR with USRP and GNU Radio](https://reader033.fdocuments.in/reader033/viewer/2022042503/5aad2bad7f8b9aa9488dea7b/html5/thumbnails/9.jpg)
- Git is a distributed source code management system
- GitHub is a web-based hosting service for Git repositories
- Command-line and GUI clients
- sudo apt-get install git
- git clone <repository_name>
- git tag -l
- git checkout <tag|commit>
Git and GitHub
9
![Page 10: A Hands-On Introduction to SDR with USRP and GNU Radiofiles.meetup.com/18094742/Presentation_Cyberspectrum_20160203_G… · A Hands-On Introduction to SDR with USRP and GNU Radio](https://reader033.fdocuments.in/reader033/viewer/2022042503/5aad2bad7f8b9aa9488dea7b/html5/thumbnails/10.jpg)
- About the company
- Founded in 2004 by Matt Ettus
- Acquired by National Instruments in 2010
- Located in Santa Clara, California
- USRP Motherboards
- B-series (B200, B210, B200mini): USB host interface
- N-series (N200, N210): 1 Gb Ethernet host interface
- X-series (X300, X310): 1 and 10 Gb Ethernet host interface
- E-series (E310): embedded SDR with ARM CPU
USRP
10
![Page 11: A Hands-On Introduction to SDR with USRP and GNU Radiofiles.meetup.com/18094742/Presentation_Cyberspectrum_20160203_G… · A Hands-On Introduction to SDR with USRP and GNU Radio](https://reader033.fdocuments.in/reader033/viewer/2022042503/5aad2bad7f8b9aa9488dea7b/html5/thumbnails/11.jpg)
- USRP Daughterboards (for N-series and X-series only)
- BasicTX and BasicRX: no tuner, 1 MHz to 250 MHz
- LFTX and LFRX: no tuner, 0 Hz to 30 MHz
- WBX: 50 MHz to 2200 MHz, 40 or 120 MHz capture bandwidth, 1 Tx and 1 Rx
- SBX: 400 MHz to 4400 MHz, 40 or 120 MHz capture bandwidth, 1 Tx and 1 Rx
- CBX: 1200 MHz to 6000 MHz, 40 or 120 MHz capture bandwidth, 1 Tx and 1 Rx
- UBX: 10 MHz to 6000 MHz, 40 or 160 MHz capture bandwidth, 1 Tx and 1 Rx
- TwinRX: 10 MHz to 6000 MHz, 80 MHz capture bandwidth, Dual Rx Only
USRP
11
![Page 12: A Hands-On Introduction to SDR with USRP and GNU Radiofiles.meetup.com/18094742/Presentation_Cyberspectrum_20160203_G… · A Hands-On Introduction to SDR with USRP and GNU Radio](https://reader033.fdocuments.in/reader033/viewer/2022042503/5aad2bad7f8b9aa9488dea7b/html5/thumbnails/12.jpg)
USRP Architecture
12
![Page 13: A Hands-On Introduction to SDR with USRP and GNU Radiofiles.meetup.com/18094742/Presentation_Cyberspectrum_20160203_G… · A Hands-On Introduction to SDR with USRP and GNU Radio](https://reader033.fdocuments.in/reader033/viewer/2022042503/5aad2bad7f8b9aa9488dea7b/html5/thumbnails/13.jpg)
USRP Architecture
13
![Page 14: A Hands-On Introduction to SDR with USRP and GNU Radiofiles.meetup.com/18094742/Presentation_Cyberspectrum_20160203_G… · A Hands-On Introduction to SDR with USRP and GNU Radio](https://reader033.fdocuments.in/reader033/viewer/2022042503/5aad2bad7f8b9aa9488dea7b/html5/thumbnails/14.jpg)
USRP Model Comparison
14
![Page 15: A Hands-On Introduction to SDR with USRP and GNU Radiofiles.meetup.com/18094742/Presentation_Cyberspectrum_20160203_G… · A Hands-On Introduction to SDR with USRP and GNU Radio](https://reader033.fdocuments.in/reader033/viewer/2022042503/5aad2bad7f8b9aa9488dea7b/html5/thumbnails/15.jpg)
USRP B210
15
![Page 16: A Hands-On Introduction to SDR with USRP and GNU Radiofiles.meetup.com/18094742/Presentation_Cyberspectrum_20160203_G… · A Hands-On Introduction to SDR with USRP and GNU Radio](https://reader033.fdocuments.in/reader033/viewer/2022042503/5aad2bad7f8b9aa9488dea7b/html5/thumbnails/16.jpg)
USRP B200mini
16
![Page 17: A Hands-On Introduction to SDR with USRP and GNU Radiofiles.meetup.com/18094742/Presentation_Cyberspectrum_20160203_G… · A Hands-On Introduction to SDR with USRP and GNU Radio](https://reader033.fdocuments.in/reader033/viewer/2022042503/5aad2bad7f8b9aa9488dea7b/html5/thumbnails/17.jpg)
USRP N200 / N210
17
![Page 18: A Hands-On Introduction to SDR with USRP and GNU Radiofiles.meetup.com/18094742/Presentation_Cyberspectrum_20160203_G… · A Hands-On Introduction to SDR with USRP and GNU Radio](https://reader033.fdocuments.in/reader033/viewer/2022042503/5aad2bad7f8b9aa9488dea7b/html5/thumbnails/18.jpg)
USRP X300 / X310
18
![Page 19: A Hands-On Introduction to SDR with USRP and GNU Radiofiles.meetup.com/18094742/Presentation_Cyberspectrum_20160203_G… · A Hands-On Introduction to SDR with USRP and GNU Radio](https://reader033.fdocuments.in/reader033/viewer/2022042503/5aad2bad7f8b9aa9488dea7b/html5/thumbnails/19.jpg)
USRP SBX (left) and UBX (right)
19
![Page 20: A Hands-On Introduction to SDR with USRP and GNU Radiofiles.meetup.com/18094742/Presentation_Cyberspectrum_20160203_G… · A Hands-On Introduction to SDR with USRP and GNU Radio](https://reader033.fdocuments.in/reader033/viewer/2022042503/5aad2bad7f8b9aa9488dea7b/html5/thumbnails/20.jpg)
- Single, common interface to all USRP devices
- Host-side software driver running in user-space
- Open-source and hosted on GitHub
- Cross-platform (Windows, OS X, Linux)
- Three components: host-side software, FPGA, firmware
- https://github.com/EttusResearch
USRP Hardware Driver (UHD)
20
![Page 21: A Hands-On Introduction to SDR with USRP and GNU Radiofiles.meetup.com/18094742/Presentation_Cyberspectrum_20160203_G… · A Hands-On Introduction to SDR with USRP and GNU Radio](https://reader033.fdocuments.in/reader033/viewer/2022042503/5aad2bad7f8b9aa9488dea7b/html5/thumbnails/21.jpg)
USRP Hardware Driver (UHD)
21
![Page 22: A Hands-On Introduction to SDR with USRP and GNU Radiofiles.meetup.com/18094742/Presentation_Cyberspectrum_20160203_G… · A Hands-On Introduction to SDR with USRP and GNU Radio](https://reader033.fdocuments.in/reader033/viewer/2022042503/5aad2bad7f8b9aa9488dea7b/html5/thumbnails/22.jpg)
1. sudo apt-get install libboost-all-dev libusb-1.0-0-dev python-mako doxygen
python-docutils cmake build-essential libncurses5 libncurses5-dev
2. git clone git://github.com/EttusResearch/uhd.git
3. cd uhd
4. git checkout release_003_009_002
5. cd host
6. mkdir build && cd build
7. cmake ../
8. make -j4
9. make test
10. sudo make install
11. sudo ldconfig
Installing UHD From Source Code
22
![Page 23: A Hands-On Introduction to SDR with USRP and GNU Radiofiles.meetup.com/18094742/Presentation_Cyberspectrum_20160203_G… · A Hands-On Introduction to SDR with USRP and GNU Radio](https://reader033.fdocuments.in/reader033/viewer/2022042503/5aad2bad7f8b9aa9488dea7b/html5/thumbnails/23.jpg)
- Ubuntu Launchpad PPA- Only for Ubuntu (not Fedora, RHEL, etc.)- Only for UHD version 3.9.2 or newer- https://launchpad.net/~ettusresearch/+archive/ubuntu/uhd- RPM packages for RHEL/CentOS and Fedora available on Ettus website
sudo apt-add-repository ppa:ettusresearch/uhd
sudo apt-get update
sudo apt-get install uhd-host libuhd003 libuhd-dev
Installing UHD From Binary Package
23
![Page 24: A Hands-On Introduction to SDR with USRP and GNU Radiofiles.meetup.com/18094742/Presentation_Cyberspectrum_20160203_G… · A Hands-On Introduction to SDR with USRP and GNU Radio](https://reader033.fdocuments.in/reader033/viewer/2022042503/5aad2bad7f8b9aa9488dea7b/html5/thumbnails/24.jpg)
UHD Utilities - uhd_find_devices
24
![Page 25: A Hands-On Introduction to SDR with USRP and GNU Radiofiles.meetup.com/18094742/Presentation_Cyberspectrum_20160203_G… · A Hands-On Introduction to SDR with USRP and GNU Radio](https://reader033.fdocuments.in/reader033/viewer/2022042503/5aad2bad7f8b9aa9488dea7b/html5/thumbnails/25.jpg)
UHD Utilities - uhd_usrp_probe
25
![Page 26: A Hands-On Introduction to SDR with USRP and GNU Radiofiles.meetup.com/18094742/Presentation_Cyberspectrum_20160203_G… · A Hands-On Introduction to SDR with USRP and GNU Radio](https://reader033.fdocuments.in/reader033/viewer/2022042503/5aad2bad7f8b9aa9488dea7b/html5/thumbnails/26.jpg)
UHD Utilities - uhd_images_downloader.py
26
sudo /usr/local/lib/uhd/utils/uhd_images_downloader.py
![Page 27: A Hands-On Introduction to SDR with USRP and GNU Radiofiles.meetup.com/18094742/Presentation_Cyberspectrum_20160203_G… · A Hands-On Introduction to SDR with USRP and GNU Radio](https://reader033.fdocuments.in/reader033/viewer/2022042503/5aad2bad7f8b9aa9488dea7b/html5/thumbnails/27.jpg)
- Default location is /usr/local/lib/uhd/utils
- usrp_x3xx_fpga_burner
- Flashes an image onto the X300/X310 FPGA
- usrp_burn_mb_eeprom
- Reading and writing motherboard EEPROM
- usrp_burn_db_eeprom
- Reading and writing daughterboard EEPROM
UHD Utilities - Other
27
![Page 28: A Hands-On Introduction to SDR with USRP and GNU Radiofiles.meetup.com/18094742/Presentation_Cyberspectrum_20160203_G… · A Hands-On Introduction to SDR with USRP and GNU Radio](https://reader033.fdocuments.in/reader033/viewer/2022042503/5aad2bad7f8b9aa9488dea7b/html5/thumbnails/28.jpg)
UHD Example Utilities
28
- rx_ascii_art_dft- Creates ASCII/Ncurses FFT - ./rx_ascii_art_dft --freq 98e6 --rate 5e6 --gain 20 --bw 5e6 --ref-lvl -50
- rx_samples_to_file- Saves samples to a file - ./rx_samples_to_file --freq 98e6 --rate 5e6 --gain 20 usrp_samples.dat
- tx_samples_from_file- Transmits samples from a file- ./tx_samples_from_file --freq 915e6 --rate 5e6 --gain 10 usrp_samples.dat
- benchmark_rate- Benchmarks interface with device- ./benchmark_rate --rx_rate 10e6 --tx_rate 10e6
- tx_waveforms- Transmits various types of waveforms- ./tx_waveforms --freq 915e6 --rate 5e6 --gain 0
- Default location is /usr/local/lib/uhd/examples
![Page 29: A Hands-On Introduction to SDR with USRP and GNU Radiofiles.meetup.com/18094742/Presentation_Cyberspectrum_20160203_G… · A Hands-On Introduction to SDR with USRP and GNU Radio](https://reader033.fdocuments.in/reader033/viewer/2022042503/5aad2bad7f8b9aa9488dea7b/html5/thumbnails/29.jpg)
Verifying USRP using UHD
29
./rx_ascii_art_dft --args “addr=192.168.10.2” --freq 98e6 --rate 5e6 --gain 20 --bw 5e6 --ref-lvl -50
![Page 30: A Hands-On Introduction to SDR with USRP and GNU Radiofiles.meetup.com/18094742/Presentation_Cyberspectrum_20160203_G… · A Hands-On Introduction to SDR with USRP and GNU Radio](https://reader033.fdocuments.in/reader033/viewer/2022042503/5aad2bad7f8b9aa9488dea7b/html5/thumbnails/30.jpg)
Verifying USRP using UHD
30
To benchmark your interface: ./benchmark_rate --rx_rate 10e6 --tx_rate 10e6
![Page 31: A Hands-On Introduction to SDR with USRP and GNU Radiofiles.meetup.com/18094742/Presentation_Cyberspectrum_20160203_G… · A Hands-On Introduction to SDR with USRP and GNU Radio](https://reader033.fdocuments.in/reader033/viewer/2022042503/5aad2bad7f8b9aa9488dea7b/html5/thumbnails/31.jpg)
Verifying USRP using UHD
31
./rx_samples_to_file --args=”addr=192.168.10.2” --freq 98e6 --gain 20 --rate 5e6 usrp_samples.dat
![Page 32: A Hands-On Introduction to SDR with USRP and GNU Radiofiles.meetup.com/18094742/Presentation_Cyberspectrum_20160203_G… · A Hands-On Introduction to SDR with USRP and GNU Radio](https://reader033.fdocuments.in/reader033/viewer/2022042503/5aad2bad7f8b9aa9488dea7b/html5/thumbnails/32.jpg)
Verifying USRP using UHD
32
./tx_samples_from_file --args=”addr=192.168.10.2” --freq 915e6 --rate 5e6 --gain 0 usrp_samples.dat
![Page 33: A Hands-On Introduction to SDR with USRP and GNU Radiofiles.meetup.com/18094742/Presentation_Cyberspectrum_20160203_G… · A Hands-On Introduction to SDR with USRP and GNU Radio](https://reader033.fdocuments.in/reader033/viewer/2022042503/5aad2bad7f8b9aa9488dea7b/html5/thumbnails/33.jpg)
Using UHD API from C++
33
#include <uhd/utils/thread_priority.hpp>#include <uhd/utils/safe_main.hpp>#include <uhd/usrp/multi_usrp.hpp>#include <uhd/exception.hpp>#include <uhd/types/tune_request.hpp>#include <boost/program_options.hpp>#include <boost/format.hpp>#include <boost/thread.hpp>#include <iostream>
int UHD_SAFE_MAIN(int argc, char *argv[]) {
...
return EXIT_SUCCESS;}
![Page 34: A Hands-On Introduction to SDR with USRP and GNU Radiofiles.meetup.com/18094742/Presentation_Cyberspectrum_20160203_G… · A Hands-On Introduction to SDR with USRP and GNU Radio](https://reader033.fdocuments.in/reader033/viewer/2022042503/5aad2bad7f8b9aa9488dea7b/html5/thumbnails/34.jpg)
Using UHD API from C++
34
int UHD_SAFE_MAIN(int argc, char *argv[]) { uhd::set_thread_priority_safe();
std::string device_args("addr=192.168.10.2"); std::string subdev("A:0"); std::string ant("TX/RX"); std::string ref("internal");
double rate(1e6); double freq(915e6); double gain(10);
//create a usrp device std::cout << std::endl; std::cout << boost::format("Creating the usrp device with: %s...") % device_args << std::endl; uhd::usrp::multi_usrp::sptr usrp = uhd::usrp::multi_usrp::make(device_args);
// Lock mboard clocks std::cout << boost::format("Lock mboard clocks: %f") % ref << std::endl; usrp->set_clock_source(ref);
![Page 35: A Hands-On Introduction to SDR with USRP and GNU Radiofiles.meetup.com/18094742/Presentation_Cyberspectrum_20160203_G… · A Hands-On Introduction to SDR with USRP and GNU Radio](https://reader033.fdocuments.in/reader033/viewer/2022042503/5aad2bad7f8b9aa9488dea7b/html5/thumbnails/35.jpg)
Using UHD API from C++
35
//always select the subdevice first, the channel mapping affects the other settings std::cout << boost::format("subdev set to: %f") % subdev << std::endl; usrp->set_rx_subdev_spec(subdev); std::cout << boost::format("Using Device: %s") % usrp->get_pp_string() << std::endl;
//set the sample rate if (rate <= 0.0) { std::cerr << "Please specify a valid sample rate" << std::endl; return ~0; }
// set sample rate std::cout << boost::format("Setting RX Rate: %f Msps...") % (rate / 1e6) << std::endl; usrp->set_rx_rate(rate); std::cout << boost::format("Actual RX Rate: %f Msps...") % (usrp->get_rx_rate() / 1e6) << std::endl << std::endl;
// set freq std::cout << boost::format("Setting RX Freq: %f MHz...") % (freq / 1e6) << std::endl; uhd::tune_request_t tune_request(freq); usrp->set_rx_freq(tune_request); std::cout << boost::format("Actual RX Freq: %f MHz...") % (usrp->get_rx_freq() / 1e6) << std::endl << std::endl;
![Page 36: A Hands-On Introduction to SDR with USRP and GNU Radiofiles.meetup.com/18094742/Presentation_Cyberspectrum_20160203_G… · A Hands-On Introduction to SDR with USRP and GNU Radio](https://reader033.fdocuments.in/reader033/viewer/2022042503/5aad2bad7f8b9aa9488dea7b/html5/thumbnails/36.jpg)
Using UHD API from C++
36
// set the rf gain std::cout << boost::format("Setting RX Gain: %f dB...") % gain << std::endl; usrp->set_rx_gain(gain); std::cout << boost::format("Actual RX Gain: %f dB...") % usrp->get_rx_gain() << std::endl << std::endl;
// set the antenna std::cout << boost::format("Setting RX Antenna: %s") % ant << std::endl; usrp->set_rx_antenna(ant); std::cout << boost::format("Actual RX Antenna: %s") % usrp->get_rx_antenna() << std::endl << std::endl;
return EXIT_SUCCESS;}
To build, use the file uhd/host/examples/CMakeLists.txt as a template, put into empty folder, add the name of source file to the list defined by SET(example_sources , and build with CMake
![Page 37: A Hands-On Introduction to SDR with USRP and GNU Radiofiles.meetup.com/18094742/Presentation_Cyberspectrum_20160203_G… · A Hands-On Introduction to SDR with USRP and GNU Radio](https://reader033.fdocuments.in/reader033/viewer/2022042503/5aad2bad7f8b9aa9488dea7b/html5/thumbnails/37.jpg)
- sudo apt-get install wireshark- Run as root. At the prompt type: sudo wireshark- Select proper network interface from list (usually eth0) and click Start icon- uhd_find_devices uses broadcast packets to find all USRP devices on network- Be careful, host firewall (iptables) or switch/router may block broadcast packets- X300 / X310 emit gratuitous ARP packets showing IP address every 6 seconds
Debugging USRP with Wireshark
37
![Page 38: A Hands-On Introduction to SDR with USRP and GNU Radiofiles.meetup.com/18094742/Presentation_Cyberspectrum_20160203_G… · A Hands-On Introduction to SDR with USRP and GNU Radio](https://reader033.fdocuments.in/reader033/viewer/2022042503/5aad2bad7f8b9aa9488dea7b/html5/thumbnails/38.jpg)
- Open-source framework for SDR and signal processing
- Founded by Eric Blossom in 2001
- Project leader Tom Rondeau
- Block-based dataflow architecture
- Each block runs in its own thread
- Similar to Simulink
- Hosted on Github at https://github.com/gnuradio
- Homepage is http://gnuradio.org/
GNU Radio
38
![Page 39: A Hands-On Introduction to SDR with USRP and GNU Radiofiles.meetup.com/18094742/Presentation_Cyberspectrum_20160203_G… · A Hands-On Introduction to SDR with USRP and GNU Radio](https://reader033.fdocuments.in/reader033/viewer/2022042503/5aad2bad7f8b9aa9488dea7b/html5/thumbnails/39.jpg)
1. sudo apt-get install libfontconfig1-dev libxrender-dev libpulse-dev swig g++ automake autoconf libtool python-dev libfftw3-dev libcppunit-dev libboost-all-dev libusb-dev libusb-1.0-0-dev fort77 libsdl1.2-dev python-wxgtk2.8 git-core libqt4-dev python-numpy ccache python-opengl libgsl0-dev python-cheetah python-mako python-lxml doxygen qt4-default qt4-dev-tools libusb-1.0-0-dev libqwt5-qt4-dev libqwtplot3d-qt4-dev pyqt4-dev-tools python-qwt5-qt4 cmake git-core wget libxi-dev python-docutils gtk2-engines-pixbuf r-base-dev python-tk liborc-0.4-0 liborc-0.4-dev libasound2-dev python-gtk2 libzmq1 libzmq-dev python-requests
2. git clone --recursive https://github.com/gnuradio/gnuradio.git3. cd gnuradio4. git checkout v3.7.95. mkdir build && cd build6. cmake ../7. make -j48. sudo make install9. sudo ldconfig
GNU Radio Installation - Source Code
39
![Page 40: A Hands-On Introduction to SDR with USRP and GNU Radiofiles.meetup.com/18094742/Presentation_Cyberspectrum_20160203_G… · A Hands-On Introduction to SDR with USRP and GNU Radio](https://reader033.fdocuments.in/reader033/viewer/2022042503/5aad2bad7f8b9aa9488dea7b/html5/thumbnails/40.jpg)
- PyBOMBS- Python Build Overlay Managed Bundle System
- Package management tool for GNU Radio, similar to RPM and pip
- New version 2 just released
- http://www.pybombs.info/
- The build-gnuradio script
- From Marcus Leech at SBRAC
- wget http://www.sbrac.org/files/build-gnuradio && chmod a+x ./build-gnuradio && .
/build-gnuradio
- Launchpad PPA
- Old version, do not use
- GR 3.7.2.1 current package on Ubuntu 14.04
- GR 3.7.8 current package on Ubuntu 15.10
GNU Radio Installation - Alternatives
40
![Page 41: A Hands-On Introduction to SDR with USRP and GNU Radiofiles.meetup.com/18094742/Presentation_Cyberspectrum_20160203_G… · A Hands-On Introduction to SDR with USRP and GNU Radio](https://reader033.fdocuments.in/reader033/viewer/2022042503/5aad2bad7f8b9aa9488dea7b/html5/thumbnails/41.jpg)
Verifying USRP using GNU Radio
41
uhd_fft --args “addr=192.168.10.2” --freq 100e6 -s 10e6 -g 20
![Page 42: A Hands-On Introduction to SDR with USRP and GNU Radiofiles.meetup.com/18094742/Presentation_Cyberspectrum_20160203_G… · A Hands-On Introduction to SDR with USRP and GNU Radio](https://reader033.fdocuments.in/reader033/viewer/2022042503/5aad2bad7f8b9aa9488dea7b/html5/thumbnails/42.jpg)
Verifying USRP using GNU Radio
42
uhd_siggen --args “addr=192.168.10.2” --freq 915e6 -g 0
![Page 43: A Hands-On Introduction to SDR with USRP and GNU Radiofiles.meetup.com/18094742/Presentation_Cyberspectrum_20160203_G… · A Hands-On Introduction to SDR with USRP and GNU Radio](https://reader033.fdocuments.in/reader033/viewer/2022042503/5aad2bad7f8b9aa9488dea7b/html5/thumbnails/43.jpg)
Verifying USRP using GNU Radio
43
uhd_siggen_gui --args “addr=192.168.10.2” --freq 3025e6 -g 0
![Page 44: A Hands-On Introduction to SDR with USRP and GNU Radiofiles.meetup.com/18094742/Presentation_Cyberspectrum_20160203_G… · A Hands-On Introduction to SDR with USRP and GNU Radio](https://reader033.fdocuments.in/reader033/viewer/2022042503/5aad2bad7f8b9aa9488dea7b/html5/thumbnails/44.jpg)
1. Open a terminal window using: Start > Search: Terminal
At the terminal prompt type: gnuradio-companion
Using gnuradio-companion (1)
44
![Page 45: A Hands-On Introduction to SDR with USRP and GNU Radiofiles.meetup.com/18094742/Presentation_Cyberspectrum_20160203_G… · A Hands-On Introduction to SDR with USRP and GNU Radio](https://reader033.fdocuments.in/reader033/viewer/2022042503/5aad2bad7f8b9aa9488dea7b/html5/thumbnails/45.jpg)
Explain the color-coded meaning of data types for ports on blocks
Using gnuradio-companion (2)
45
Help -> Types
Hot keys:
- Up/Down arrows change data type- E/D keys enable/disable blocks
![Page 46: A Hands-On Introduction to SDR with USRP and GNU Radiofiles.meetup.com/18094742/Presentation_Cyberspectrum_20160203_G… · A Hands-On Introduction to SDR with USRP and GNU Radio](https://reader033.fdocuments.in/reader033/viewer/2022042503/5aad2bad7f8b9aa9488dea7b/html5/thumbnails/46.jpg)
Using gnuradio-companion (3)
46
![Page 47: A Hands-On Introduction to SDR with USRP and GNU Radiofiles.meetup.com/18094742/Presentation_Cyberspectrum_20160203_G… · A Hands-On Introduction to SDR with USRP and GNU Radio](https://reader033.fdocuments.in/reader033/viewer/2022042503/5aad2bad7f8b9aa9488dea7b/html5/thumbnails/47.jpg)
Using gnuradio-companion (4)
47
![Page 48: A Hands-On Introduction to SDR with USRP and GNU Radiofiles.meetup.com/18094742/Presentation_Cyberspectrum_20160203_G… · A Hands-On Introduction to SDR with USRP and GNU Radio](https://reader033.fdocuments.in/reader033/viewer/2022042503/5aad2bad7f8b9aa9488dea7b/html5/thumbnails/48.jpg)
Basic GRC Flowgraph (1)
48
![Page 49: A Hands-On Introduction to SDR with USRP and GNU Radiofiles.meetup.com/18094742/Presentation_Cyberspectrum_20160203_G… · A Hands-On Introduction to SDR with USRP and GNU Radio](https://reader033.fdocuments.in/reader033/viewer/2022042503/5aad2bad7f8b9aa9488dea7b/html5/thumbnails/49.jpg)
Basic GRC Flowgraph (1)
49
![Page 50: A Hands-On Introduction to SDR with USRP and GNU Radiofiles.meetup.com/18094742/Presentation_Cyberspectrum_20160203_G… · A Hands-On Introduction to SDR with USRP and GNU Radio](https://reader033.fdocuments.in/reader033/viewer/2022042503/5aad2bad7f8b9aa9488dea7b/html5/thumbnails/50.jpg)
Basic GRC Flowgraph (2)
50
![Page 51: A Hands-On Introduction to SDR with USRP and GNU Radiofiles.meetup.com/18094742/Presentation_Cyberspectrum_20160203_G… · A Hands-On Introduction to SDR with USRP and GNU Radio](https://reader033.fdocuments.in/reader033/viewer/2022042503/5aad2bad7f8b9aa9488dea7b/html5/thumbnails/51.jpg)
Basic GRC Flowgraph (3)
51
![Page 52: A Hands-On Introduction to SDR with USRP and GNU Radiofiles.meetup.com/18094742/Presentation_Cyberspectrum_20160203_G… · A Hands-On Introduction to SDR with USRP and GNU Radio](https://reader033.fdocuments.in/reader033/viewer/2022042503/5aad2bad7f8b9aa9488dea7b/html5/thumbnails/52.jpg)
Using GNU Radio from Python
52
Generate Python from GRC Flow graph
>>> from gnuradio import gr>>> ...
Invoke directly from the Linux command line:$ python example_3.py
![Page 53: A Hands-On Introduction to SDR with USRP and GNU Radiofiles.meetup.com/18094742/Presentation_Cyberspectrum_20160203_G… · A Hands-On Introduction to SDR with USRP and GNU Radio](https://reader033.fdocuments.in/reader033/viewer/2022042503/5aad2bad7f8b9aa9488dea7b/html5/thumbnails/53.jpg)
Using GNU Radio from Python
53
![Page 54: A Hands-On Introduction to SDR with USRP and GNU Radiofiles.meetup.com/18094742/Presentation_Cyberspectrum_20160203_G… · A Hands-On Introduction to SDR with USRP and GNU Radio](https://reader033.fdocuments.in/reader033/viewer/2022042503/5aad2bad7f8b9aa9488dea7b/html5/thumbnails/54.jpg)
- GNU Radio Wiki- https://gnuradio.org/redmine/projects/gnuradio/wiki
- Local files at /usr/local/share/doc/gnuradio-3.7.9
- USRP and UHD Manual- http://files.ettus.com/manual/
- Local files at /usr/local/share/doc/uhd/doxygen/html
- Suggested Reading- http://gnuradio.org/redmine/projects/gnuradio/wiki/SuggestedReading
- IRC Freenode #gnuradio on irc.freenode.net
Additional Resources
54
![Page 55: A Hands-On Introduction to SDR with USRP and GNU Radiofiles.meetup.com/18094742/Presentation_Cyberspectrum_20160203_G… · A Hands-On Introduction to SDR with USRP and GNU Radio](https://reader033.fdocuments.in/reader033/viewer/2022042503/5aad2bad7f8b9aa9488dea7b/html5/thumbnails/55.jpg)
- discuss-gnuradio mailing list- https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
- usrp-users mailing list- http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
- IRC Freenode #usrp on irc.freenode.net
Getting Technical Support
55