Software-Defined Radio and LoRa Analysis

6 hours (two 3-hour sessions) HackRF H4M provided Free -- fortnightly in the L-A area

Learning Objectives

  1. Explain what SDR is and how it differs from traditional radio
  2. Use an SDR to observe the 915 MHz ISM band
  3. Identify LoRa transmissions on a waterfall display
  4. Understand FCC Part 15 rules for 915 MHz
  5. Set up GNU Radio with gr-lora_sdr for LoRa analysis
  6. Build a LoRa protocol analysis flowgraph

Session 1: SDR Fundamentals (3 hours)

Part 1: SDR Fundamentals (30 min)

Sampling, Nyquist theorem, quadrature (I/Q), dynamic range. Traditional radio uses fixed hardware filters; SDR does filtering in software.

Part 2: FCC Part 15.247 (20 min)

ParameterLimit
Max conducted power30 dBm (1W)
Max EIRP (with antenna)36 dBm (4W)
Frequency902-928 MHz ISM
ModulationSpread spectrum required

Part 3: Live Spectrum Observation (45 min)

RTL-SDR waterfall of 915 MHz band. Identify LoRa chirps, WiFi, and other ISM traffic.

Part 4: LoRa Signal Anatomy (30 min)

Chirp structure, preamble, spreading factors (SF7-SF12), bandwidth, coding rate, time-on-air calculations.

Part 5: GNU Radio + gr-lora_sdr (45 min)

Build a receive flowgraph: RTL-SDR Source -> Channel Filter -> gr-lora Demodulator -> Message Debug.

Part 6: RF Troubleshooting (30 min)

Link budget: TX power + TX antenna gain - path loss + RX antenna gain = received power. Compare against receiver sensitivity.

Session 2: Advanced Topics (3 hours)

Part 7: LoRa Protocol Analysis with GNURadio (45 min)

ToolSourceNotes
gr-lora_sdr v0.5.8EPFL (Tapparel)Full TX/RX, best documented
Meshtastic_SDRCommunityReceives all US presets simultaneously

Exercise: Build a receive flowgraph, capture packets from a known Meshtastic transmission, and observe why encrypted payloads look random (AES-256 working correctly).

TEMPEST and Emanation Security

Electromagnetic side-channel analysis is covered in a dedicated workshop: TEMPEST and Emanation Security.

LA-Mesh - Community LoRa mesh network for Southern Maine

GitHub