LoRa - The Settings Under the Hood
by Jon Adams N7UV
LoRa is a chirp-spread-spectrum (CSS) modulation technique using a frequency-shift keying (FSK) radio. The semiconductor chips come out of the factory with everything required to build a LoRa data radio transceiver and a robust data transmission/reception scheme. Additionally, most of the very same chips can also do a wide range of FSK (frequency shift keying), GMSK (Gaussian minimum shift keying), GFSK (Gaussian FSK), FHSS (frequency-hop spread spectrum), and OOK (on-off keying) as well, but that's a topic for another time. No, they don't do AFSK, the modulation technique used on 2 m APRS. A very important thing to realize is that LoRa radios are at their core FM transceivers, and FM capture effect plays a big part in the radio chip's operation. If one signal is stronger than another by a certain amount, only that signal will be received. When in LoRa mode, it's more complicated than that, and that complication leads to some interesting performance behaviors. More on that later.
Center Frequency
The first and most obvious is operating center frequency. Just like that dual-bander or HF radio many hams own, the operating frequency is a fundamental aspect of communications. In the US on the 70 cm band, there's no obvious common frequency that's been suggested or recommended. Here in our local Phoenix Arizona network, we're using 433.775 MHz. I'll get into the rationale of that in an upcoming note.
Chirp Bandwidth (BW)
Chirp bandwidth is one of the secret-sauce LoRa features. Semtech's implementation for LoRa in the sub-GHz bands currently provides for chirp bandwidths of 500, 250, 125, 62.5, 31.25, 20.83, 15.63, 10.42, and 7.81 kHz. The chirp bandwidth (BW) represents the edge-to-edge width of the carrier signal. A BW of 125 kHz on an operating frequency of 433.775 MHz will cause the carrier to be constrained to operating between 433.775 MHz - 125 kHz/2 = 433.7125 MHz and 433.775 MHz + 125 kHz/2 = 433.8375 MHz.
BTW, modern transmitters, especially those using digital synthesis and needing to be as efficient as practical, are really clean. Low spurious, low harmonics, it's really possible to use some signal processing chops and get a very tightly controlled output signal. All commercially available transceivers have a low pass filter on the output and for lightweight applications that's good enough, suppressing the harmonics well below the ham radio requirement of -40 dBc or -60 dBc, depending on the band.
The range of LoRa BW settings directly impact the over-the-air data throughput as well as the RF path link budget. Greater BWs reduce RF link budget, but allow greater data throughput.
Spreading Factor (SF)
This is the other of the special features that make LoRa unique. Spreading factor is a bit harder to explain, but I touched on it in an earlier note. In Semtech's implementation, a single chirp can carry between 5 and 12 bits of raw data. Each chirp is really a symbol, and that symbol is unique from every other. Two different radios, one running an SF of 5 and the other running an SF of 12, will not interoperate, and generally will not interfere with one another, even if operating on the same radio frequency. This is because each SF is "mostly" (depends on what technical authority you read) quasi-orthogonal to one another. (I don't think different LoRa SFs meet the strict definition of orthogonality, but my math-fu can't prove it.)
A spreading factor of 5, for instance, means that there are 2^5 (32) different symbols used to carry those 5 bits. An SF of 12 means that there are 2^12 (4096) different symbols needed to carry those 12 bits. LoRa technology uses Gray codes, interleaving, and other forward error correction (FEC) techniques to make it easier for the distant receiver to recover from errors without having to request a retry. This aspect of CSS can be computationally expensive, power consuming, and difficult to implement. But on a single silicon die or system in a package, with the right engineering and solid understanding of the theory, it can become very cost-effective and straightforward to implement. And that's where Semtech really pulled a rabbit out of the hat.
The higher the SF, the better the RF link budget, though that comes at the cost of channel occupancy, which scales exponentially!
Coding Rate (CR)
Coding rate is a method of adding redundant data to the transmit data stream so that the receiver at the other end can recover all the information transmitted even if there was a bit error or several. This is FEC, and is widely used in the radio communications world. Semtech's implementation allows a coding rate range of 4:5 to 4:8, or in other words, if the sender has 4 information bits to send, the transmitter will append one redundant bit (5 bits sent) all the way up to appending an extra 4 redundant bits (4:8). It takes longer to send data with this overhead, but the benefit is apparent when at the receiver end even with a noise hit that takes out an information bit or two, the additional redundant information can be used to reconstruct the original information without error. The word redundant doesn't mean that those extra few bits are copies of the actual information bits, but that there are mathematical algorithms that can be applied to use the redundant information to recover the original data. Compared to legacy AFSK AX.25 APRS that has zero error correction, this error correction ability allows LoRa to shine.
The higher the CR, the lower the over-the-air data rate, but the potential to recover marginal data at the receive end improves.
In Summary
LoRa technology is well documented publicly, making it easy to use, exceedingly flexible, and accessible to nearly any ham with an interest. What's amazing to me is the depth of the independent research work that's been done by many others, and IMHO discovering how to use LoRa in new and interesting ways.
--Cheers and 73 - Jon N7UV