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?
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.
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);?