Using Open-Source Tools with USRP Hardware for SDR Applications Course Overview

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.

Available formats

 

Virtual training not available for this course

 

Classroom training not available for this course

 

Private Classes not available for this course

Course Objectives

Course Details

Duration

Audience

Prerequisites

NI Products Used

Training Materials

Using Open-Source Tools with USRP Hardware for SDR Applications Course Outline

LessonOverviewTopics

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.

  • Exploring USRP Hardware Driver Install Options
  • Setting Up Open Source HW Drivers on your SDR System
  • UHD Repository Cloning and Building from Source

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.

  • Exploring various ways, you can identify a USRP
  • Configuring your USB USRP
  • Communicating 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.

  • Introduction to GNU Radio
  • Where to Find Resources
  • GNU Radio Repository Cloning and Building from Source

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.

  • Going through GNU Radio folders
  • Running a simple FM Radio Receiver Example

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.

  • Installing GNU Radio
  • Exploring example programs
  • Demonstrating dial tone & UHD FFT programs from the 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.

  • Understand GNU Radio under the hood?
  • Identify the components of the GNU Radio 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.

  • Exploring the Options Block in GNU Radio
  • Understanding the difference between "samp_rate" and the sample rate of the hardware itself

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.

  • Using the GNU Radio Throttle block
  • Understanding the dataflow and how the data types are represented in GNU Radio
  • Writing your first flowgraph

Unmodulated Transmitter

By the end of this module, you should have the skills to create a basic flowgraph using a USRP as a transmitter.

  • Finding and connecting blocks
  • Building a basic unmodulated transmitter using UHD Sink with your USRP

Generating Python Code

By the end of this module, you should have the skills to generate Python code from GNU Radio.

  • Generating Python code from GNU Radio
  • Exploring generated Python code

Unmodulated Loopback

By the end of this module, you should have the skills to perform wireless loopback with your USRP.

  • UHD Source and Sink in GNU Radio
  • Wireless Loopback with 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.

  • Exploring various signal visualization and control elements with pre-installed QT blocks in GNU Radio
  • Demonstrating signal visualization tools (Time, Freq, IQ, Waterfall)

Modulated Transmission

By the end of this module, you should have the skills to locate and use example code to create a modulated transmission.

  • Adding a QAM Decoder/Receiver to the Flowgraph in the previous module
  • Creating a Modulated Loopback Communication System

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.

  • Creating a Single Tone Transmitter
  • Transmitting Basic Modulated Signals (QPSK and QAM)

 

Finding and Using IP

By the end of this module, you can locate GNU Radio Out-Of-Tree Modules.

  • Finding Useful GNU Radio Out-Of-Tree Modules
  • Syncing Gr-RDS to your local machine from GIT HUB

Building an FM Transmitter

By the end of this module, you should have the skills to find OOT modules and load an example.

  • Building and installing GNU Radio Out-Of-Tree modules
  • Building the gr-rds module from source and installing it on your SDR system

Building an FM Receiver

By the end of this module, you will be able to use gr-rds with and without hardware.

  • Building an FM Receiver using gr-rds Out-Of-Tree Module

Building Custom Blocks

By the end of this module, you will be able to create an OOT module using Python.

  • Creating your own GNU Radio Out-Of-Tree Modules

Programming Your USRP with C++

By the end of this module, you will have the skills to find C++ examples for your USRP.

  • Exploring UHD C++ API
  • Running an example of C++ Program 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.

  • Creating and Building a UHD Program

Programming Your USRP with Python

By the end of this module, you should have the skills to find Python example programs for your USRP.

  • UHD/GNU Radio Python API Overview
  • Generating Python from GNU Radio
  • Running an example Python Program

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.

  • Starting Points
  • Comparing the Methodologies

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.

  • Understanding Sampling Rates and Bandwidths on your USRP
  • Configuring Sampling Rates and Bandwidths on your USRP
  • Understanding Data Transfer Rates on your USRP
  • Configuring Data Transfer Rates on your USRP
  • Understanding Gain Settings on your USRP
  • Configuring Gain Settings on your USRP
  • Understanding Antenna Settings on your USRP
  • Configuring Antenna Settings on your USRP
  • Accessing Device Information through Onboard Storage

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.

  • Configuring Host System
  • Exploring Performance Tuning

When and Why, You Should Think About Performance Tuning

By the end of this module, you will have a deeper understanding of performance tuning.

  • Finding bottlenecks
  • Determine where your bottleneck is

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.

  • Exploring Operating System (OS) performance tuning
  • Physical interface monitoring and tweaking
  • Using Data Plane Development Kit (DPDK)
  • Finding resources

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.

  • Flow Control Errors
  • Installing the Wireshark dissector
  • Using Wireshark to view USRP traffic

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.

  • Identifying if your USRP is bricked
  • Recovering a bricked USRP
  • Finding Resources

 

Upgrade to Membership

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.