DecodingLora: Difference between revisions

From RevSpace
Jump to navigation Jump to search
Line 36: Line 36:
== External links ==
== External links ==
* A nice explanation of the preamble and data modulation at [http://www.link-labs.com/what-is-lora/ link-labs]
* A nice explanation of the preamble and data modulation at [http://www.link-labs.com/what-is-lora/ link-labs]
* Semtech [AN1200.22 http://www.semtech.com/images/datasheet/an1200.22.pdf] Lora modulation basics
* Semtech [http://www.semtech.com/images/datasheet/an1200.22.pdf AN1200.22] Lora modulation basics
* rtl-sdrangelove plugins [f4exb github https://github.com/f4exb/sdrangel/tree/master/plugins/channel/lora]
* rtl-sdrangelove plugins [https://github.com/f4exb/sdrangel/tree/master/plugins/channel/lora f4exb github]
* [hexameron github https://github.com/hexameron/rtl-sdrangelove/tree/master/plugins/channel/lora]
* [https://github.com/hexameron/rtl-sdrangelove/tree/master/plugins/channel/lora hexameron github]

Revision as of 13:13, 2 January 2016

Project DecodingLora
DecodingLora Project.jpg
Status Initializing
Contact bertrik
Last Update 2016-01-02

This page is about understanding the LoRa RF modulation format.

LoRa is an abbreviation of Long Range, meaning it is an radio modulation format that gives longer range than straight FSK modulation. This is achieved by a combination of methods: it uses a spread spectrum technique called Chirp Spread Spectrum (CSS) and it uses forward error coding (in combination with whitening and interleaving).

To transmit or receive LoRa signals, you need to buy hardware that supports this modulation format.

The goal of this project is to collect more detailed information on the LoRa modulation and packet format. A concrete result could be that someone writes software which makes it possible to receive and decode LoRa signals with a cheap software defined radio, like rtlsdr.


Modulation basics

The LoRa modulation appears to be defined by the following parameters:

  • the bandwidth BW, meaning the difference in minimum and maximum frequency
  • the spreading factor SF
  • the coding rate CR

On the air I have seen the following waveforms:

  • a series of down-chirps at the start of a message (preamble)
  • two up-chirps at the end of the preamble (sync-pattern)
  • data-chirps, these consists of down-chirps (like the preamble), but with a jump in the "phase"/timing of the down-chirp. The frequency shift of this jump likely encodes one symbol representing several data bits (SF bits per symbol).

One symbol has a length in time of (2^SF)/BW. Chirps seem to have a constant chirp rate for a specific modulation setting, both when going up and down. When the frequency of a chirp reaches the end of the band, it "wraps around" to the other side. One chirp nominally covers the entire bandwidth BW once during one symbol time.

Investigation

Since the LoRa is basically a carrier being swept over a certain bandwidth in a specific way, it is possible to recover the frequency by FM demodulation of the signal generated by a Semtech chip, in my case from a hoperf RFM95 module.

External links