ADR Power & Data Rate Relationship

Hello All,

I have noticed a peculiar behavior when using ADR. When I set:
coreConfig.Join.DataRate = DR_AUTO
coreConfig.Join.Power = PWR_ATT_10dB
coreConfig.TX.DataRate = DR_ADR
coreConfig.TX.Power = PWR_ADR,
joining and transmitting work fine.

However, when I change coreConfig.TX.Power to a fixed value and leave the Tx data rate at Auto, my devices joins properly, but never transmits a packet. Is this correct behavior? That is, must the Tx Data Rate and Tx Power BOTH be set to Auto or BOTH be set to a non-auto Value? Please note that I have stack BA.


Hi Paul,

Sorry for the delayed reply. The behavior you describes is correct. It’s not possible to have the DataRate to set to ADR while the Power set to a fixed value. This is because the LoRaWAN Network uses a combination of DataRate with Power for ADR.


Hi Rolf,

Thanks for the answer.

Is it possible to limit the output power and still use ADR? That is, can I set a maximum power that the ADR can choose? Since I harvest energy from the signal I am measuring, my concern is not only with the average power consumption, but also the energy used in a single transmission.

Normally, I require a minimum amount of stored charge (actually capacitor voltage) in order to transmit. If there is not enough charge, I skip the transmission and go to sleep. Upon wakeup, I check the charge again and either transmit or go back to sleep. This method works quite nicely when using a reasonable fixed power setting (-10dB from maximum).

However, when using ADR at minimum permissible charge for transmission and minimal signal available for harvesting, the capacitor voltage can dive low enough to reset the module. The device then goes into a repeating cycle of Join, Transmit, then Reset. For practical reasons, I can’t increase the storage capacitance or the transmit voltage threshold.

I like the idea of using ADR to optimize communication, but I feel it necessary to limit transmit power to a reasonable amount.

If it is not possible to limit transmission power in ADR, is it OK to switch back and forth between ADR and a fixed power/data rate? If so, I could use ADR when charge and signal are plentiful, but switch to fixed power/data rate during “lean” times? Does that sound practical?


Hi Paul,

In my opinion the best way to deal with this situation is to change our stack in such a way that the provided power is actually an offset of the ADR provided power by the network. This way, the process of adjusting the power by the network is still ‘linear’ (as if the device is placed further away).

Let me check if this is an easy modification, I will get back to you.