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 14:11] – [4.1. Time on Air] samerexploring_lora [2018/10/04 17:36] – [2. Theoretical Study] melhem
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 device, what is the transmission bit rate? Explain your computation.+  * What is the transmission bit rate for each of the following configurations of your LoRa device? Explain your computation
 +  ** Configuration 1: channel bandwidth = 125 kHz, spreading factor = 7, coding rate = 4/5. 
 +  ** Configuration 2: channel bandwidth = 500 kHz, spreading factor = 7, coding rate = 4/5. 
 +  ** Configuration 3: channel bandwidth = 125 kHz, spreading factor = 12, coding rate = 1/2.
   * 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 69: Line 72:
 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.  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 following extract from the ''setup'' function configures the radio parameters of your LoRa devices:
    
-  * Central frequency (freq) +  * Central frequency 
-  * Spreading Factor (SF) +  * Spreading Factor 
-  * Bandwidth (Bw) +  * Bandwidth 
-  * Coding Rate (CR)  +  * Coding Rate  
-  * Transmit power (Pow)+  * Transmit power
  
 <code c++> <code c++>
Line 121: Line 124:
 ==== -. Time on Air ==== ==== -. Time on Air ====
  
-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.+In this section, you will measure the Time on Air (ToA) that is 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 message size on the ToA.
  
-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 expriment to obtain the statistical distributions.+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 multiple times in order to obtain the statistical distribution.
  
 <WRAP center round help 100%> <WRAP center round help 100%>
Line 131: Line 134:
   * Analyze the obtained results and compare with the theoretical computations. You can superpose the theoretical results and the experimental ones on the same graph.   * 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 ====+==== -. Coverage ====
  
-In this section, you will measure the Packet Delivery Ratio (PDR) 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+In this section, you will measure the coverage of LoRa under different radio configurations.
  
-Only for this test, all groups are required to use the same frequency (for example 868.10 MHz). +Start by identifying a set of five 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 (Packet Delivery Ratio)Now, you should run the experiment for three different radio configurations: such configurations should provide different reliability levels (high, medium, and low reliability). 
  
 <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?+  * Describe the radio configurations you selected and their impact on the reliability of the transmission.   
 +  * 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 the packet arrival rate on the collision rate and consequently the PDR.
  
 +The setting for this experiment is unique:
  
-In this section, you will measure the coverage of LoRa devices under the three different radio configurations. For thisyou can start by identifying a set of Test Points (TP) on the campusThenyou should implement function that sends packets with different radio configurations. Note 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 frequencyspreading factor, and coding rate. 
-<code c++> +  * On each clientpackets will be generated following Poisson process with the same average arrival rate for all groups
-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 PDR as function of the average arrival rate. 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 model enables to theoretically compute the PDR? Verify the obtained results.
 </WRAP> </WRAP>
-==== -. Path Loss ====+===== -. Coverage Challenge =====
  
-In this section, you will study the properties of the radio channel as used by the LoRa technologyFor this, you should obtain a large set of RSSI values for different distances, preferably in a free space setting.  +In this section, you are required to establish a record of LoRa coverage. You can certainly unleash your scientific imagination, but some rules must be followed to validate the record: 
 + 
 +  * Direct transmission between the two devices is only considered. 
 +  * 3D distance is computed between devices. 
 +  * PDR must be higher than 10% as computed for 100 packets.  
  
 <WRAP center round help 100%> <WRAP center round help 100%>
-  * Provide the expression of the link budget+  * Compute the Fresnel zone for your transmission
-  * Draw the RSSI values as a function of the distance.  +  * Provide the expression of the link budget and compute the received power using two different pathloss models
-  * What is the path loss exponent?  +  * Compare the received power obtained experimentally with the theoretical results
-  * Using regressions, compute a value of the path loss exponent. Analyze the result+  * Write an article (blog, wiki, ...) to describe your experiment.
-  * Compare the obtained sensitivity with the theoretical results computed in the previous section.+
 </WRAP> </WRAP>
-  
-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 ===== 
- 
- 
 ===== -. Grading ===== ===== -. Grading =====
  
exploring_lora.txt · Last modified: 2021/10/20 12:52 by samer