Fully-functional GNU Radio blocks to implement the physical layer (PHY)of LoRa
Explore the docs »
Running the demo
·
Report a bug
·
Request a feature
This is the fully-functional GNU Radio software-defined radio (SDR) implementation of a LoRa transceiver with all the necessary receiver components to operate correctly even at very low SNRs. This work has been originally conducted at the Telecommunication Circuits Laboratory, EPFL and later the code has been extended at the Technical University of Eindhoven.
The extended work of this project is to provide a higher level use case for the original code, this is done by :
This is done to extend to higher level systems such as:
In the GNU Radio implementation of the LoRa Tx and Rx chains the user can choose all the parameters of the transmission, such as the spreading factor, the coding rate, the bandwidth, the presence of a header and a CRC, the message to be transmitted, etc.
With the following parameters available:
This work was inspired from https://github.com/rpp0/gr-lora by Pieter Robyns, Peter Quax, Wim Lamotte and William Thenaers. Which architecture and functionalities have been improved to better emulate the physical layer of LoRa. This work also used the kiss FFT libary from github.com/mborgerding/kissfft for FFT operations. Finally, this code is a fork from github.com/tapparelj/gr-lora_sdr who made the original code.
Next to code this project is based on :
J. Tapparel, O. Afisiadis, P. Mayoraz, A. Balatsoukas-Stimming, and A. Burg, “An Open-Source LoRa Physical Layer Prototype on GNU Radio” [1]
Which can be found at arxiv.org/abs/2002.08208, if you find this implementation useful for your project, please consider citing the aforementioned paper.
There is an Arch Linux package called _gr-lorasdr-git simply install it using your favourite aur helper. Similarly to any GNU Radio OOT module, it can be build using Cmake and make.
git clone https://github.com/martynvdijke/gr-lora_sdr
cd gr-lora_sdr
mkdir build && cd build
cmake ../ #-DCMAKE_INSTALL_PREFIX=/usr for Arch Linux users
sudo make install
You will need root or sudo access in order to properly install the repo, since it will add module blocks to be used in gnuradio-companian and makes a local python package. Be sure to have the following requirements installed:
- Gnuradio 3.8
- python >2.7
- cmake >3.8
- swig >4.0
- libvolk
- UHD
- doxygen (optional for documentation)
- log4cpp (optional for logging/debugging)
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change. Make sure to add or update tests as appropriate.
For TODO list checkout TODO
Distributed under the GPL-3.0 License License. See LICENSE for more information.