4 - Implementing Adaptive Data Rate
Adaptive Data Rate (ADR) describes the scheme whereby the network server controls the data rate, RF transmit power, and channels an end device uses when sending uplinks, as well as the number of retransmissions made.
The network server uses the Received Signal Strength Indicator (RSSI) of the messages received from the end device to determine how close the end device is to the nearest gateway(s). This allows the network server to select the most appropriate settings for each end device.
The benefits of ADR are that it helps preserve the battery life of an end device and reduces interference, giving all end devices on the network the best chance of communicating successfully.
Processing LinkADRReq MAC Command
Apply Changes
The changes to be applied in the LinkADRReq command vary depending on whether the end device is implementing ADR or not.
When ADR Is Being Implemented
If the end device is implementing ADR, then either none or all of the changes requested must be applied.
If any of the validations described in the section Convert and Validate LinkADRReq failed, then none of the updates shall be made. Next, the LinkADRAns will be sent with all status bits set to 0, as described in section Respond with LinkADRAns.
If all the validations described in the section Convert and Validate LinkADRReq passed, then all the requests must be processed:
-
The end devices channel list must be updated to the channels calculated as REQUESTED_CHANNELS in the Convert and Validate LinkADRReq section.
-
The end devices TX Power must be updated to the EIRP value referred to as REQUESTED_TX_POWER in the Convert and Validate LinkADRReq section, unless this is already the current EIRP level being used by the device.
-
The end device’s data rate must be updated to the data rate referred to as REQUESTED_DATA_RATE in the Convert and Validate LinkADRReq section, unless this is already the current data rate being used by the device.
-
The end devices NBTrans value must be set to the value calculated as NB_TRANS in the Convert and Validate LinkADRReq section. Section Retransmitting Uplinks of the Receiving Messages Book discusses the use of the NBTrans value when resending uplinks.
Next, the LinkADRAns will be sent with all status bits set to 1, as described in section Respond with LinkADRAns.
Because the broadcast settings have been updated, the end device must also now begin to operate the ADR backoff procedure, described in the section ADR Backoff. This increases the chance of the end device reconnecting to the network in the event of a change to the surrounding gateways or device position.
When ADR Is Not Being Implemented
If the end device is not implementing ADR and all of the validation described in the section Convert and Validate LinkADRReq has passed, the end device must now enable all the channels identified as REQUESTED_CHANNELS.
When ADR is not being implemented, REQUESTED_DATA_RATE and REQUESTED_TX_POWER are both considered the same as the existing values, so no updates are required.
Next, the LinkADRAns must be sent with the ChannelMaskACK bit set to 1, and all other status bits set to 0, as described in section Respond with LinkADRAns.
Because the channel list has been updated, the end device must also now begin to operate the ADR backoff procedure, described in the section ADR Backoff. This increases the chance of the end device reconnecting to the network in the event of a change to the surrounding gateways or device position.