2024-07-17 11:17 PM
Hi all,
some time ago I successfully developed a firmware for a ZigBee sleepy end device running on a STM32WB5MMG module. I could manage the module to draw only about 3µA in low power mode while still being able to communicate a button press over the ZigBee network.
Now we started production of this device, but the newly assembly parts draw about 160µA instead of the expected 3µA. Even when running exactly the same firmware.
The prototypes (3µA) and the production boards (160µA) are almost identical, just a different form factor of the PCB. But same parts on it.
The only difference I could find was the revision of the STM32WB5M module. The prototypes used parts with marking "Y" (device ID 0x494 0x2001) and the production parts use parts with marking "X" (device ID 0x494 0x2003).
My assumption is that the prototypes did works with low power by chance only. I assume I missed something when entering STOP2 mode?
My firmware is based on the "Sleepy End Device" example from Wireless SDK version 1.18.
Both devices use the ZigBee_RFD_1.18 wireless stack.
My tests are:
Device | Firmware | Compile Date | Low Power Current |
Prototype | Prototype | Feb 2024 | 3µA |
Production | Prototype | Feb 2024 | 160µA |
Prototype | Recompiled for new device strings | June 2024 | 160µA |
Production | Recompiled for new device strings | June 2024 | 160µA |
I did always use the latest GCC suite available from ST at the compile date.
I did nothing special but set "CFG_FULL_LOW_POWER=1" in app_conf.h to achive low power modes when idle. Everything else is handled by the tiny_lpm and the Sequencer.
Any help on this topic is more than appreciated. Thank you very much!
Best Regards
Thomas
2024-07-28 08:37 AM
This post has been escalated to the ST Online Support Team for additional assistance. Should anyone else have a similar question about part markings or revisions, please submit your request directly to the ST Online Support Team at https://my.st.com/ols.