On initialisation, devices in AU must assume dwell time limiting is enabled (UplinkDwellTime = 1, 400ms dwell), so initial data rate must be DR2. (Reference “LoRaWAN 1.0.3 Regional Parameters”, section 2.6.2; “LoRaWAN 1.1 Regional Parameters”, section 2.6.2)
Note this is a key behaviour difference between AU915 and US902. US902 starts at DR0. Also note that this is a relatively new problem as the requirement to use DR2 as the starting DR was introduced in regional parameters 1.0.2b as it was DR0 in previous specifications, so older end node devices are not affected.
When ADR is enabled, this is causing the LinkADRReq to be rejected as it contains “dataRate: 0”, which is below the minimum permitted value of DR2. The LinkADRAns has the Data Rate Ack bit cleared.
According to the LoRaWAN specification:
“If any of those three bits equals 0, the command did not succeed and the node has kept the previous state.”
The LoraServer continues to send LinkADRReq with exactly the same parameters and it keeps being rejected by the device as the DR is too low.
The result is that ADR never progresses.
The LoRaServer should be trying a different data rate for the LinkADRReq until it finds one that the device can cope with.
If the LoRaServer receives a LinkADRAns with the data rate ack bit clear, it should increment the data rate for the next LinkADRReq.