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:

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.