LoRaWAN 1.0.4
In October 2020, the LoRa Alliance published a new update to the LoRaWAN networking protocol, LoRaWAN TS1-1.0.4. This is the latest version in the 1.0 series, designed to make LoRaWAN easier to develop, deploy, manage, and keep compatible across devices.
You can download the LoRaWAN 1.0.4 Specification Package, which includes:
- LoRaWAN Link Layer Specification v1.0.4 – explains how the LoRaWAN network protocol works.
- LoRaWAN Certification Protocol v1.0.0 – describes the functional tests for device certification, including protocol commands.
- LoRaWAN 1.0.4 End Device Certification Requirement v1.1 – lists the minimum tests needed for a device to earn the “LoRaWAN Certified” label.
This version can be used as a starting point for building LoRaWAN products. It also works with the LoRaWAN Certification Test Tool (LCTT) to check if your product meets certification requirements. Another handy addition: device claiming with QR codes is now easier and more automated.
Key Improvements in LoRaWAN 1.0.4
The update brings better security, improvements for Class B devices, and clearer rules for certain features. Here’s a quick look at some of the changes:
Security Updates
- Frame Counters: Devices must now use 32-bit frame counters stored in non-volatile memory (like NVRAM). This keeps the counters safe across reboots and helps prevent replay attacks.
- ABP Devices: Frame counters can no longer be reset during the device’s lifetime.
- DevNonce Handling: DevNonce must always increase instead of being random (as in v1.0) or starting at 0 (as in v1.1). This helps the Join Server detect replay attacks.
- Naming Changes: AppEUI and AppNonce are now called JoinEUI and JoinNonce (same as in LoRaWAN 1.1).
- Join Server Requirement: Devices should use a Join Server to handle the join process and generate session keys.
Class B Improvements
- FPending Bit: Priority rules for ping slot sequences are now clearly explained.
- Beacon Formats: Defined for spreading factors SF8 to SF12.
- Beacon Randomization: Helps indoor gateways avoid interference.
- Time Precision Field: Shows how accurate the beacon’s time source is.
- GPS Coordinates: Latitude and longitude format is now specified.
- ACK Rules: Prevents certain acknowledgements from being sent after timeouts.
- PingSlotChannelReq: Now “sticky,” meaning it’s repeated in uplinks until a Class A downlink is received.
Clarifications and Refinements
- Class A, B, and C can work together.
- FPort values above 224 are reserved but no longer discarded.
- Adaptive Data Rate (ADR) management is refined
- MAC commands are now mandatory
- Clearer rules for AddrPrefix in DevAddr.
- Better channel selection during join.
- CFList handling clarified
- Retransmission backoff defined to handle lost messages
- Class C devices can send uplinks after joining
- Network MAC commands are only sent in Class A downlinks
- If you want all the technical details, check page 86 of the LoRaWAN L2 1.0.4 Specification for the full change log.
