This learning path is designed for engineers who are familiar with software-defined radio (SDR) wireless concepts and digital signal processing (DSP) and want hands-on training using open source tools on a USRP. The course includes three programming tool-chain options, GNU Radio, C++, and/or Python. By the end of the learning path a student will be able to set up a fresh SDR development system with the tools they need to build a basic SDR wireless application with a USRP and open-source tools.
Virtual training not available for this course
Classroom training not available for this course
Private Classes not available for this course
Building the USRP Hardware Driver (UHD) from source and installing it to prepare for SDR application development
Connecting your USRP via USB Port or Ethernet, confirm that you can communicate with your USRP, and verify basic functionality to confirm your installation was successful
Setting up GNU radio on your SDR system by cloning the GIT Hub repository, building GNU Radio from source and installing on your SDR development machine
Explaining the elements of the GNU Radio Framework, GNU Radio Companion, and key GNU Radio Options blocks
Building your first program in GNU Radio, beginning with throttle blocks and proceeding through transmitting, receiving and demodulating modulated signals
On-Demand: 4 hours
USRP users from ADG customers
Academia
Open-Source RF developers
Basic RF knowledge
Linux, Github, Source Code build experience
Experience in Python and/or C++
Basic FPGA knowledge (RFNoC only)
UHD, C++ API, Python API
Xilinx Vivado Design Suite
GNU Radio, RFNoC
Set of Laptops (1 per user) preconditioned with Linux or Windows
Set of USRPs (1 per user), currently X310 with daughtercards
Network cables and adapters
RF cables and adapters
On-demand training includes digital course materials delivered through the NI Learning Center, available for the access duration of your subscription
| Lesson | Overview | Topics |
|---|---|---|
Setting Up and Optimizing SDR Streaming Applications | By the end of this module, you should have the skills and confidence to sync, build, and install UHD on your system. |
|
Communicating with Your USB Connected USRP | By the end of this module, you should understand the ways to use UHD to identify and communicate with your USB USRP. |
|
Setting up GNU Radio on Your SDR System | By the end of this module, you should have the skills and confidence to sync, build, and install the latest GNU Radio Framework on your system. |
|
Verify Your GNU Radio Installation | By the end of this module, you should have a basic understanding of the GNU Radio installation and run a simple FM radio example on your system. |
|
Using GNU Radio from the Command Line | By the end of this module, you should have familiarity with using UHD from the Linux command line. |
|
Introduction to Key Elements of the GNU Radio Framework | By the end of this module, you should have a fundamental understanding of GNU Radio and be able to identify the components of the environment. |
|
GNU Radio Environment - Terminology and Important Blocks | By the end of this module, you will understand how GNU Radio passes data through the Flowgraph and how to set the options block for your application. |
|
Throttle Blocks and Data Types | By the end of this module, you should be able to understand how GNU Radio passes data through the flowgraph and how and when to use a throttle block with and without hardware. |
|
Unmodulated Transmitter | By the end of this module, you should have the skills to create a basic flowgraph using a USRP as a transmitter. |
|
Generating Python Code | By the end of this module, you should have the skills to generate Python code from GNU Radio. |
|
Unmodulated Loopback | By the end of this module, you should have the skills to perform wireless loopback with your USRP. |
|
Visualization and UI | By the end of this module, you should have the skills to create a flowgraph that controls a USRP in loopback with GUI user controls. |
|
Modulated Transmission | By the end of this module, you should have the skills to locate and use example code to create a modulated transmission. |
|
Modulated Loopback | By the end of this module, you should have the skills to create a simple unidirectional communication system in loopback with your USRP and GNU Radio. |
|
Finding and Using IP | By the end of this module, you can locate GNU Radio Out-Of-Tree Modules. |
|
Building an FM Transmitter | By the end of this module, you should have the skills to find OOT modules and load an example. |
|
Building an FM Receiver | By the end of this module, you will be able to use gr-rds with and without hardware. |
|
Building Custom Blocks | By the end of this module, you will be able to create an OOT module using Python. |
|
Programming Your USRP with C++ | By the end of this module, you will have the skills to find C++ examples for your USRP. |
|
Building Your First USRP Program with C++ | By the end of this module, you will have the skills to build a simple C++ program for your USRP. |
|
Programming Your USRP with Python | By the end of this module, you should have the skills to find Python example programs for your USRP. |
|
Building Your First USRP Program with Python | By the end of this module, you will have the skills to modify a simple Python program for your USRP. |
|
Understanding and Configuring Parameters on Your USRP | By the end of this module, you will have the skills to calculate the bandwidth of your USRP system, as also to select the right streaming interface, appropriate gain and antenna settings for your USRP. You will be able to find onboard device information of your USRP through the command line. |
|
Setting Up and Optimizing SDR Streaming Applications | By the end of this module, you will have the skills to determine requirements for a high-performance streaming application. |
|
When and Why, You Should Think About Performance Tuning | By the end of this module, you will have a deeper understanding of performance tuning. |
|
Types of Performance Tuning and Available Documentation & Tips | By the end of this module, you will have the skills to find resources on how to tune your system for performance. By the end of this module, you will have the skills to find resources on how to tune your system for performance. |
|
Debugging Your SDR Streaming Application | By the end of this module, you will have the skills to debug simple issues in your SDR streaming application and know where to look for help. By the end of this module, you will have the skills to find resources on how to tune your system for performance. |
|
Recovering a Bricked USRP | By the end of this module, you should have the skills to recover a bricked USRP. By the end of this module, you will have the skills to find resources on how to tune your system for performance. |
|
If you are planning to take three or more NI instructor-led courses within one year, a Training Membership provides cost-effective, unlimited access to all NI public classroom and public virtual courses, along with unlimited certification vouchers.