Speaker
Description
LoRa is the physical layer of LoRaWAN, one of the most popular low-power wide-area network (LPWAN) technologies. The LoRa modulation uses a proprietary chirp spread spectrum modulation and error correction code to achieve long-range communication with low energy consumption. In the past years, many reverse engineering attempts have been made and led to an overall understanding of the encoding and modulation scheme used by its physical layer. In this paper, we present an open-source implementation of a LoRa transceiver that is fully compatible and has been tested extensively with commercial LoRa devices. The GNU Radio transceiver implements all the signal processing blocks that are required to transmit, detect, synchronize and decode LoRa frames. We first review briefly the LoRa modulation scheme and then present in more detail the algorithms and implementation of our receiver that operates at a very low signal-to-noise ratio (SNR). The synchronization features a highly optimized estimation and compensation of major hardware impairments such as carrier frequency offset, sampling time offset, and sampling frequency offset which is important for low-SNR operation. The receiving performance is further enhanced by soft-decision demodulation to improve the effectiveness of the LoRa Hamming code. Finally, the performance of our implementation is evaluated using NI USRP-2920 and LimeSDR Mini software-defined radios. The source code is available on GitHub and can be used as a starting point for further research and development of LoRa-based systems or directly as a fully functional LoRa transceiver.
Talk Length | 15 Minutes |
---|---|
Link to Open Source Code | https://github.com/tapparelj/gr-lora_sdr |