STM32WB0 Bluetooth® Low Energy – Power consumption applications


1. Bluetooth® Low Energy power consumption profile

The Bluetooth® Low Energy power consumption profile is a basic Bluetooth LE application which allows to demonstrate the device power consumption in specific Bluetooth LE scenarios:

  • Fast Advertising (100 ms as advertising interval).
  • Slow Advertising (1000 ms as advertising interval).
  • Connection.

The Bluetooth® Low Energy BLE_Power_Consumption application address the Peripheral role, and it doesn't define any specific user service or characteristic. The selection between fast or slow or is handled, respectively, through the button1 and button2. ​

2. STM32WB0 Bluetooth® Low Energy power application requirements

2.1. STM32WB0 software and hardware board requirement

To measure the STM32WB0 power consumption the NUCLEO-WB0 boards are the best candidate to run this setup due to its PCB optimization, reduced components, and low cost.

Depending on the targeted power consumption purpose on the NUCLEO-WB0xx, an hardware board is required.
NUCLEO-WB0xx hardware board.
NUCLEO-WBA0xx hardware Board


  • Measuring the Bluetooth® Low Energy power peripheral in Advertising state, only one hardware board is required
  • Measuring the Bluetooth® Low Energy power peripheral in Connected state, only one hardware board is required if connected to a smartphone via STBLEToolbox[1]. Or a second hardware board configured as a Bluetooth® Low Energy Central device could be used to connect to the Bluetooth® Low Energy power consumption peripheral application.

For more details on how to build an STM32WB0 Bluetooth® Low Energy project, refer to STM32WB0_Build_BLE_Project

2.2. Power measurement setup

To measure the NUCLEO-WB0xx power consumption, connect the Nucleo Board to an amperemeter/DC power analyzer to the JP2 connector.

The BLE_PowerConsumption application is properly configured in order to optimize the power profile and avoid extra power consumption.

All the GPIOs are properly configured in lowPowerIOSetup() function defined on stm32wb0x_hal_msp.c in order to setup the lowest power consumption in Deepstop mode. The Button1 and Button2 area also properly handled as wake-up sources.

2.3. Bluetooth® Low Energy peripheral power overview

The following chapter describes the application features and possible configurations.

The application offers a default configuration. To align with the user application, listed defines in the following chapter can be modified depending on the needs.

2.3.1. Application general parameters

The following table defines the application general parameters.

Bluetooth® Low Energy peripheral power general parameters
General Parameters Application default configuration Application defines variables Comments
Power supply 3.3 Volts
Tx Power Value (0x18) -0 dBM #define CFG_TX_POWER (0x18)
Low power mode Deepstop mode #define CFG_LPM_SUPPORTED (1)
#define CFG_FULL_LOW_POWER (0)
#define CFG_LPM_EMULATED (0)
Core voltage selection SMPS is selected #define CFG_HW_SMPS SMPS_ON #define CFG_HW_SMPS_BOM SMPS_BOM3 /* SMPS Inductor 10uH */
#define CFG_HW_SMPS_LOW_POWER SMPS_LOW_POWER_OPEN
Retention full RAM retention 64 kbytes Default configuration
Crystal Startup time 780 μs #define HSE_STARTUP_TIMEOUT (100UL)

LSE crystal is selected

System clock Direct HSE configuration RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_DIRECT_HSE;
Bluetooth® Low Energy clock 16 MHz
Advertising interval 100 ms or 1000 ms, with 25 bytes packet length Primary_Advertising_Interval_Min, Primary_Advertising_Interval_Max parameters values on aci_gap_set_advertising_configuration()
Connection interval: Defined by the Connected Central Device

Application can be further extended for enabling aci_l2cap_connection_parameter_update_req() and request specific connection parameters to Central device



2.3.2. Advertising power measurement

After reset, the Bluetooth® Low Energy power peripheral starts advertising.

The following table summarizes the application possible configurations during an advertising/not connected state.

Bluetooth® Low Energy peripheral advertising configuration
Advertising configuration Default configuration Application defines variables Comments


Advertising interval Fast/Slow

(Pressing B1/B2)
Fast advertising interval: 100 ms;

Slow advertising interval: 1000 ms
#define ADV_INTERVAL_MIN (0x00A0)

#define ADV_INTERVAL_MAX(0x00A0)

#define ADV_LP_INTERVAL_MIN(0x0640)

#define ADV_LP_INTERVAL_MAX(0x0640)
Advertising data The advertising PDU size is 25 bytes Advertising PDU can be up to 31 bytes and a minimum of 8 bytes for the application use case


Advertising power consumption: active phase
Advertising power consumption


Fast adverting power consumption (100 ms)
Fast advertising power consumption


Recommendations: Increasing the advertising interval reduces the power consumption for a better battery life.

Slow adverting power consumption (1000 ms)
Slow advertising power consumption


The following table describes the measured power consumption with Fast and Slow advertising

Bluetooth® Low Energy peripheral advertising power consumption values
Advertising Interval Real current consumption (μA)
Fast advertising interval (100 ms) 135.99


Slow advertising interval (1000 ms) 14.87


2.3.3. Connection power measurement

Connection to the peripheral can be made using the Bluetooth® Low Energy toolbox mobile app or a Bluetooth® Low Energy central application via a second STM32 hardware board. We assume a scenario where there is a Central device using the following connection interval configuration:

  • Connection Interval: 100 ms or 1000ms
  • Connection data: empty packets

Just like the advertising interval, the connection interval has an impact on the application power consumption. The following figure shows the impact on power consumption with connection interval 100 ms and 1000 ms.


Connection power consumption: active phase
Connection power consumption


Connection power consumption (100 ms)
Connection power consumption (100 ms)



Connection power consumption (1000 ms)
Connection power consumption (1000 ms)


The following table describes the measured power consumption with the two connections interval:

Bluetooth® Low Energy peripheral connection power consumption values
Connection Interval Real current consumption (μA)
100 ms 57.61


1000 ms 7.71


3. References