Experimental Scenarios and Datasets

 

Test Setups

  • Indoor LoS                     
  • Indoor NLoS                 
  • Long Range Outdoor   

A network of 20 transmitting LoRa nodes T1 through T20 was created and a distribution of SNR was achieved by spreading the 20 nodes in either one of 3 experimental scenarios shown above. There was a roll-call node R and a beacon node B. Node R is used in setting up the parameters for each experimental setup without manually changing the setting at each location serially. Each transmitter node (T1 through T20) would reply only when it receives its unique roll-call message from R. The roll-call messages were sent at a predefined SF and BW. Therefore, all the nodes reset to this SF and BW to listen before the start of any experiment. These replies were also used for calculating node-specific SNR at the USRP B200 (serving as a base station for each experiment) and also to ensure that each node could listen at their respective distance from the base station. Similarly, B transmits a broadcast to inform the nodes about the settings such as SF, BW, transmission rate for the upcoming experiment.

For network experiment, the beacon node B sends a broadcast packet that informs each node Ti about transmission rates (how many packets to transmit with in 1s) for the upcoming experiment. Poisson Distribution was used at the end nodes Ti to generate time offsets that would govern specific transmission rates. B would also broadcast control messages to all 20 nodes informing each about the start of the experiment and thus asking them to transmit packets at the defined rate one after the other. Each node transmitted to the base station for approximately 30 seconds. All network and SNR experiments were repeated following the aforementioned roll-call and beacon process to ensure no nodes were lost.

Co-existence of multiple LoRa networks as well as across technologies has been identified as a bottleneck for scalability. In this experiment, we evaluate the throughput performance of the five demodulators in the presence of LoRa transmissions from neighboring LoRa networks as well as non-LoRa, Gaussian Frequency Shift Keying (GFSK) narrow-band transmissions, representing other LPWANs operating in the same band. Network interference experiments utilize a similar setup to the primary network experiments with addition of some extra nodes that served as interferers. However, interfering nodes were deployed within 10m of the receiving USRP B200. Interference was created by a LoRa transmitter, transmitting with a different SF and BW to the primary network and a GFSK transmitter. Following is an overview of this Experiment

Primary LoRa Network

  • 20 nodes, (SF10, BW 250kHz)

Interfering Network

  • 1 LoRa node, (SF8, BW 125kHz) 50% Duty Cycle
  • 1 GFSK node, 50% Duty Cycle

Network and interference experiment Arduino code can be located within the Experiment_Setup/Random_Network directory on the OpenLoRa Github page.

So far for varying transmission rate network experiments, we increased the rate of individual node’s packet transmission and in turn we obtained increased random collisions amongst nodes. In order to get more controlled collisions amongst node and understand the limitations of each algorithm, we ran concurrent transmission experiments using a separate beacon node B to continually synchronize from 2 to 12 transmitting nodes, T1 through T12. B would broadcast a short message. On receiving this message each node transmits a single packet of predetermined constant duration (Tpkt_dur) with a random delay bounded in between 0 to a whole packet duration [0, Tpkt_dur]. This delay ensured that the packets of all the responding nodes will collide within a packet duration. We changed the number of concurrent collisions from 2 till 12 and by running different demodulators on each dataset and finding packet reception ratio (PRR), we were able to find the limits on how many concurrent collisions each demodulator can resolve. We collected this dataset for two settings of Spreading Factor.

1- SF8/BW125kHz

2- SF10/BW250kHz

The concurrent transmission experiment’s Arduino code can be located within the Experiment_Setup/Random_Offset directory on the OpenLoRa Github page.

FTrack mentions that the time offsets between two colliding packets also affects the decodibility of colliding packets. Therefore, in order to study the effect of very controlled and accurate time offsets, we set up a 2 node experiment, in which the node T1 would transmit a packet at time 0 and node T2 would transmit packet with a delay of t, where we increased t from 0 to Tpkt_dur . To achieve reliable, and precise collisions with microsecond accuracy, we relied on interrupt-driven transmissions. Both transmitting nodes T1 and T2 (Adafruit Feather M0 boards), were connected to a third driving node D (Arduino Microcontrollers MCU) periodically triggering interrupts via a pin tied on T1 and T2. Upon receiving the interrupt, T1 immediately transmitted its LoRa packet. The interrupt to node T2 however was sent with increasing time offsets in order to get controlled collision time offset. Both transmitting nodes were in similar orientation and had same distance to the base station thus ensuring similar SINR at the receiver. The packet time offset experiment’s Arduino code can be located within the Experiment_Setup/Precise_Offset directory on the OpenLoRa Github page.