The gr-lora project aims to provide a collection of GNURadio blocks for sending and receiving LoRa modulated radio messages using Software Defined Radio (SDR). More information about LoRa itself can be found on [the website of the LoRa Alliance](https://www.lora-alliance.org/).
Though the core functionality of LoRa is described in various patents and blog posts (for a good resource, see [this RevSpace page](https://revspace.nl/DecodingLora)), most of the details are missing. However, the following features are fully supported by gr-lora:
- Synchronizing to LoRa frames transmitted with a spreading factor of 7
- Deinterleaving
- Dewhitening
- Decoding + error correction of the LoRa PHDR length field
- Decoding + error correction of frame payloads with a coding rate of 4/8
Decoding of other coding rates and spreading factors is expected to be implemented in the near future. See the "Issues" page for more information.
Installation
------------
The installation procedure is the same as for any GNURadio OOT module:
```
mkdir build
cd build
cmake ../ # Note to Arch Linux users: add "-DCMAKE_INSTALL_PREFIX=/usr"
To test your installation, you can download one of the sample LoRa signals at https://github.com/rpp0/gr-lora-samples. Configure ```apps/lora_receive_file.py``` to use the sample and run the script. You should see the decoded sample data:
Contributions to the project are very much appreciated! If you have an idea for improvement or noticed a bug, feel free to submit an issue. If you're up for the challenge and would like to introduce a feature yourself, we kindly invite you to submit a pull request.
Usage
-----
See the LICENSE file for the license of this project. If you are working on a project that involves the usage of gr-lora, we would appreciate it if you can acknowledge gr-lora by linking to this page.