Design and Implementation of LoRa Physical Layer in GNU Radio
Abstract
LoRa is the physical layer of LoRaWAN, one
of the most popular low-power wide-area network
(LPWAN) technologies for the Internet
of Things (IoT). LoRa uses a proprietary chirp
spread spectrum modulation. The modulation is
used together with error correction coding and
interleaving 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 the
physical layer of LoRa. In this paper, we present
in detail all the signal processing operations required
to transmit and receive a LoRa frame for
all the modes that are supported by commercial
devices. We further develop the synchronization
methods used by our open-source implementation
of a LoRa transceiver that is fully compatible
and has been tested extensively with commercial
LoRa devices. Finally, we evaluate the performance
of our LoRa transceiver implemented in
GNU Radio and available on GitHub.
- I grant gnuradio.org a perpetual, non-exclusive license to distribute this article.
- I certify that I have the right to grant this license.
- I understand that submissions cannot be completely removed once accepted.
- I understand that gnuradio.org reserves the right to reclassify or reject any submission.