Skip to content
Martyn van Dijke edited this page May 7, 2021 · 11 revisions

Welcome to the gr-lora_sdr wiki!

Here you will find high level overview of the project and more about the underlying theory of the project. In the blocks section you will find more information about the different blocks blocks that are used in this project and their function. In usage you will find some more information on how to use the project along with some examples.

Acknowledgements

Most pictures from this wiki are taken from :

J. Tapparel, O. Afisiadis, P. Mayoraz, A. Balatsoukas-Stimming, and A. Burg, “An Open-Source LoRa Physical Layer Prototype on GNU Radio” [1]

CRAN

One of the major additions of this fork is an WIP CRAN (Cloud Radio Acces Network) architecture for LoRa called loudify (LoRa cloudified).For more information please look at the below links, but really short this CRAN architecture allows for clients to demodulate the LoRa frames using a central server. Conceptually this looks like the following. cran-overview cran-overview The CRAN architecture is a split into two parts a central server for dynamic discovery of both clients and workers and a worker. For more information on this vist :

To make this possible the following GNU Radio blocks are added to this fork.

General structure and information

Transceiver

The stages of the transceiver are displayed in the following picture :

general[1]

For the transmitting side (Tx) these are :

For the receiving side (Rx) these are :

  • Demodulation
  • Gray demapping
  • Deinterleaving
  • Hamming decoding
  • Dewhitening

Each stage has it own specific function and operation and is in more details explained in each block. The receiving side of things is most often the inverse operation to in the end obtain the original payload.

Packet structure

The packet structure of the LoRa packet looks the following:

packet-structure[1]

  • Preamble : the preamble is mainly used for synchronization of the packets in time and in frequency, more about this in synchronization
  • Header : has optional info about the packet such as the length of the packet in bytes, the coding rate and the presence of CRC.
  • Payload : the actual payload data to be send or received.
  • CRC : is an optional extra manner in which the transmission errors can be further improved by adding cyclic redundancy check.

Unit testing

As from v0.1 there is basic unit testing and works most of the time (still WIP). More information can be found on testing

Clone this wiki locally