LoRa (Long Range)

  • Proprietary LoRa PHY is owned by company Semtech
  • Low rate (1-20 kbps) and long range (2-20 km)
  • Most popular LPWAN protocol
  • Uses Chirp Spread Spectrum (CSS), a modulation technique where frequency is varied linearly within a channel. See this video.
  • Data is modulated in starting and ending points of a chirp. The frequency increases linearly, modulo bounds of the channel.
[f_high]      /|    /|    /|    /      /|  /  |   / |    /
             / |   / |   / |   /      / | /   |  /  |   /
[f_ctr]     /  |  /  |  /  |  /      /  |/    | /   |  /
           /   | /   | /   | /      /   |    /|/    | /
[f_low]   /    |/    |/    |/      /    |   / |    /|/
        ------------------------- -----------------------
            UNMODULATED              MODULATED
  • LoRaWAN can have 1-bit encoding or 2-bit encoding. In general, bits means we need to divide the total bandwidth into discrete starting frequencies. The total number of unique symbols generated by these cyclic shifts is exactly .
  • In the US, we have 64, 125 kHz uplink channels (1-5 kbps data rate) and eight 500 kHz downlink channels.

LoRa Collisions

What happens when LoRa waves collide? First, we use the Fast Fourier Transform (FFT) to get the frequency. If the chirps are different, we’ll still see different frequencies. However, if they are the same, then we’ll see very similar frequencies. This is because of hardware offsets, and is called Carrier Frequency Offsets (CFO). This… does not always work.

AKA Choir.

We can also have timing offsets from when the packets are sent.

Recovering Weak LoRa Signals

In the Charm paper, it takes advantage of multiple gateways in range of a device, and combines them into one. We also need to synchronize the clocks at the exact same time.

This requires GPS to synchronize the signal arrival time.

Recovering LoRa Signals with Bad CRCs

We can recover packets with bad CRCs. This is called Opportunistic Packet Recovery (OPR). What if we had some information about where the interference might have occurred during the signal transition? OPR demonstrates we can recover packets.

  1. receive bits even for bad packets
  2. measure RSSI for each bit along the way
  3. look for changes in RSSI that signals interference
  4. try different values for the affected bits until the CRC matches

This mostly works, corrects of CRC errors. Original paper.

There is also Busy-Signal Multiple Access (BSMA). As it turns out, CA has a higher throughput, reducing time/energy wasted on packet collisions. Unfortunately, the Hidden Terminal Problem can make devices not hear each other. Thus, devices fail to to detect simultaneous transmissions of the time.