Software-Defined Radio and LoRa Analysis
Learning Objectives
- Explain what SDR is and how it differs from traditional radio
- Use an SDR to observe the 915 MHz ISM band
- Identify LoRa transmissions on a waterfall display
- Understand FCC Part 15 rules for 915 MHz
- Set up GNU Radio with gr-lora_sdr for LoRa analysis
- 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)
| Parameter | Limit |
|---|---|
| Max conducted power | 30 dBm (1W) |
| Max EIRP (with antenna) | 36 dBm (4W) |
| Frequency | 902-928 MHz ISM |
| Modulation | Spread 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)
| Tool | Source | Notes |
|---|---|---|
| gr-lora_sdr v0.5.8 | EPFL (Tapparel) | Full TX/RX, best documented |
| Meshtastic_SDR | Community | Receives 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.