Understanding the LoRaWAN Specification: LW1.0.4
At the time of writing, the current LoRaWAN specification is the TS001-1.0.4 LoRaWAN L2 1.0.4 Specification, released in October 2020. Before we get into the details of the current LoRaWAN specification, let’s take a look back at the LoRaWAN architecture.
As illustrated in the following diagram, the LoRaWAN L2 specification addresses the protocol layer, shown in the blue box, just below the application layer.
LoRaWAN Technology Stack
The LoRaWAN L2 specification describes the LoRaWAN network protocol, which is optimized for battery-powered end devices that may be either static or mobile.
It also describes the three different operational classes of an end device on a LoRaWAN network, namely, Class A, Class B, and Class C. These different classes are used to manage communication latency between an end device and the LoRaWAN network.
- Class A: Allows bi-directional communications, where the end device initiates the uplink transmission, which is followed by two short downlink receive windows (RX1 and RX2).
- Class B: Allows more receive (RX) windows, than the two allowed in Class A mode. End devices operating in Class B mode open additional receive windows at scheduled times. Class B mode is also known as “Beaconing” mode.
- Class C: Allows for RX windows that only close while the end device transmits an uplink to the network. End devices operating in Class C mode use more power than Class A and Class B devices. Additionally, they are typically mains powered, rather than battery powered. Class C devices have the lowest latency for communication between servers and end devices. Class C mode is also known as “Continuously Listening” mode.
Note
All end devices on a LoRaWAN network must support Class A operation. Support for Class B and Class C operation is optional.
The LW1.0.4 specification establishes the following:
- The standardized encryption format and the creation of the Message Integrity Code (MIC).
- The proper construction of LoRaWAN messages, both for uplinks and downlinks, as is the case for the join procedure.
- The available MAC commands.
As we mentioned above, the specification also describes the LoRaWAN device classes (A, B, and C), the RX window slots, and much more. With these standards in place, LoRaWAN-compatible devices can join any LoRaWAN network.
The specification also covers the following:
- Uplink / Downlink Packets (direction of packets determined from the End device view)
- Opening timings of RX windows
- MAC Frame Formats
- PHY Payload (PHYPayload)
- MAC Header (MHDR field)
- MAC Payload of Data Frames
- Message Integrity Code (MIC)
- MAC Commands
- End-Device Activation
- Over-the-Air Activation
- Activation by Personalization
- Retransmissions Backoff
- Class B – Beacon
- Class C – Continuously listening
Note
With the release of the LW1.0.4 L2 specification, the LoRa Alliance changed its terminology. The parameters referred to in earlier specifications as the AppEUI and AppNonce were renamed JoinEUI and JoinNonce.
(Time: 7:01 minutes)