Optimizing Bluetooth Low Energy Power Consumption¶
This section describes how to configure the CC23xx or CC27xx devices in order to evaluate
its power consumption while running Advertisement and Connection Bluetooth LE
operations. To this end, the basic_ble project found inside the
SDK examples,
is used as the starting reference.
The following steps are modifications to consider before doing power measurements calculations:
Power Optimization¶
Disable UART display operations: go inside
basic_ble.syscfg–> RF Stacks –> BLE –> Advanced Settings, select “Disable The Display Module”. In addition, make sure to disable any other peripheral that is not being used, such as LEDs or buttons.
Figure 164. SysConfig - Disable UART display operations.¶
Set the advertisement parameters: go inside
basic_ble.syscfg–> RF Stacks –> BLE –> Broadcaster Configuration –> Advertisement Set 1 –> Advertisement Parameters 1, modify:Legacy Event Properties Options: Select the advertisement mode (Connectable and Scannable Undirected, Connectable directed, Non-connectable and Non-scannable undirected). It is important to take into consideration that Non-connectable and Non-scannable advertisement modes will not schedule RX operations as they are not expecting information to be shared with them, therefore reducing the amount of power consumption. Example of this are applications that do not require extra information through scan responses, such as Bluetooth LE beacons.
Primary PHY Interval Minimum and Maximum (ms): Consider that for longer intervals, the device will spend more time in standby mode, considerably reducing the power consumption.
Tx Power Value: Consider that increasing or decreasing this value will have a considerable impact on power consumption.
Figure 165. SysConfig - Set Advertisement Parameters.¶
Set TX power for connection events: if the device is configured as
central, go toapp_central.cand add theHCI_EXT_SetTxPowerDbmCmd()after registering the event handler inside theCentral_start()function. Alternatively, if the device is configured asperipheral, go toapp_peripheral.cand add theHCI_EXT_SetTxPowerDbmCmd()after registering the event handler inside thePeripheral_start()function. See more details about this topic inside the following reference: Adjusting TX Power.1//... 2const int8_t txPower = 8; 3const uint8_t fraction = 0; // Should always be 0 for CC23xx devices 4HCI_EXT_SetTxPowerDbmCmd(txPower, fraction); 5//...
Warning
The Fraction parameter must remain 0 as this feature is not supported
at the moment.
Modify the type and amount of data the device is sending during advertisement: go to
basic_ble.syscfg–> RF Stacks –> BLE –> Broadcaster Configuration –> Advertisement Set 1 –> Advertisement Data 1. There, it is possible to add different type of data as required by the application. Make sure to avoid adding data that is not used, as power consumption increases with payload size. It is possible to see the payload size by going intoti_ble_config.cand looking into the number of elements insideadvData1[].
Figure 166. SysConfig - Modify Advertisement Data.¶
Avoid waking up the device every time the advertisement starts: go to
gap_advertiser.hand create a newGAP_ADV_EVT_MASK, that will only considerGAP_ADV_EVT_MASK_SCAN_REQ_NOTIandGAP_ADV_EVT_MASK_START_AFTER_ENABLEevents. Replace this new mask at the functionBLEAppUtil_initAdvSet()inbleapputil_init.cinstead ofGAP_ADV_EVT_MASK _ALLmask.
1//...
2GAP_ADV_EVT_MASK_ALMOST_ALL = GAP_ADV_EVT_MASK_SCAN_REQ_NOTI |
3 GAP_ADV_EVT_MASK_START_AFTER_ENABLE,
4//...
To save some extra power, the External Flash can also be turned off during board initialization using
Board_shutDownExtFlash();. This is already done by default at thebasic_ble.cproject, as can be seen insideti_drivers_config.cat the very end of theBoard_init()function.Warning
Power consumption is significantly increased while being in debug mode. The device should be flashed and power cycled before running power measurements.
Enable power control feature by using HCI commands. See more details about this topic inside the following reference: Power Control Feature.