Lora For The Internet of Things: Martin Bor John Vidler Utz Roedig
Lora For The Internet of Things: Martin Bor John Vidler Utz Roedig
Lora For The Internet of Things: Martin Bor John Vidler Utz Roedig
weak
0.6 500 0.8
Bandwidth (kHz)
0.4
0.2
0.0 0.6
1.0
0.8
250
strong
PRR
0.6 0.4
0.4
0.2
0.0 125 0.2
1.0
0.8 0
corrupt
PRR
0.6
0.4 7 8 9 10 11 12
0.2 Spreading Factor
0.0
-80 -60 -40 -20 0 20 40 60 80 Figure 3. Carrier detection ratios for a transmitter send-
Offset (Symbol time) ing at spreading factor 7 and bandwidth 250 kHz, indi-
Figure 2. Example collision result. Spreading factor 11, cated by the white cross. Carriers were also detected by
bandwidth 125 kHz. X-axis shows the transmission offset adjacent data rates.
relative to the weak node in symbol time, Y-axis shows
the packet reception rate.
Findings
One of two concurrent transmission can be received with
very high probability if both transmissions do not have an
(airtime) late. For each offset, 16 32-byte packets were trans-
offset of more than 3 symbol periods. This translates to a
mitted using first identical packet payloads and subsequently
duration between 768 µs and 98.3 ms, depending on the SF
different payloads. We also run the experiment with all com-
and BW. Synchronisation of nodes within these bounds is
binations of SF and BW.
relatively easy to achieve and therefore protocols making use
The experiment results are shown in Figure 2 for SF12 of this feature can easily be implemented with LoRa.
and BW 125 kHz. The Y-axis represents the packet reception
rate. The X-axis represents the transmission offset relative to 4.3 Carrier Activity Detection
the weak node in symbol time. The top bar shows packets re- Transceivers normally provide a CCA interface to detect
ceived from the weak transmitter at the receiver; the middle an occupied channel. The CCA is used in communication
bar shows packets received from the strong transmitter at the protocols to decide if packets can be transmitted and to de-
receiver. The bottom bar shows when packets were received cide if the radio must be kept active to receive a message. In
from either transmitter but deemed corrupt (Cyclic Redun- particular for power constrained nodes it is important to have
dancy Check (CRC) failure). We did notice that about 1 in an accurate and fast CCA mechanism as this enables imple-
6000 packets was corrupted, but did not fail the CRC. Often mentation of power-efficient duty cycling. Nodes perform
these packets had 1 bit corrupted. periodic short CCA checks and only power the receiver for
longer if a transmission is detected.
Results for other SF and BW combinations are very simi-
lar. Also, transmitting the same packet payload or a different LoRa transceivers do not provide a classical CCA inter-
payload does not change the obtained results significantly. face based on an Received Signal Strength Indicator (RSSI)
threshold to detect an occupied channel. LoRa can receive
As can be seen, the strong transmitter is successfully de- transmissions with a signal strength that is below the noise
coded if it transmits not later than 3 symbol periods after the floor and, consequently, an RSSI threshold check will not re-
weak transmitter started (symbol period is Tsym = 2SF /BW ). veal an occupied channel. LoRa radios provide therefore a
If the weak transmitter starts later than 3 symbol periods no CAD mode to detect a present preamble.
transmission is received (or corrupted data is received). The CAD process takes approximately 2 symbol periods,
Although the packet takes 60.25 symbol periods to trans- and only requires the radio on for about 1 symbol period
mit, both nodes can be received at an offset of −57 sym- (The exact CAD duration is calculated as sum of (32/BW +
bol periods or more. The tail of the strong node does destroy 2SF /BW) seconds in RX mode and (SF · 2SF )/(1750 × 103 )
the initial preamble of the weak node, but as long as at most 3 seconds of processing). The processing phase requires about
symbols are destroyed, the weak packet can also be success- half of the energy required in receive mode (around 6 mA de-
fully received. This relationship is not symmetrical, as at an pending on the SF/BW). After receiving a ‘CAD detected’,
offset of +57 symbol periods, the weak node’s tail (CRC) a transceiver can be switched in RX mode to receive the on-
gets destroyed, invalidating a packet which may have been going transmission if required.
correctly received. It is only that at an offset of +60 sym- We set up an experiment to test the reliability of CAD.
bol periods or more, both packets gets received perfectly. A detector node starts the CAD process on a regular inter-
We also experimented with two transmitters set to the val (every 100 ms) and records whether it has detected a
same transmit power. In this case either of the two is per- carrier or not. After 300 samples, it switches the SF/BW
ceived as stronger and the above described behaviour applies combination and repeats the process. A transmitter node is
(although the role of stronger/weaker transmitter may alter- programmed to continuously send out preambles at a fixed
nate with each transmission making it difficult to conduct SF/BW combination. The experiment is repeated with dif-
experiments and describe results). ferent transmitter SF/BW combinations.
The results for a transmitter using SF7 and a BW of within slots and properties of the LoRa physical layer ensure
250 kHz are shown in Figure 3. Results for a transmitter us- that one of the concurrent transmissions is received. Mes-
ing different SF/BW combinations are similar. When trans- sages are distributed from the sink to nodes using flooding.
mitter and receiver use the same SF/BW combination the Messages from nodes to the sink use a directed flooding ap-
worst detection rate was measured at 97% (for SF7 and a proach. The result is a very simple but robust protocol which
BW of 250 kHz). However, the CAD process also detects covers the set requirements.
carriers in SF/BW combinations different from the combina- Figure 4 shows an operation example of LoRaBlink in a
tion the transmitter is using (up to 99% detections for SF9 network containing 3 nodes and a sink. Node 1 and 2 are in
and a BW of 500 kHz). This happens for data rates that are communication range of the sink. Node 3 cannot be directly
adjacent to the current data rate. When no transmitter is ac- reached by the sink but is in range of node 1 and 2.
tive, the detector had a false positive rate of 0.092%. Each node powering up will remain in listen mode until
Findings a beacon is received. Beacons are used for time synchroni-
CAD can only detect channel occupancy while a pream- sation and mark the start of an epoch. Each epoch contains
ble is transmitted. The detection probability is high (above N slots. The first NB slots of an epoch are used for beacon
97%) and false positives are low (0.092%). However, if mul- transmissions. A beacon message contains the hop distance
tiple LoRa networks are active on different SF/BW combina- to the sink and upon receiving a beacon a node will transmit
tions false positives can be very high (depending on SF/BW its own beacon according to its distance to the sink. A node
ratios). When using multiple SF/BW combinations in the will aim to select its position based on minimal distance to
same network (or when constructing multiple networks sep- the sink. In the example in Figure 4 the sink transmits a
arated by SF/BW) the choice of combinations is important beacon received by node 1 and node 2. Both nodes use the
when using CAD. beacon to determine epoch start and their distance to the sink
5 LoRaBlink (1 hop). In the next beacon slot node 1 and 2 transmit their
In this section we describe LoRaBlink, an IoT protocol beacon concurrently. Due to properties of the LoRa physical
for LoRa transceivers. The protocol is designed to support layer either one of these (depending on transmission time dif-
reliable and energy efficient multi-hop communication. It is ference and perceived signal strength at node 3) is received
also designed to support low-latency bidirectional commu- at node 3. Node 3 updates its hop distance to the sink as 2
nication. Thus, the described protocol is different to defined and transmits its own beacon in the next beacon slot. This
protocols for LoRa as given in the LoRaWAN 1.0 specifica- beacon is received by node 2 (we assume node 1 would not
tion. The protocol relies on features and building blocks as receive) which discards the message as its hop count is less
described in the previous section. than 2. The number of beacon slots NB determines the max-
imum depth the network can have.
5.1 Protocol Aims
LoRaBlink aims to address a number of aspects neces- Following the beacon slots are ND data slots. A node that
sary for deployment of IoT applications and which are not has data to transmit selects the next available data slot and
covered by currently defined LoRa protocols. These are: transmits. After transmission a node listens for an Acknowl-
edgement (ACK) (an optional protocol feature; the ACK is
• Multi-Hop: The protocol should support communica- not shown in Figure 4). Two nodes may transmit in the same
tion over multiple hops. slot with the result that at least one message is decoded by
• Low-Energy: Nodes should be able to duty-cycle to one receiver, with a chance that two different nodes in the
conserve energy and enable battery powered operations network decode one of each transmission. If a node has a
over long time spans. lower hop count to the sink than the source node it will relay
• Resilience: The protocol should be resilient and enable the message in the next slot. Multiple nodes may forward
high message delivery probability. which introduces redundancy. ACK messages may also col-
lide but a receiver will always be able to decode one of mul-
• Low-Latency: The protocol should enable low-latency tiple ACK correctly. In Figure 4 node 3 generates a data
communication. message. The message is received by node 2 and 1 which
Further to these requirements we also make the assump- then forward the message simultaneously in the next slot.
tion that the network has a low density, low traffic volume The sink will be able to decode one of the two transmissions.
and contains a limited number of nodes. We also assume Data travelling from the sink to a node will use the same
that a single sink is used for communication and that com- mechanism as used for beacon distribution. If the sink has
munication is between the sink and the nodes. to send non-delay sensitive information to nodes in the net-
A vast number of protocols exist to implement theses re- work it can be delayed and included in beacon messages for
quirements [4]. However, none of the available options is distribution.
particularly designed to make use of LoRa specific features
such as the ability to receive one message out of a pool of 5.3 Node Lifetime
concurrent transmissions. To improve energy consumption of the system beacon
5.2 Protocol Operations messages are sent infrequent (a long epoch is used) and the
The protocol integrates MAC and routing in a single sim- CAD is used within slots to detect incoming transmissions.
ple protocol. Time synchronisation among nodes is used to Infrequent beacon transmission is possible as tight time syn-
define slotted channel access. Nodes transmit concurrently chronisation in the network is not necessary.
Sink TB RB C C C RD C C TB
TB Transmit Beacon
Node 1 Listen RB TB C C RD TD C C RB RB Receive Beacon
TD Transmit Data
Node 2 Listen RB TB RB C RD TD C C RB
RD Receive Data
Node 3 Listen RB TB C TD C C C C C CAD
Figure 4. LoRaBlink: Protocol example using a 4 node network.