The physical layer of the LoRa (LoRa PHY) is a proprietary standard owned by Semtech and people have been trying to reverse-engineer the LoRa standard for years with projects such as GR-LoRa, and over the year various people have taken over the works and new projects have come with the latest one being the gr-lora_sdr GNU Radio software-defined radio (SDR) implementation of a LoRa transceiver.
The project has been conducted in collaboration with the Telecommunication Circuits Laboratory of the EPFL (École Polytechnique Fédérale de Lausanne) in Switzerland, and gr-lora_sdr is available as a module for GNU Radio 3.10 with both Tx and Rx implemented so it can be used with hardware compatible with GNU Radio that works in the ISM bands for LoRa (e.g. 433 MHz, 868 MHz, 915 MHz).
Highlights of the gr-lora_sdr project:
- Sends and receives LoRa packets between USRP-USRP and USRP-commercial LoRa transceiver (tested with Adafruit Feather 32U4 RFM95 and Dragino LoRa/GPS HAT).
- Supported parameters
- Spreading factors – 5-12 (SF5 and SF6 are not compatible with Semtech SX1261/2)
- Coding rates – 0-4
- Implicit and explicit header mode
- Payload length – 1-255 bytes
- Sync word selection (network ID)
- Verification of payload CRC
- Verification of explicit header checksum
- Low data rate optimization mode
- Utilization of soft-decision decoding for improved performances
The gr-lora_sdr project can be found on GitHub under a GPL 3.0 license with instructions to install the module from source or with Conda package management system. A simulation framework can also be found in the apps/simulation folder.
While the project is great for research and education, it might not be a good idea to use it in commercial products as LoRa is patented by Semtech until September 2035 (anticipated expiration).
Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.