Close

What is Lora

A project log for Jebel: Off Grid Communications

Jebel is a LoRa based text communication system for humanitarian and disaster relief situations.

chris-lowChris Low 07/17/2019 at 09:370 Comments

What is Lora:

Lora is a proprietary system designed by Semtech. According to them:

LoRa is a proprietary spread spectrum modulation scheme that is derivative of Chirp Spread Spectrum modulation (CSS) and which trades data rate for sensitivity within a fixed channel bandwidth. It implements a variable data rate, utilizing orthogonal spreading factors, which allows the system designer to trade data rate for range or power, so as to optimize network performance in a constant bandwidth. LoRa is a PHY layer implementation and is agnostic with to higher-layer implementations. This allows LoRa to coexist and interoperate with existing network architectures.

Basically Lora which stands for Long Range is a radio modulation system designed for long range low bandwidth applications. The standard is owned by Semtech who licenses several other manufacturers to develop Lora based chips. Lora can be thought of like wifi or bluetooth, but designed for long-range and low-bandwidth applications. It operates in the ISM band with different frequencies for different parts of the world. The three main frequencies are 433mhz, 868mhz and 915mhz. Lora is specifically designed to have a high link budget and operate with a low SNR which allows it to operate at great distances. In low quality environments with high interference and noise it can still be possible to transmit more than 1km. With line of site connections have been made using small battery powered devices that exceed 200km.

Lora devices are transceivers meaning they can both send and receive information. They are low powered. A sender only unit may be able to last years on a single set of batteries if deep sleep and infrequent update times are utilized. The units are also low cost. Though more expensive than equivalent Wifi or Bluetooth modules, Lora modules can still be purchased for well under $10 in single quantities.

Lora vs Lorawan:

Lorawan is a standard protocol for a Lora wide area network. It is built on the Lora technology, and requires Lora to function, but the protocol is not itself Lora. Lora technology can use alternative protocols to Lorawan, as long as it fits within the regulatory guidelines of the country.

Key ideas and terms with Lora:

Lora allows for a number of adjustment to be made to the output signal. All of these adjustment will be a trade off between different factors such as range, ability to transmit in noisy environments, battery usage, time on air, data rate, and message integrity.

Spreading Factor:

According to Semtech “The spread spectrum LoRa modulation is performed by representing each bit of payload information by multiple chips of information. The rate at which the spread information is sent is referred to as the symbol rate (Rs), the ratio between the nominal symbol rate and chip rate is the spreading factor and represents the number of symbols sent per bit of information.” The important take away is a lower spreading factor will mean a higher data rate, but generally lower range as it becomes more difficult to differentiate the signal over noise. Spreading factors range from 6-12 and an increase of 1 SF doubles the time on air. So for the same message SF 9 will take 4 times as long to send as SF7. Generally a lower SF is better as long as the signal is strong enough.

Bandwidth:

“An increase in signal bandwidth permits the use of a higher effective data rate, thus reducing transmission time at the expense of reduced sensitivity improvement.” Bandwidth is measured in kHz. It is the range of the spectrum the signal will broadcast in. According to Semtech the range of possible bandwidths is 7.8-500kHz. The larger the bandwidth the higher the data rate, but also the more noise.

Frequency:

Frequency is the channel in kHz at the center of the transmission. For example 433kHz, 868kHz, or 915Khz.

Coding Rate:

“To further improve the robustness of the link the LoRaTM modem employs cyclic error coding to perform forward error detection and correction. Such error coding incurs a transmission overhead. Forward error correction is particularly efficient in improving the reliability of the link in the presence of interference. So that the coding rate (and so robustness to interference) can be changed in response to channel conditions” The coding rate increase the on air time of a message by including extra signals for error correction.

Preamble Length:

The preamble occurs before the message to signal to other Lora devices that a message is incoming. This can be increased for additional robustness, but adds to on air time.

Sync Word:

Byte to signify which network the message is destined for.

Transmit power:

The power output of the transmitter in db.

CRC:

Cyclic Redundancy Check. This verifies the integrity of the data.

Packet Structure:

The LoRaTM modem employs two types of packet format, explicit and implicit. The explicit packet includes a short header that contains information about the number of bytes, coding rate and whether a CRC is used in the packet. The LoRaTM packet comprises three elements: A preamble, An optional header. The data payload.

General Principals:

In battery applications more power is consumed by higher transmit power, or longer on air time. On air time can be reduced by decreasing spreading factor, increasing bandwidth, decreasing code rate, usinf implicit headers and no crc. These all reduce range, so a balance must be found to create a reliable link that saves power, and doesn’t congest airwaves.

An Example Sending the message hello world with Spreading factor 12, bandwidth 8kHz, Code Rate 4, Explicit Header, and CRC would take 18,560ms

Sending the same message with Spreading factor 7, bandwidth 500kHz, Code Rate 1, Implicit Header, and no CRC would take 9.02ms

For a helpful overview of these ideas check out this video tutorial series

https://www.mobilefish.com/developer/lorawan/lorawan_quickguide_tutorial.html

Discussions