- Newest
- Most votes
- Most comments
Hi. The LNS is required to support ADR. AWS IoT Core for LoRaWAN will perform ADR if the device sets the ADR bit in the frame header. There is nothing for you to do to enable it on the cloud side. You just need your device to set the ADR bit in the frame header of uplinks. However, you can use DrMin
and DrMax
in the service profile to limit the data rates that ADR can select.
You can use the network analyzer to inspect the frames and frame headers. The network analyzer will also log ADR operations if any are happening. So please use that to get greater visibility into what's going on.
Ok so the official answer is actually AWS doesn't support ADR it just will try to change TX_power of the device and always stays in DR3.
Would've prefered to know before going production on this... Anyway as pointed out by Greg you can set device profiles with custom DrMin DrMax which are usless because DrMin always equal DrMax to be usefull but it allows you to set manually the data rate of certain devices via ADR.
Quote from official answer from AWS team:
If the device's signal is turning bad, AWS will try to let the device tune the TX power up or transmit more times. For our current ADR algorithm, if signal turns bad, DR will not decrease but instead we request the devices to increase the TX power.
Hi. I think you've somewhat misunderstood that response. AWS IoT Core for LoRaWAN does support ADR and it does modify the data rate. Per the standard, the LNS can modify the DR and the TX power using the
LinkADRReq
MAC command. AWS IoT Core for LoRaWAN does modify the DR, based on the SNR of uplinks. In particular, it will ask the device to increase DR if the SNR of uplinks is strong."For our current ADR algorithm, if signal turns bad, DR will not decrease but instead we request the devices to increase the TX power." This means that if the DR raises too high, and uplinks are not received, AWS IoT Core for LoRaWAN will not automatically request a reduction in DR. Per the standard the device "periodically needs to validate that the network still receives the uplink frames". If the device does not receive an ack after
ADR_ACK_LIMIT
uplinks, it should send anADRACKReq
. And eventually lower DR itself if no downlinks are received from the LNS. Does your device do this?
Hi, we are making improvements to our ADR algorithm, and will allow customers to take more control over how ADR works for their specific use cases. Can you please reach out to me and i can share more details.
Relevant content
- asked 2 years ago
- asked 2 years ago
- asked a year ago
- AWS OFFICIALUpdated a year ago
- AWS OFFICIALUpdated 2 years ago
- AWS OFFICIALUpdated 5 months ago
- AWS OFFICIALUpdated a year ago
Hi thanks that's exactly what I was looking for. However there is no DR choice when creating from console so it will have to be from API, I'm not used to use the API yet so will have to experiment. However I see a DrMax set to 15 but not DrMin is set. Probably the Default value is 3.