Optimizing the LoRaWAN Join Protocol

An end device should only initiate the Join procedure in the following circumstances:

  • When the device first joins the network
  • After a factory reset
  • After loss of connectivity with the network
  • When one of the frame counters has reached its maximum value
  • When it needs to generate new session keys for security reasons

Devices should not send a JoinRequest--even if the device is completely powered down. Rather, they should store the derived NwkSKey, AppSKey, frame counters, and other RF parameters for use when it powers up again, so that it can continue the network session where it left off. If possible, it should also continue with the same time pattern in use before the shutdown. That is, if the device sends regular updates every 30 minutes and it loses power 20 minutes after its update, it should wait ten minutes after it is powered-up again before sending its next regular update.

If the device loses its connection to the network and sends a JoinRequest but does not receive the corresponding JoinAccept message, the device should start a retransmission backoff procedure, as described in the LoRaWAN Specification.


Last modified: Tuesday, August 30, 2022, 12:16 AM