2025-12-29 10:44 AM
Hello,
I’m working with STM32WB55CGU (UQFN68) on a WeAct WB55 board and trying to achieve ultra-low power during BLE idle / non-advertising periods using the STM32 WPAN framework.
According to ST documentation and examples:
STOP2 mode with BLE stack idle should be in the tens of µA range
I previously verified 10–20 µA STOP2 current without BLE enabled, so the board itself is capable of low power
With BLE enabled (advertising):
Idle (non-advertising period): ~1.1–1.4 mA
Advertising peak: ~8 mA
BLE communication works correctly
PB6 debug pin toggles, confirming STOP2 entry
Removing ST-LINK reduces only ~100–200 µA
MCU: STM32WB55CGU
Board: WeAct WB55
External LSE present
Measured using shunt resistor + scope (differential measurement)
Based on BLE_p2pServer example
Cube FW: STM32Cube FW_WB V1.23.0
IDE: STM32CubeIDE
RF firmware loaded correctly (same as NUCLEO examples)
USB, ADC, PWM, DMA disabled for low-power test
UTIL_SEQ_Idle() is called
UTIL_LPM_EnterLowPower() is called
PWR_EnterStopMode() → HAL_PWREx_EnterSTOP2Mode()
PB6 toggles inside STOP2 hooks
STOP2 works perfectly without BLE
No busy loops or delays
No active timers except BLE stack
No GPIO leakage
HSEM / IPCC initialized as per ST examples
Same behavior with and without ST-LINK
RF wakeups are expected, but average current seems far too high
Is ~1–1.4 mA expected for STM32WB55 during BLE idle when using the WPAN framework?
Is there any mandatory low-power configuration specific to the WB dual-core / IPCC / RF subsystem that is not obvious from the examples?
Are there known differences between:
NUCLEO-WB55 boards
Custom boards (like WeAct WB55)
regarding default power domains, SMPS/LDO configuration, or RF clocking that could explain this?
Is there a reference project (p2pServer or similar) that demonstrably reaches <100 µA average during advertising intervals on WB55?
Any guidance, checklist, or clarification would be highly appreciated.
Thanks in advance,
Aharon