Low power options for STM32 (L432) boards

Hello All, We are looking at possibly using RIOT for a product we are developing, and so far we really like how well RIOT functions. One thing that is crucial for us is to minimize power usage down to the absolute minimum allowable. I have been looking into this and am having a hard time find documentation on the PM section. I was wondering what level of effort it would take to implement the sleep, or standby function, and how well RIOT plays with that. Any pointers or example implementation of board specific low power modules or documentation would be greatly appreciated.

Thank you,

1 Like

Hi Patrick,

welcome to RIOT! Iā€™m not the best specialist of the topic, maybe others will have complementary advice (or may correct me).

Can you scan through the wikipage on this topic [1] ?

For the L4, pm is not there yet. What you could do is look at [2] an consider extending for L4. Then if you mimic what is done for the L0 [3] by activating the pm_layered module, you will have access to the api: if you activate pm_layered, you have access to pm_set for manual setting (or you can let pm_layered autopilot the pm). There are some use cases with GPIO or UART which require special care / manual settings.

And: contributions are welcome!

Cheers

Emmanuel

[1] https://github.com/RIOT-OS/RIOT/wiki/Power-Management

[2] https://github.com/RIOT-OS/RIOT/blob/master/cpu/stm32_common/periph/pm.c [3] https://github.com/RIOT-OS/RIOT/blob/master/cpu/stm32l0/Makefile.include