Skip to main content

Using an SDR for 915 MHz Band Analysis

A Software Defined Radio (SDR) is one of the most useful tools for mesh network operators: it lets you visualize the actual RF environment your nodes operate in, identify interference sources, and verify that your nodes are transmitting on the correct frequencies.

Getting Started with RTL-SDR

The RTL-SDR (RTL2832U based USB dongle) is the most accessible SDR for mesh operators:

  • Cost: $25-35 for an RTL-SDR Blog V4 (the current recommended version)
  • Coverage: 500 kHz to 1750 MHz - covers the entire 902-928 MHz ISM band
  • Software: SDR# (Windows), GQRX (Linux/Mac), SDRangel (cross-platform)
  • Antenna: The included whip antenna works at 915 MHz; a dedicated 915 MHz antenna improves sensitivity
# Install SDR# on Windows:
# Download from airspy.com/download, extract, run SDRSharp.exe

# GQRX on Ubuntu:
sudo apt install gqrx-sdr

Configuring SDR# for 915 MHz Observation

  1. Set center frequency to 915,000,000 Hz (915 MHz)
  2. Set sample rate to 2.4 MHz (to view 900-928 MHz range)
  3. Enable WFM or Raw I/Q mode (you're looking at signal presence, not decoding)
  4. Enable the spectrum analyzer and waterfall displays
  5. Set FFT size to 32768 for high resolution

The waterfall shows frequency (horizontal) vs. time (vertical, scrolling). Each LoRa transmission appears as a faint chirp pattern - rising or falling tones, typically 125-500 kHz wide.

What to Look For

Normal LoRa Activity

LoRa transmissions are characterized by chirp spread spectrum - the signal appears as a diagonal streak in the waterfall (rising chirp = upchirp, falling = downchirp). A healthy mesh network shows occasional bursts of activity at the configured center frequency.

Interference Sources

  • Constant carrier (narrow spike): Could be a CW interferer, oscillator leakage, or a malfunctioning device
  • Wide noise floor increase: Could be FHSS device (900 MHz cordless phone), wideband noise from switching power supply
  • Pulsed narrowband: Smart meter AMI networks (itron, Landis+Gyr) often operate in 902-928 MHz; appears as regular narrow pulses
  • Broadband hash: Arc welders, brush motors, and variable-speed drives produce broadband electrical noise that raises the noise floor broadly

Measuring Channel Utilization Empirically

SDR# can be used to empirically measure how busy your mesh channel is:

  1. Tune to your network's center frequency
  2. Record 10-15 minutes of waterfall data
  3. Count the number of LoRa packet events per minute
  4. Estimate channel occupancy: at 250 kbps effective bitrate, a typical 50-byte LoRa packet at SF9 occupies about 750ms. 10 packets/min = 12.5% channel occupancy.

The Meshtastic app also reports channel utilization in the Radio Config screen - check this first before breaking out the SDR. The SDR is most useful when you suspect non-LoRa interference.