RAK4631 RUI Deep Sleep Issue

Hello,
I am using RAK4631 core with RAK5811 ADC module to take voltage samples every 2 minutes and send data over LoRaWAN. I want my device to enter deep sleep while it is doing nothing so I used:
In the setup:
api.system.sleep.setup(RUI_WAKEUP_FALLING_EDGE, WB_IO3);
In the loop:
api.system.sleep.all(75000);

However, I could only get lowest current current consumption of 4mA. Am I missing anything? Is there any way to get my core reach uA power consumption level?

Thank you

Do you shut down the RAK5811 by setting WB_IO1 to LOW?

Hi beegee,
Thank you for the reply
Yes I added that to my algorithm. I have even tried removing it while the code is running and there was no significant improvement in power consumption.

What LoRaWAN Class do you use?

Class A shuts down the LoRa transceiver unless there is an TX/RX cycle.

Class C has the LoRa transceiver in listening mode all the time which will consume 5-6mA, that is normal.

Hi,

I am using Class A.

I noticed that even after executing the sleep all command, the code continues to run. When checking on TTN network side, the device stays joined to the network even after executing sleep all command.

The device should stay joined on the LNS, even if it goes to sleep. Re-joining is only required after a power-up or reset.

You say the device does not go to sleep. How is your code working?
If you call api.system.sleep.all(75000); immediately after you send a data packet, the system will wake up after the TX/RX cycle is finished. That is normal behaviour, because the LoRa transceiver will initiate an interrupt. Did you implement the TX finished callback to know whether the TX/RX cycle is finished before you call the api.system.sleep.all(75000);?

I am getting 22.23 uA sleep current with a RAK3172 and the RAK5811.
I send you my code per PM. It is based on my RUI3-LowPower-Example

Hi beegee,
I have examined your code. I found that my code was missing
api.system.lpm.set(true);

I had a timer that is generating an event every 10ms that I was using as system tick for my system. I reduced that to 500ms

Now the current consumption in my application has dropped to 0.75mA at 3.3V

thank you so much for the awesome support. I have never seen such support on any platform before.

Hi @wardzx

You’re welcome. I am glad we could help.

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.