exploring_lora
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
exploring_lora [2018/09/27 16:35] – [4.1. Time on Air] samer | exploring_lora [2018/09/29 17:29] – [4.2. Coverage] samer | ||
---|---|---|---|
Line 2: | Line 2: | ||
As defined by Semtech, [[http:// | As defined by Semtech, [[http:// | ||
- | In this lab, you will implement a prototype of LoRa communication between two wireless | + | In this lab, you will implement a prototype of LoRa communication between two wireless |
<WRAP center round help 100%> | <WRAP center round help 100%> | ||
Line 28: | Line 28: | ||
Download the following software on your PC: | Download the following software on your PC: | ||
- | * RadioHead: The Packet Radio library for embedded microprocessors can be downloaded from [[http://www.airspayce.com/mikem/ | + | * RadioHead: The Packet Radio library for embedded microprocessors can be downloaded from [[https://github.com/samerlahoud/ |
* Arduino IDE: Specific OS versions can be downloaded from [[https:// | * Arduino IDE: Specific OS versions can be downloaded from [[https:// | ||
Line 36: | Line 36: | ||
Note well the location of the library folder on your computer. In the following, you will be required to modify source files located in this folder. | Note well the location of the library folder on your computer. In the following, you will be required to modify source files located in this folder. | ||
</ | </ | ||
- | |||
==== -. Installation ==== | ==== -. Installation ==== | ||
Line 58: | Line 57: | ||
* What is the relation between processing gain and spreading factor in LoRa modulation? Explain. | * What is the relation between processing gain and spreading factor in LoRa modulation? Explain. | ||
* How does the spreading factor impact the coverage of a LoRa transmitter? | * How does the spreading factor impact the coverage of a LoRa transmitter? | ||
- | * For each of the three possible configurations of your LoRa module, what is the transmission bit rate? Explain your computation. | + | * For each of the three possible configurations of your LoRa device, what is the transmission bit rate? Explain your computation. |
* Compute the receiver sensitivity, | * Compute the receiver sensitivity, | ||
* Compare the computed sensitivity to that provided by the {{ : | * Compare the computed sensitivity to that provided by the {{ : | ||
</ | </ | ||
+ | In the remainder of this lab, you will conduct measurements to validate the obtained theoretical receiver sensitivity. | ||
===== -. Configuring and Running the Lab ===== | ===== -. Configuring and Running the Lab ===== | ||
==== -. Modifying the Radio Parameters ==== | ==== -. Modifying the Radio Parameters ==== | ||
- | Start by setting | + | Download |
+ | |||
+ | Take a look at the source code in '' | ||
+ | |||
+ | * Central frequency (freq) | ||
+ | * Spreading Factor (SF) | ||
+ | * Bandwidth (Bw) | ||
+ | * Coding Rate (CR) | ||
+ | * Transmit power (Pow) | ||
+ | |||
+ | <code c++> | ||
+ | rf95.setFrequency(frequency); | ||
+ | // Setup Power,dBm | ||
+ | rf95.setTxPower(13); | ||
+ | |||
+ | // Setup Spreading Factor (6 ~ 12) | ||
+ | rf95.setSpreadingFactor(7); | ||
+ | |||
+ | // Setup BandWidth, option: 7800, | ||
+ | //Lower BandWidth for longer distance. | ||
+ | rf95.setSignalBandwidth(125000); | ||
+ | |||
+ | // Setup Coding Rate: | ||
+ | rf95.setCodingRate4(5); | ||
+ | </ | ||
+ | |||
+ | In order to reduce collisions, configure | ||
^ Group Number | ^ Group Number | ||
Line 83: | Line 109: | ||
| | | | ||
- | For this, open the '' | ||
- | |||
- | <file cpp RH_RF95.cpp> | ||
- | setFrequency(86X.Y); | ||
- | </ | ||
- | |||
- | The typical configuration for LoRa modules consists of 125 kHz sub-channels, | ||
- | |||
- | * Bw125Cr45Sf128 | ||
- | * Bw125Cr48Sf4096 | ||
- | * Bw31_25Cr48Sf512 | ||
- | |||
- | Radio configuration is applied in '' | ||
- | <file cpp RH_RF95.cpp> | ||
- | setModemConfig(Bw125Cr45Sf128); | ||
- | </ | ||
==== -. Running Basic Sketches ==== | ==== -. Running Basic Sketches ==== | ||
- | Download the {{ : | + | Now you can compile and upload |
[{{ : | [{{ : | ||
[{{ : | [{{ : | ||
- | |||
- | In the remainder of this lab, you will conduct measurements to validate the obtained theoretical receiver sensitivity. | ||
===== -. Performance Evaluation ===== | ===== -. Performance Evaluation ===== | ||
In the following, you will design and implement a set of scenarios that enable to evaluate the performance of the LoRa modulation. As you will deal with scientific assessment, you are required to use scientific tools to show the results. You have the choice between [[http:// | In the following, you will design and implement a set of scenarios that enable to evaluate the performance of the LoRa modulation. As you will deal with scientific assessment, you are required to use scientific tools to show the results. You have the choice between [[http:// | ||
+ | As we are in presence of variable radio conditions, some experiments should be repeated multiple times and results can be shown as probability distributions. Take a look at this excellent repository of data visualisation tools [[https:// | ||
==== -. Time on Air ==== | ==== -. Time on Air ==== | ||
- | In this section, you will measure the Time on Air (ToA) under the three different radio configurations and for different message sizes. The ToA is the time necessary to send a message on the radio interface. | + | In this section, you will measure the Time on Air (ToA) as given by the time necessary to transmit |
- | For this, you can start by implementing a function on the client that measures the time necessary for sending a message. For example, you can use the [[https:// | + | For this, you will start by implementing a function on the client that measures the time necessary for sending a message. For example, you can use the [[https:// |
<WRAP center round help 100%> | <WRAP center round help 100%> | ||
- | * Join commented extracts of your code and explain your approach for computing the ToA. | + | |
- | * Draw a box plot of the ToA under the three different radio configurations and for three different | + | |
- | * Analyze the obtained results and compare with the theoretical computations. You can superpose the theoretical results and the practical | + | * Visualise the experimental results by plotting the ToA as a function of each one of the different |
+ | * Analyze the obtained results and compare with the theoretical computations. You can superpose the theoretical results and the experimental | ||
</ | </ | ||
- | ==== -. Packet Delivery Ratio ==== | ||
- | In this section, you will measure the Packet Error Rate (PER) under the three different radio configurations and for different transmission periods. For this, you can start by implementing a function on the client that measures the ratio of successfully delivered packets. | + | ==== -. Coverage ==== |
- | Only for this test, all groups are required to use the same frequency | + | In this section, you will measure |
+ | |||
+ | For this, you will start by identifying a set of geographical locations or Test Points | ||
<WRAP center round help 100%> | <WRAP center round help 100%> | ||
- | * Draw the PER as a function of the transmission period for the different | + | * Draw the test points on a map and motivate your choices. |
- | * What type of mathematical models enables to theoretically compute | + | * Visualise |
+ | * Analyze | ||
</ | </ | ||
+ | ==== -. [Classroom activity] Collisions and Packet Delivery Ratio ==== | ||
- | ==== -. Coverage ==== | + | In this section, you will measure the impact of collisions on the network throughput under different transmission periods. |
+ | The setting for this experiment is unique: | ||
- | In this section, you will measure | + | * Only one server is required in the classroom. This server should compute |
- | + | * All groups are required | |
- | <code c++> | + | |
- | rf95.setModemConfig(RH_RF95:: | + | |
- | rf95.setModemConfig(RH_RF95:: | + | |
- | rf95.setModemConfig(RH_RF95:: | + | |
- | </ | + | |
<WRAP center round help 100%> | <WRAP center round help 100%> | ||
- | * Draw the test points on a map. | + | * Draw the PER as a function of the transmission period. Analyze your results. |
- | * Give a statistical measure | + | * What type of mathematical models enables to theoretically compute |
</ | </ | ||
- | ==== -. Path Loss ==== | + | |
+ | ===== -. Coverage Challenge ===== | ||
In this section, you will study the properties of the radio channel as used by the LoRa technology. For this, you should obtain a large set of RSSI values for different distances, preferably in a free space setting. | In this section, you will study the properties of the radio channel as used by the LoRa technology. For this, you should obtain a large set of RSSI values for different distances, preferably in a free space setting. | ||
Line 160: | Line 170: | ||
In order to compute distances in your experiment, you can get the GPS coordinates as recorded by your smartphone using an application such as [[https:// | In order to compute distances in your experiment, you can get the GPS coordinates as recorded by your smartphone using an application such as [[https:// | ||
- | ===== -. Coverage Challenge ===== | ||
exploring_lora.txt · Last modified: 2021/10/20 12:52 by samer