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/29 11:01] – [1.2. Software Tools] samer | exploring_lora [2021/10/20 12:52] – [4.2 Collisions and Packet Delivery Ratio] 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 9: | Line 9: | ||
</ | </ | ||
- | ===== -. Setting the Lab ===== | + | ===== - Setting the Lab ===== |
- | ==== -. Hardware Platform ==== | + | ==== - Hardware Platform ==== |
In order to design and implement experiments with LoRa, you will use the following devices: | In order to design and implement experiments with LoRa, you will use the following devices: | ||
- | * Arduino Mega (x2). | + | * Arduino Mega or Arduino Duemilanove |
* LoRa shields from [[http:// | * LoRa shields from [[http:// | ||
Line 22: | Line 22: | ||
* Give the main characteristics of the LoRa shield from Dragino (www.dragino.com). | * Give the main characteristics of the LoRa shield from Dragino (www.dragino.com). | ||
* What type of Antenna are you using? Explain the corresponding characteristics. | * What type of Antenna are you using? Explain the corresponding characteristics. | ||
- | * Give an estimated cost of your platform. | + | * Give an estimated cost of your devices. |
</ | </ | ||
- | + | ==== - Software Tools ==== | |
- | ==== -. Software Tools ==== | + | |
Download the following software on your PC: | Download the following software on your PC: | ||
Line 34: | Line 33: | ||
<WRAP center round tip 75%> | <WRAP center round tip 75%> | ||
- | Note well the location | + | Make sure to restart your computer after the installation |
</ | </ | ||
- | ==== -. Installation ==== | + | |
+ | |||
+ | ==== - Installation ==== | ||
Start by plugging the Dragino shields on the Arduino devices and mounting the antennas as shown in Fig. 1. | Start by plugging the Dragino shields on the Arduino devices and mounting the antennas as shown in Fig. 1. | ||
Line 44: | Line 45: | ||
Connect the two Arduino devices to USB ports on your computer. If this is the first time you use Arduino IDE, make sure to install the necessary USB drivers by selecting '' | Connect the two Arduino devices to USB ports on your computer. If this is the first time you use Arduino IDE, make sure to install the necessary USB drivers by selecting '' | ||
- | Now, you have to choose the '' | + | Now, you have to choose the '' |
<WRAP center round tip 75%> | <WRAP center round tip 75%> | ||
For Arduino Mega 2560, additional drivers for Microsoft Windows can be installed from [[http:// | For Arduino Mega 2560, additional drivers for Microsoft Windows can be installed from [[http:// | ||
+ | For Arduino Duemilanove, | ||
+ | [[https:// | ||
+ | |||
</ | </ | ||
- | + | ===== - Theoretical Study ===== | |
- | ===== -. Theoretical Study ===== | + | |
In this section, you will perform a theoretical assessment of the performance of LoRa modulation. You will later compare this theoretical results to the experimental ones as in a typical scientific study. | In this section, you will perform a theoretical assessment of the performance of LoRa modulation. You will later compare this theoretical results to the experimental ones as in a typical scientific study. | ||
<WRAP left round help 100%> | <WRAP left round help 100%> | ||
- | * What is the relation between processing gain and spreading factor in LoRa modulation? | + | * What is the relation between processing gain and spreading factor in LoRa modulation? |
* 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 | + | * What is the transmission bit rate for each of the following |
+ | * 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, | * Compute the receiver sensitivity, | ||
* Compare the computed sensitivity to that provided by the {{ : | * Compare the computed sensitivity to that provided by the {{ : | ||
Line 63: | Line 69: | ||
In the remainder of this lab, you will conduct measurements to validate the obtained theoretical receiver sensitivity. | 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 | ||
+ | * Spreading Factor | ||
+ | * Bandwidth | ||
+ | * Coding Rate | ||
+ | * Transmit power | ||
+ | |||
+ | <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 between simultaneous experiments, | ||
^ Group Number | ^ Group Number | ||
Line 82: | Line 114: | ||
| | | | ||
| | | | ||
+ | ==== - Running Basic Sketches ==== | ||
- | For this, open the '' | + | Now you can compile and upload |
- | <file cpp RH_RF95.cpp> | + | [{{ : |
- | setFrequency(86X.Y); | + | [{{ : |
- | </file> | + | ===== - 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:// | ||
- | The typical configuration for LoRa modules consists | + | As we are in presence |
+ | ==== - Time on Air ==== | ||
- | * Bw125Cr45Sf128 | + | In this section, you will measure the Time on Air (ToA) that is given by the time necessary to transmit a packet on the radio interface. You will assess the impact of the spreading factor, bandwidth, coding rate, and packet size on the ToA. |
- | * Bw125Cr48Sf4096 | + | |
- | * Bw31_25Cr48Sf512 | + | |
- | Radio configuration is applied in '' | + | Start by implementing a function on the client that measures the time necessary for sending a packet. You can have recourse to the [[https://www.arduino.cc/ |
- | <file cpp RH_RF95.cpp> | + | |
- | setModemConfig(Bw125Cr45Sf128); | + | |
- | </ | + | |
- | ==== -. Running Basic Sketches ==== | + | |
- | Download | + | For example, |
- | [{{ : | + | As for the theoretical computation |
- | [{{ : | + | |
- | ===== -. Performance Evaluation ===== | + | |
- | In the following, you will design and implement a set of scenarios that enable to evaluate | + | |
- | ==== -. Time on Air ==== | + | * The Semtech {{ :ds_sx1276-7-8-9_w_app_v5.pdf |specification}} (section 4.1.1.6) |
+ | * An explanatory video: https:// | ||
+ | * Various calculation tools available online: https:// | ||
- | In this section, you will measure | + | Note that all messages sent and received by the [[https:// |
- | 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:// | + | * 8 symbol PREAMBLE |
+ | * Explicit header with header CRC (handled internally | ||
+ | * 4 octets HEADER: (TO, FROM, ID, FLAGS) | ||
+ | * 0 to 251 octets DATA | ||
+ | * CRC (handled internally by the radio) | ||
<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 ==== | + | ==== - Collisions and Packet Delivery Ratio ==== |
- | In this section, you will measure | + | In this section, you will compute |
- | Only for this test, all groups are required to use the same frequency (for example 868.10 MHz). | + | Let us consider an ALOHA model for the random access in a LoRaWAN network. |
<WRAP center round help 100%> | <WRAP center round help 100%> | ||
- | * Draw the PER as a function of the transmission period for the different radio configurations. Analyze your results. | + | * What are the advantages of a random access in a wireless IoT context? |
- | * What type of mathematical models enables to theoretically compute | + | |
</ | </ | ||
- | ==== -. Coverage ==== | + | Suppose that the packet length is 50 bytes. |
+ | <WRAP center round help 100%> | ||
+ | * What is the maximum packet generation rate for each spreading factor (SF7 to SF12)? Explain your answer. | ||
+ | </ | ||
- | In this section, you will measure | + | In the following we consider N devices transmitting 50 bytes packets |
- | + | ||
- | <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. | + | * Compute |
- | * Give a statistical measure | + | |
+ | * Plot the number of successful transmissions per hour as a function | ||
+ | |||
+ | * Plot the packet delivery ratio as a function | ||
+ | |||
+ | * Plot the number of successful transmissions per hour per device as a function of the number of generated packets per hour per device for 20 and for 100 devices. Note well the duty cycle limitation. | ||
</ | </ | ||
- | ==== -. Path Loss ==== | + | ===== - Coverage Challenge ===== |
- | In this section, you will study the properties | + | Start by identifying a set of three geographical locations or Test Points (TP). These TPs should be astutely chosen to explore |
<WRAP center round help 100%> | <WRAP center round help 100%> | ||
- | * Provide | + | * Draw the test points on a map and motivate your choices. |
- | * Draw the RSSI values as a function | + | * Describe |
- | * What is the path loss exponent? | + | * Visualise |
- | * Using regressions, | + | * Analyze |
- | * Compare | + | |
</ | </ | ||
- | |||
- | 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 ===== | ||
+ | You are now required to establish a record of LoRa coverage. You can certainly unleash your scientific imagination, | ||
- | ===== -. Grading ===== | + | * Direct transmission between the two devices is only considered. |
+ | * 3D distance is computed between devices [[http:// | ||
+ | * PDR must be higher than 10% as computed for 100 packets. | ||
+ | * Supporting live video and screen capture should be used to authenticate the record. | ||
+ | |||
+ | You can use [[https:// | ||
+ | |||
+ | <WRAP center round help 100%> | ||
+ | * Compute the Fresnel zone for your transmission. Comment the result. | ||
+ | * Provide the expression of the link budget and compute the received power using two different path loss models (ITM, Line of sight) with Cloud RF. | ||
+ | * Compare the received power obtained experimentally with the results of the online simulators. | ||
+ | * Prepare a short presentation (5 minutes pitch) to describe your experiment. | ||
+ | </ | ||
+ | |||
+ | <WRAP center round important 75%> | ||
+ | This challenge and the corresponding grading is considered as a part of the final project. | ||
+ | </ | ||
+ | ===== - Grading ===== | ||
- | | ^ Exemplary | + | | |
- | ^ Answer | + | ^ Techniques for Engineering Practice |
- | ^ Design experiments | + | ^ Skills for Engineering Practice |
- | ^ Analyse results | + | ^ Engineering tools | Students showed advanced ability |
+ | ^ Problem solving | ||
+ | ^ Results and analysis | ||
+ | ^ Motivation, initiative, and creativity | ||
+ | ^ Written communication skills | ||
+ | ^ Scientific referencing |
exploring_lora.txt · Last modified: 2021/10/20 12:52 by samer