You call SYS_EnableSleepWhenIdle() and device will sleep all the time when there is nothing to do.
I'm using Bitcloud 3.2.0, which I believe has this function.
If you are already doing one of those things, then are you sure if this power consumption does not come from external circuitry on the board?
There is not much else mounted on the board except this chip and the sorroundings (antena, balun, etc, what is mentioned in this chip's sheet).
I would not expect the rest to consume more than 1mA altogether.
It is possible, but not easy. You will have to look though the HAL sleep code and modify it. I'm not even sure what type of modifications may be required without actually going in and doing it.
Could you guide me a bit in this topic? It might be a material on the net somewhere maybe?
The problem is now, that I have 3 buttons handled by an AppTimer. Which would obviously wake up everything in every 50 or 100 ms.
I also looked at the docs, becaue I wanted to make it sleep manually, but in this case, all the AppTimers would only fire after CS_END_DEVICE_SLEEP_PERIOD. (which I'd increase as much as I can, for 15 or 30 mins).
Also, I found something interesting in the source code of sysIdleHandler.c on line 26-41:
"...If an end device wakes up on expiration of CS_SLEEP_PERIOD it polls
its parent, otherwise it doesn't.
..."
It sounds for me that polling only occurs if CS_SLEEP_PERIOD expires. CS_SLEEP_PERIOD means CS_END_DEVICE_SLEEP_PERIOD in here?
Anyway what I'd like to do is to make HAL to differentiate it's waking up source:
1.) wake up by expiring CS_END_DEVICE_SLEEP_PERIOD timer (and only this one) -> normal wakeup procedure
2.) wake up by anything else -> calls wakeup routines but do _not_ wake up the RF.
Thanks.