📡

Introduction to Software Defined Radio

Mar 8, 2025

Software Defined Radio with HackRF, Lesson One

Introduction

  • Presenter: Michael Ossmann from Great Scott Gadgets
  • Topic: Introduction to Software Defined Radio (SDR) using HackRF
  • Purpose: Course aimed at teaching SDR through a series of videos focusing on digital signal processing and radio functions

Overview of Software Defined Radio (SDR)

  • Definition: Use of digital signal processing to implement radio functions
  • Capabilities: Create transmitters or receivers for any radio signal using software with hardware like HackRF and a computer

HackRF One

  • Description: A Software Defined Radio peripheral that connects via USB
  • Functions: Transmit and receive signals over a wide range of frequencies
  • Comparison: Similar to a sound card but for radio signals

Course Background

  • Origin: Derived from a two-day class taught at information security conferences
  • Approach: Focus on introducing SDR, probing the security of radio systems
  • Audience: Geared towards those interested in SDR, not limited to security professionals
  • Teaching Style: Informal, open content, available online

Course Structure

  • Website: greatscottgadgets.com/sdr
    • Content: Videos, text, exercises, and corrections
  • Tools Used:
    • GNU Radio Companion (GRC): A graphical user interface for GNU Radio
    • GNU Radio: Allows creation of software radio programs
  • Focus: Fundamentals of digital signal processing, HackRF as primary hardware tool

Lesson One: Building an FM Radio Receiver

Exercise Overview

  • Objective: Create an FM radio receiver using GNU Radio Companion
  • Steps:
    1. Set Up: Use osmocom source block to enable the HackRF to receive mode and stream samples
    2. Visualization: Use WX GUI FFT sync to visualize frequency components
    3. Configurations: Adjust sample rate, frequency, and gain settings in GNU Radio
    4. Flow Graph Execution: Generate Python code and execute to visualize live radio data

Advanced Flow Graph Adjustments

  • Filters: Add low pass filter, set cutoff frequency, transition width
  • Resampling: Use rational resampler for sample rate adjustments
  • Demodulation: Use wbfm receive block to convert radio signals to audio
  • Audio Output: Use audio sync to output sound

User Interface Enhancements

  • Volume Control: Add WX GUI slider for real-time audio gain adjustment
  • Channel Tuning: Suggest adding a slider for real-time channel frequency adjustment

Performance Considerations

  • Optimization: Adjust sampling rates based on hardware capabilities
  • Troubleshooting: Address issues with CPU load and USB interface speed

Homework

  • Tasks:
    • Try out Pentoo Linux
    • Replicate the flow graph
    • Add a GUI slider for channel frequency
    • Listen to two radio stations simultaneously
  • Resources: Homework details and hints available on the course website

Conclusion

  • Next Steps: Anticipate lesson two
  • Note: Corrections and additional resources will be posted on the course website.

  • Key takeaway: This lesson provides a hands-on introduction to building an FM radio receiver, enhancing understanding of SDR and GRC.