Skip to content
Published On:
Oct 21, 2026
Last Updated:
Oct 27, 2026

LoRa (short for long range) is a low-power wireless modulation technique developed by Semtech, typically used in the sub-GHz ISM bands. LoRaWAN is the networking protocol built on top of it.

LoRa achieves its long range by trading data rate for sensitivity. It uses a modulation technique called chirp spread spectrum (CSS), which spreads the signal energy over the entire channel bandwidth. The receiver collapses the signal back to a narrow peak using de-chirping. This allows the receiver to demodulate signals with a negative signal-to-noise ratio (SNR).1,2

Spreading factorMinimum SNR to demodulateRough bit rate (125 kHz)
SF7-7.5 dBabout 5.5 kbps2
SF12-20 dBabout 0.3 kbps

Each increase in spreading factor roughly halves the data rate in exchange for being able to demodulate a signal that is 2.5 dB lower in SNR.

Frequency Band Use

LoRa is usually used in the sub-GHz ISM bands, but which band depends on the region of operation. Most of the time it operates in the 850-950 MHz range (most countries have an ISM band there).3 LoRa itself is just the modulation, and can be used on any frequency the radio supports (e.g. Semtech’s SX1280 runs LoRa in the 2.4 GHz band). LoRaWAN defines a regional parameter plan for each region, which sets the frequencies, channels and transmit power limits to use. The main plans are shown in the table below.4

PlanFrequency rangeExample regions
EU868863-870 MHzEurope (some countries extend this to 873 MHz).
EU433433.05-434.79 MHzEurope and many other countries, although EU868 is more common.
US915902-928 MHzNorth America, including the US and Canada.
AU915915-928 MHzAustralia, New Zealand and much of South America (e.g. Argentina, Brazil, Chile and Uruguay).
AS923915-928 MHz (varies by country)Much of Asia, as well as Australia and New Zealand. See the variants below.
KR920920.9-923.3 MHzSouth Korea, which has its own plan distinct from the AS923 used in most of Asia.
IN865865-867 MHzIndia.
CN470470-510 MHzChina.
CN779779-787 MHzChina (older plan).
RU864864-870 MHzRussia.

AS923 has regional variants, which use the same channel plan shifted to different frequencies within 915-928 MHz to suit each country’s rules:4

  • AS923-1: Japan and Singapore.
  • AS923-2: Vietnam.
  • AS923-3: The Philippines.
  • AS923-4: Israel.

Australia and New Zealand allow both AU915 and AS923-1. Glyn recommends AS923 for both countries.5

Chirps

LoRa uses chirps to encode data. A chirp is a signal whose frequency increases or decreases over time. LoRa encodes the data in each chirp’s starting frequency. Each chirp sweeps across the entire channel bandwidth. Each chirp begins at its start frequency, and once it reaches the top of the channel, it wraps back to the bottom and continues sweeping up until it reaches the start frequency again.

Spreading Factor

The spreading factor (SF) sets how many bits each LoRa symbol carries. Each LoRa symbol is a single chirp that sweeps across the entire channel bandwidth. A chirp is divided into 2SF2^{SF} chips. The chip rate equals the bandwidth, so each chip lasts 1/BW1/BW. SF7 has 128 chips, while SF12 has 4096 chips.

Data is encoded in where the chirp starts in frequency. For example, let’s say the channel spans 1 to 2kHz, and you send 2 bits per symbol (00, 01, 10, or 11). This gives 4 possible starting frequencies, evenly spaced across the channel. Every symbol still sweeps through the entire channel and lasts the same amount of time.

  • 00 starts at 1kHz and sweeps up to 2kHz.
  • 01 starts at 1.25kHz, sweeps up to 2kHz, then wraps to 1kHz and sweeps up to 1.25kHz.
  • 10 starts at 1.5kHz, sweeps up to 2kHz, then wraps to 1kHz and sweeps up to 1.5kHz.
  • 11 starts at 1.75kHz, sweeps up to 2kHz, then wraps to 1kHz and sweeps up to 1.75kHz.

These four symbols are plotted below.

Frequency vs. time for the four symbols of a simplified 2-bit-per-symbol chirp scheme on a 1-2kHz channel. The dot marks the starting frequency, which carries the data. Each symbol sweeps the full channel, wrapping from the top back to the bottom (dotted line), and all symbols last the same time TsT_s.

