wikiroute

networking recipes

User Tools

Site Tools


exploring_lora

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
exploring_lora [2018/09/29 12:59] – [3.1. Modifying the Radio Parameters] samerexploring_lora [2018/09/29 17:29] – [4.2. Coverage] samer
Line 2: Line 2:
 As defined by Semtech, [[http://www.semtech.com/wireless-rf/internet-of-things/what_is_lora.html|LoRa]] is //a wireless technology developed to create the low-power, wide-area networks (LPWANs) required for machine-to-machine (M2M) and Internet of Things (IoT) applications. The technology offers a very compelling mix of long range, low power consumption and secure data transmission and is gaining significant traction in IoT networks being deployed by wireless network operators// As defined by Semtech, [[http://www.semtech.com/wireless-rf/internet-of-things/what_is_lora.html|LoRa]] is //a wireless technology developed to create the low-power, wide-area networks (LPWANs) required for machine-to-machine (M2M) and Internet of Things (IoT) applications. The technology offers a very compelling mix of long range, low power consumption and secure data transmission and is gaining significant traction in IoT networks being deployed by wireless network operators//
  
-In this lab, you will implement a prototype of LoRa communication between two wireless modules. This enables you to get hands-on experience with LoRa, assess the radio performance, and prepare future advanced prototypes and experimentations.+In this lab, you will implement a prototype of LoRa communication between two wireless devices. This enables you to get hands-on experience with LoRa, assess the radio performance, and prepare future advanced prototypes and experimentations.
  
 <WRAP center round help 100%> <WRAP center round help 100%>
Line 57: 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, assuming the following parameters: channel bandwidth = 125 kHz, spreading factor = 7, coding rate = 4/5, bit error rate (BER) target = 10<sup>-4</sup>, and receiver noise figure = 6 dB. Refer to this {{ :1705.05899.pdf | article}} to determine the mapping between the BER and the SNR.   * Compute the receiver sensitivity, assuming the following parameters: channel bandwidth = 125 kHz, spreading factor = 7, coding rate = 4/5, bit error rate (BER) target = 10<sup>-4</sup>, and receiver noise figure = 6 dB. Refer to this {{ :1705.05899.pdf | article}} to determine the mapping between the BER and the SNR.
   * Compare the computed sensitivity to that provided by the {{ :an1200.22.pdf |Semtech Application Note AN1200.22}} for the same parameters.   * Compare the computed sensitivity to that provided by the {{ :an1200.22.pdf |Semtech Application Note AN1200.22}} for the same parameters.
Line 67: Line 67:
 ==== -. Modifying the Radio Parameters ==== ==== -. Modifying the Radio Parameters ====
  
-Download the {{ :sketch-1819.zip | basic sketches}} that implement a simple LoRa communication between the two modules: a client module and a server module. Open the sketches with Arduino IDE. Make sure to choose the correct ''Board'' and ''Port'' in the ''Tools'' menu. +Download the {{ :sketch-1819.zip | basic sketches}} that implement a simple LoRa communication between the two devices: a client and a server. Open the sketches with Arduino IDE. Make sure to choose the correct ''Board'' and ''Port'' in the ''Tools'' menu. 
  
 Take a look at the source code in ''rf95_client.ino'' and ''rf95_server.ino''. Particularly, the ''setup'' function configures the radio parameters of your LoRa devices: Take a look at the source code in ''rf95_client.ino'' and ''rf95_server.ino''. Particularly, the ''setup'' function configures the radio parameters of your LoRa devices:
Line 93: Line 93:
 </code> </code>
  
-In order to reduce collisions, configure the central frequency of your LoRa modules as indicated below:+In order to reduce collisions, configure the central frequency of your LoRa devices as indicated below:
  
 ^  Group Number  ^   Frequency     ^ ^  Group Number  ^   Frequency     ^
Line 111: Line 111:
 ==== -. Running Basic Sketches ==== ==== -. Running Basic Sketches ====
  
-Now you can compile and upload the client and server sketches on the two arduino modules, respectively. On the serial interfaces, you should obtain similar results as in Fig. 2 and Fig. 3. The client sends periodically a short message towards the server. The server outputs the RSSI (received power in dBm) for each received message.+Now you can compile and upload the client and server sketches on the two arduino devices, respectively. On the serial interfaces, you should obtain similar results as in Fig. 2 and Fig. 3. The client sends periodically a short message towards the server. The server outputs the RSSI (received power in dBm) for each received message.
  
 [{{ :client-iotlab1.png?direct&600 ||Figure 2. Client serial monitor}}] [{{ :client-iotlab1.png?direct&600 ||Figure 2. Client serial monitor}}]
Line 118: Line 118:
 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://www.gnuplot.info | gnuplot]], [[https://matplotlib.org/index.html#|matplotlib]] with Python, and MATLAB. Take some time to become familiar with one of these software as you will be required to use them in different occasions of your academic programme. 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://www.gnuplot.info | gnuplot]], [[https://matplotlib.org/index.html#|matplotlib]] with Python, and MATLAB. Take some time to become familiar with one of these software as you will be required to use them in different occasions of your academic programme.
  
 +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://www.data-to-viz.com]].
 ==== -. 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 a message on the radio interface. You will assess the impact of the spreading factor, bandwidth, coding rate, and the message size on the ToA.
  
-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://www.arduino.cc/en/Reference/Micros| micros()]] function available in the arduino libraries.+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://www.arduino.cc/en/Reference/Micros| micros()]] function available in the arduino libraries. Now, you can modify one of the parameters (spreading factor, bandwidth, coding rate, message size) and record the impact on the ToA. Note well that you may need to repeat the experiment in order to obtain the statistical distributions.
  
 <WRAP center round help 100%> <WRAP center round help 100%>
-  * Join commented extracts of your code and explain your approach for computing the ToA+  * Describe the scenarios you used for assessing the impact of the different parameters on the ToA. 
-  * Draw box plot of the ToA under the three different radio configurations and for three different message sizes.  +  * Join commented extracts of your code and raw data in attached files
-  * Analyze the obtained results and compare with the theoretical computations. You can superpose the theoretical results and the practical ones on the same graph.+  * Visualise the experimental results by plotting the ToA as function of each one of the different parameters
 +  * Analyze the obtained results and compare with the theoretical computations. You can superpose the theoretical results and the experimental ones on the same graph.
 </WRAP> </WRAP>
-==== -. 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 ==== 
 + 
 +In this section, you will measure the coverage of LoRa under different radio configurations.
  
-Only for this testall groups are required to use the same frequency (for example 868.10 MHz)+For this, you will start by identifying a set of geographical locations or Test Points (TP). These TPs should be astutely chosen to explore the limits of LoRa coverage. Then you should implement a function on the server that measures the ratio of successfully delivered packets or PDR for three different radio configurationsSuch configurations should ensure different reliability levels
  
 <WRAP center round help 100%> <WRAP center round help 100%>
-  * Draw the PER as function of the transmission period for the different radio configurations. Analyze your results.  +  * Draw the test points on map and motivate your choices. 
-  * What type of mathematical models enables to theoretically compute the PER?+  * Visualise the experimental results by plotting the PDR for each TP and each radio configuration.  
 +  * Analyze the obtained results.
 </WRAP> </WRAP>
 +==== -. [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 the coverage of LoRa modules under the three different radio configurations. For this, you can start by identifying a set of Test Points (TP) on the campus. Then, you should implement a function that sends packets with different radio configurationsNote that the following functions in the Arduino sketch enable to modify //on the fly// the LoRa parameters: +  * Only one server is required in the classroom. This server should compute the ratio of successfully delivered packets or PDR. 
- +  * All groups are required to use the same frequency, spreading factor, and coding rate.
-<code c++> +
-rf95.setModemConfig(RH_RF95::Bw125Cr45Sf128); +
-rf95.setModemConfig(RH_RF95::Bw31_25Cr48Sf512); +
-rf95.setModemConfig(RH_RF95::Bw125Cr48Sf4096); +
-</code>+
  
 <WRAP center round help 100%> <WRAP center round help 100%>
-  * Draw the test points on map+  * Draw the PER as function of the transmission period. Analyze your results.  
-  * Give a statistical measure of the PER and the RSSI for each TP with each of the different radio configurations. +  * What type of mathematical models enables to theoretically compute the PER?
 </WRAP> </WRAP>
-==== -. 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 168: 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://play.google.com/store/apps/details?id=com.flashlight.lite.gps.logger&hl=en|Ultra GPS Logger]]. You can export the time-location correspondence in a CSV format from this application. As for the time-RSSI correspondence, you can use a {{ :log-windows.py.zip |logger file}} on your laptop. Finally, the time matching enables you to obtain the RSSI for each GPS location, hence for different distances. 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://play.google.com/store/apps/details?id=com.flashlight.lite.gps.logger&hl=en|Ultra GPS Logger]]. You can export the time-location correspondence in a CSV format from this application. As for the time-RSSI correspondence, you can use a {{ :log-windows.py.zip |logger file}} on your laptop. Finally, the time matching enables you to obtain the RSSI for each GPS location, hence for different distances.
-===== -. Coverage Challenge ===== 
  
  
exploring_lora.txt · Last modified: 2021/10/20 12:52 by samer