OK, I am trying to reduce the power consumption of Electron in a project due to the amount of heat that it is putting off, sometimes up to 50 deg C on the surface of the radio. The thermal emissions is the biggest problem, but of course any added battery lifetime would be an added bonus.
Looking at the code, it seems like the power-saving mode for the cell modem is already switched on by default. In my application, data is being sent every 10 seconds, so the time overhead of powering down the radio and reconnecting (20-30s) is too large to duty cycle the radio. But since the radio is such a major consumer, I am definitely interested in any insights on how to reduce consumption further.
As for the peripherals: after looking at the STM32F2 manual, it appears that the default state for the all the RCC clock enable bits to the various peripherals is 0, so is there any room for saving power by specifically powering down every peripheral not used?
And lastly, the hard one: does the background RTOS drop back to an idle hook, and does that idle hook put the CPU to sleep, or switch to a slower clock? I am reading the system code, but it is a lot to take in.
If the application as SYSTEM_THREAD(ENABLE) and then uses the generic delay() function, will this actually suspend the application and fall back to the idle (and possibly sleep) state when needed?