During ADR operation, device lost after datarate == minTxDatarate (v1.0.3) #1208
Replies: 2 comments
-
The provided implementation is correct and complies with LoRaWAN 1.0.3 specification plus the LoRa-Alliance errata note concerning the ADR – harmonize state transitions In addition the certification process verifies that the errata implementation is in place. If you don't mind I move this issue to the Discussions tab. |
Beta Was this translation helpful? Give feedback.
-
I agree with the OP here. We have encountered this situation in practise, resulting in severely degraded uplink communications (down from virtually 100% successful uplink communications to around only 30% successful after the channel mask is reset to the regional defaults). In this case, instead of setting the channel mask to the region defaults, I think it would make more sense to put the device in a "Network JOIN" state. In this "Network JOIN" state, the application can implement backoffs in case of no reply from the LNS to conserve battery life. Eventually when LNS communications resume, the node will get the correct channel mask and use the recommended data rate from the LNS. Even if the device is not put into JOIN mode after this issue, it would be still be preferable to at least leave the channel mask as is, instead of changing it to the region defaults. Setting the channel mask to region defaults in this scenario results in unnecessary uplink message loss once LNS communications are restored, since the device is inadvertently sending on frequencies that the gateways are not listening on. Whether the LoRaWAN spec is being followed or not is a technicality, however, the implementation is certainly not ideal from a system performance/reliability perspective. |
Beta Was this translation helpful? Give feedback.
-
Issue / symptoms
After a long period of no service / no downlink responses, end device becomes unreliable in uplink communication attempts after service re-established.
Root cause analysis
Debugging traces to a point in code where the channel mask is changed from previous network configuration.
LoRaMacAdr.c (v4.4.7)
When datarate reduction reaches minTxDatarate, the channel mask gets reset to default, which activates all channels. As a result the end device subsequently sends uplinks on potentially unavailable channels. This can lead to detrimental behaviour such as the following:
-degraded service
-energy waste / battery impact
-unnecessary Tx/noise
Specification reference
According to specification v1.0.3,
There is no requirement to reset the channel mask, and appears to be exceeding the spec. description.
Further research reveals that according to specification v1.1,
This reset of channel mask in v1.0.3 appears to be an artifact of v1.1.
Resolution
Compliance with v1.0.3 can be achieved by removing code resetting the channel mask when minTxDatarate is reached, thereby adhering more strictly to the spec. description.
Beta Was this translation helpful? Give feedback.
All reactions