Table of Contents

LoRaWAN specification. The end-devices activation

To join the LoRaWAN network, the end-device must go through the activation procedure (End-Device Activation). The specification provides for two options for activating devices:

The device must contain the following values after activation:

OTAA - Over-The-Air Activation join procedure

The join procedure is always initiated by the end-device and consists of two messages exchanged between the end-device and the network server: join request (device → server) and join accept (server → device).

The join request message contains AppEUI, DevEUI, and a random DevNonce:

Join Request
3 bytes 3 bytes 4 bytes 1 byte 1 byte 16 bytes
AppNonce NetID DevAddr DLSettings RxDelay CFList

For each end-device, the network server remembers the DevNonce values that were used before and ignores requests containing duplicate DevNonce values. In response to a join request, the server sends a join accept message.

Join Accept
3 bytes 3 bytes 4 bytes 1 byte 1 byte 16 bytes
AppNonce NetID DevAddr DLSettings RxDelay CFList

where:

The DLSettings field [8 bits] has the following format:

DLSettings
7th byte 6…4 bytes 3…0 bytes
RFU RX1DRoffset RX2 Data rate

where:

Random numbers DevNonce and AppNonce are used to calculate session keys NwkSKey and AppSKey.

ABP - Activation By Personalization

“Activation by Personalization” means that the DevAddr, NwkSKey and AppSKey values are directly written to the device (the device is personalized). According to the specification, each device must contain unique NwkSKey and AppSKey session key values so that the compromise of these values contained in one device does not lead to the compromise of other network devices.

With this activation method, the end-device does not need to go through the network join procedure, the device is ready for data transfer immediately after switching on.