LoRa
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 factor | Minimum SNR to demodulate | Rough bit rate (125 kHz) |
|---|---|---|
| SF7 | -7.5 dB | about 5.5 kbps2 |
| SF12 | -20 dB | about 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
| Plan | Frequency range | Example regions |
|---|---|---|
| EU868 | 863-870 MHz | Europe (some countries extend this to 873 MHz). |
| EU433 | 433.05-434.79 MHz | Europe and many other countries, although EU868 is more common. |
| US915 | 902-928 MHz | North America, including the US and Canada. |
| AU915 | 915-928 MHz | Australia, New Zealand and much of South America (e.g. Argentina, Brazil, Chile and Uruguay). |
| AS923 | 915-928 MHz (varies by country) | Much of Asia, as well as Australia and New Zealand. See the variants below. |
| KR920 | 920.9-923.3 MHz | South Korea, which has its own plan distinct from the AS923 used in most of Asia. |
| IN865 | 865-867 MHz | India. |
| CN470 | 470-510 MHz | China. |
| CN779 | 779-787 MHz | China (older plan). |
| RU864 | 864-870 MHz | Russia. |
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 chips. The chip rate equals the bandwidth, so each chip lasts . 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.
00starts at 1kHz and sweeps up to 2kHz.01starts at 1.25kHz, sweeps up to 2kHz, then wraps to 1kHz and sweeps up to 1.25kHz.10starts at 1.5kHz, sweeps up to 2kHz, then wraps to 1kHz and sweeps up to 1.5kHz.11starts at 1.75kHz, sweeps up to 2kHz, then wraps to 1kHz and sweeps up to 1.75kHz.
These four symbols are plotted below.
For our example, and . This gives a symbol time of :
In real LoRa there are 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.
These three stages are shown below for the four symbols of the 2-bit example.
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 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.
Footnotes
-
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
-
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
-
Wikipedia (2026, Oct 7). LoRa [wiki]. Retrieved 2026-10-27, from https://en.wikipedia.org/wiki/LoRa. ↩
-
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
-
Glyn Store. LoRa [product page]. Retrieved 2026-10-27, from https://glynstore.com/lora/. ↩

