MAVLINKHUD

ELRS Foundations: LoRa & CSS Physics

Executive Summary

ExpressLRS (ELRS) represents a paradigm shift from traditional FSK (Frequency Shift Keying) radios. It utilizes LoRa (Long Range) modulation, a technology originally designed for low-power IoT devices. By trading bitrate for sensitivity, ELRS achieves link budgets that were previously impossible for hobbyist gear, allowing for reliable control at 100km+ ranges or deep penetration through concrete.

Theory & Concepts

1. Chirp Spread Spectrum (CSS)

Traditional radios transmit on a single frequency (Carrier). LoRa transmits a Chirp—a signal that sweeps across a bandwidth (e.g., 500kHz) over time.

  • The Sweep: The chirp starts at a low frequency and sweeps to high (Up-Chirp) or vice-versa.
  • The Symbol: Data is encoded by the starting point of the sweep.
  • Interference Immunity: Narrowband noise (like Wifi) only corrupts a tiny slice of the chirp. The receiver can reconstruct the whole symbol from the remaining clean chirp. This allows LoRa to decode signals that are below the noise floor.

2. Spreading Factor (SF)

The "Spreading Factor" determines the duration of the chirp.

  • SF5-7 (Fast): Short chirps. High data rate (500Hz). Lower range (-105 dBm).
  • SF9-12 (Slow): Long chirps. Low data rate (50Hz). Extreme range (-123 dBm).
  • The Trade-off: Every step up in SF doubles the time-on-air (latency) but adds ~3dB of sensitivity (double the range).

3. Orthogonality

Different Spreading Factors are orthogonal. A receiver listening for SF7 (500Hz) is completely blind to SF12 (50Hz) signals, even on the same frequency. This allows multiple ELRS systems to coexist or for the system to switch modes dynamically.

Architecture (The Engineer's View)

1. The Hardware Layer

ELRS runs on Semtech transceivers.

  • SX1280 (2.4GHz): Optimized for racing. High bandwidth, lower range.
  • SX1276 (900MHz): Optimized for penetration. Low bandwidth, extreme range.

2. The Packet Structure

ELRS strips away all legacy bloat.

  • No Headers: Packet length is fixed for a given rate.
  • Seed-CRC: The Binding Phrase acts as a seed for the CRC. If you don't have the phrase, the CRC fails, and the packet is discarded. This eliminates the need for a "Receiver ID" in the packet header, saving bytes.

Key Parameters

  • Packet Rate: 50Hz to 1000Hz.
  • Telemetry Ratio: 1:2 to 1:128.
  • Switch Mode: Hybrid vs Wide.

Source Code Reference