For our example, SF=2SF = 2 and BW=1 kHzBW = 1\unit{kHz}. This gives a symbol time TsT_s of 4 ms4\unit{ms}:

Ts=2SFBW=221 kHz=41000 Hz=4 ms\begin{align*} T_s &= \frac{2^{SF}}{BW} \\ &= \frac{2^2}{1\unit{kHz}} \\ &= \frac{4}{1000\unit{Hz}} \\ &= 4\unit{ms} \end{align*}

In real LoRa there are 2SF2^{SF} possible starting frequencies rather than 4 (e.g. 128 for SF7), so each symbol carries SF bits.

De-chirping

To work out which symbol was sent, the receiver de-chirps the incoming signal by comparing it against a reference chirp, the plain up-chirp used for symbol 00. Mathematically, it does this by multiplying the received signal by the mirror image of the reference (a down-chirp), which subtracts the reference chirp’s frequency from the received frequency. Because the received chirp and the reference sweep at exactly the same rate, the sweep cancels out, leaving a constant tone whose frequency is the gap between the two chirps (which is the starting position!). You can think of it like tuning a radio whose dial sweeps at the same rate as the chirp: relative to the moving dial, the signal stands still. The receiver then takes an FFT of the de-chirped signal. All the symbol’s energy lands in a single FFT bin, and the bin with the most energy is the symbol.

The diagram below shows this process as a mixer (multiplier, standard RF transmitter terminology) followed by an FFT.

A block diagram of LoRa de-chirping. The received chirp is multiplied by a reference down-chirp, which cancels the sweep and leaves a constant tone whose frequency depends on the symbol value kk. An FFT then turns this tone into a single peak in bin kk.

These three stages are shown below for the four symbols of the 2-bit example.

The three stages of demodulating each symbol. Row 1: the received chirp (red) and the receiver’s reference chirp (grey), which is the plain up-chirp of symbol 00. The receiver multiplies the received signal by the mirror image (a down-chirp) of this reference. Row 2: after de-chirping, each symbol becomes a constant tone, with a frequency set by the symbol value. (The wrapped part of the chirp produces a negative frequency, which aliases to the same tone when sampled at a rate equal to the bandwidth.) Row 3: the FFT of the de-chirped signal, which has all of its energy in the bin matching the symbol.

De-chirping is how the receiver recovers signals below the noise floor. The signal’s energy is spread over the whole symbol, and de-chirping concentrates it into one FFT bin. The noise doesn’t match the reference chirp, so it stays spread across all 2SF2^{SF} bins. The plot below shows a single simulated symbol received at -15 dB SNR. Before de-chirping, the spectrum looks like pure noise. After de-chirping, the transmitted symbol only just stands out for SF7 (which is below its -7.5 dB demodulation limit), but stands over 100 times above the noise floor for SF12. The more bins there are (i.e. the higher the SF), the more the symbol stands out above the noise.

A simulated LoRa symbol received at -15 dB SNR, for SF7 (top) and SF12 (bottom). Left: the spectrum of the received signal before de-chirping. Right: the FFT after de-chirping, with the transmitted symbol’s bin marked.

Footnotes

  1. Semtech (2015, Mar). SX1276/77/78/79 - 137 MHz to 1020 MHz Low Power Long Range Transceiver (Rev. 4) [datasheet]. Retrieved 2026-10-21, from https://cdn-shop.adafruit.com/product-files/3179/sx1276_77_78_79.pdf. ↩ ↩2

  2. Semtech (2015, May). AN1200.22: LoRa Modulation Basics (Rev. 2) [application note]. Retrieved 2026-10-22, from http://wiki.lahoud.fr/lib/exe/fetch.php?media=an1200.22.pdf. ↩ ↩2

  3. Wikipedia (2026, Oct 7). LoRa [wiki]. Retrieved 2026-10-27, from https://en.wikipedia.org/wiki/LoRa. ↩

  4. LoRa Alliance (2021, May 5). RP002-1.0.3 LoRaWAN Regional Parameters [specification]. Retrieved 2026-10-27, from https://lora-alliance.org/wp-content/uploads/2021/05/RP002-1.0.3-FINAL-1.pdf. ↩ ↩2

  5. Glyn Store. LoRa [product page]. Retrieved 2026-10-27, from https://glynstore.com/lora/. ↩