Skip to content
matt-knight edited this page Jul 24, 2017 · 2 revisions

Design

gr-lora is a GNU Radio implementation of the algorithm I developed during my blind signal analysis of the LoRa LPWAN wireless physical layer. Of note, the demodulator first transforms the signal by de-chirping it before using the Fast Fourier Transform to bin the signal by frequency and expose the symbol for each symbol period. The analysis process has been described in detail in the PoC||GTFO 0x13 publication and a conference presentation at 33c3:

Architecturally, I have implemented the [de]modulation and [en/de]coding stages as separate blocks to promote modularity and enable easy experimentation. I/O and inter-block communication is handled predominantly by GNU Radio's asynchronous message passing API. See the Usage page for more information on how to utilize this interface: https://github.com/BastilleResearch/gr-lora/wiki/Usage

Limitations

Because this implementation uses the aforementioned stacked FFT demodulation strategy, it only works on signals that are above the noise floor. Replacing the FFT demodulation method with matched filters would enable sub-noise floor performance and should be investigated.

Additionally, at this time gr-lora is only compatible with LoRa's implicit header mode. Because LoRa uses a different whitening sequences for implicit and explicit modes, it is non-trivial to de-whiten and reverse the header when it is present.

Clone this wiki locally