Core Strategies for Low Power Design in BLE: Detailed Explanation of Hardware Selection, Software Optimization, and Protocol Configuration

Core Strategies for Low Power Design in BLE: Detailed Explanation of Hardware Selection, Software Optimization, and Protocol Configuration

The following are the key strategies and implementation methods for low power design in BLE devices, covering hardware selection, software optimization, protocol configuration, and practical cases to help developers design ultra-low power Bluetooth devices:

1. Hardware Design Optimization

(1) Select Low Power Chips

Recommended Chips:

nRF52 Series (Nordic Semiconductor): Supports deep sleep modes (e.g., System Off Mode).

ESP32: Integrated co-processor (e.g., Hall Sensor) can reduce main CPU power consumption.

Key Parameters:

Sleep Current: The current of the chip in deep sleep (e.g., nRF52840’s System Off Mode current <1 µA).

Wake-up Time: Balance between power consumption and response speed (e.g., nRF52’s wake-up time <1 µs).

(2) Power Management

Strategies:

Separate Power Domains: Power sensors, RF modules, etc., separately, turning them on only when needed.

Use LDO (Low Dropout Regulator) to reduce voltage conversion losses.

2. Software Design Optimization

(1) Low Power Mode Configuration

Peripheral Role:

As a Peripheral (the connected party), power consumption can be significantly reduced (control is with the Central).

Deep Sleep Mode:

Example Code (nRF52):

C #includenrf_pwr_mgmt_init(); nrf_pwr_mgmt_run(); // Enter lowest power mode

(2) Broadcast and Connection Parameter Optimization

Broadcast Interval:

Default Value:: 100ms~1 second (the longer the interval, the lower the power consumption).

Configuration Example:

Makefile # Shorten broadcast interval (unit: 0.625ms) CONFIG_BT_BLE_ADV_INTERVAL=160 → 100ms (160×0.625ms)

Connection Parameters:

Connection Interval: Increase the interval to reduce wake-up frequency (but will increase latency).

Makefile CONFIG_BT_CONN_INTERVAL_MIN=75 → 7.5ms (minimum interval) CONFIG_BT_SLAVE_LATENCY=5 → Allow 5 response delays

(3) Reduce Wake-up Frequency

Reduce Characteristic Update Frequency:

Only update characteristic values when data changes:

C if (new_value != current_value) { bt_gatt_notify(conn, characteristic, data); }

Use Power Saving Mode (PSM):

Turn off unnecessary functions (e.g., scanning, broadcasting).

Makefile CONFIG_BT_PSM=y

3. Protocol Layer Optimization

(1) Data Transmission Optimization

Reduce Transmission Frequency:

Batch data transmission (e.g., package multiple sensor data).

Increase ATT MTU:

Increase the amount of data transmitted at once, reducing retransmission frequency:

C // Client requests maximum MTU (e.g., 247 bytes) bt_gatt_exchange_mtu(conn);

(2) Notification and Indication Strategy

On-demand Notifications:

Trigger notifications only when data changes to avoid frequent reporting.

Reduce Acknowledgment Delay:

Use Notification instead of Indication (Indication requires acknowledgment from the master device, increasing power consumption).

(3) Disable Unused Features

Disable Classic Bluetooth:

Makefile CONFIG_BT_CLASSIC=n

Disable Scanning and Broadcasting:

C bt_le_scan_stop(); // Stop scanning bt_le_adv_stop(); // Stop broadcasting

4. Low Power Design Cases

Case 1: Sensor Node (Battery Life 1 Year)

Hardware Configuration:

Using nRF52840, paired with CR2032 battery.

Software Strategy:

a.As a Peripheral Role: The phone actively connects.

b.Broadcast Interval:

1 second (CONFIG_BT_BLE_ADV_INTERVAL=1600).

c.Connection Parameters:

Connection Interval: 1 second (CONFIG_BT_CONN_INTERVAL_MIN=160).

Slave Latency: 5 (CONFIG_BT_SLAVE_LATENCY=5).

d.Deep Sleep:

Usenrf_pwr_mgmt to enter System Off Mode.

Case 2: Beacon Device (Broadcast Only)

Optimization Points:

Non-connectable Broadcast: Disable all connection features.

Extend Broadcast Interval:

Makefile CONFIG_BT_BLE_ADV_INTERVAL=1000 → 625ms (1000×0.625ms)

Disable Scan Response: Reduce the number of broadcast packets.

5. Testing and Debugging

(1) Power Measurement Tools

nRF Energy Profiler (nRF Connect SDK):

Real-time monitoring of power consumption of each module in the chip.

Oscilloscope and Current Probe:

Measure current in different modes (e.g., sleep current <1 µA).

(2) Optimization Verification Steps

1)Baseline Measurement: Record initial power consumption.

2)Step-by-step Optimization: Repeat measurements after adjusting parameters.

3)Scenario Testing: Simulate wake-up frequency and data transmission in actual use.

6. Common Questions and Solutions

Q1: Battery life does not meet standards?

Reason:

Broadcast or connection interval set too short.

Solution:

Makefile CONFIG_BT_BLE_ADV_INTERVAL=2000 → Broadcast once every 1.25 seconds

Q2: Data transmission delay too high?

Reason:

Connection interval set too large (e.g., 1 second).

Solution:

Makefile CONFIG_BT_CONN_INTERVAL_MIN=75 → 7.5ms connection interval

Q3: Response time after waking up is too long?

Reason:

Wake-up time from deep sleep mode is too long.

Solution:

Use System On Mode to reduce wake-up time (sacrificing some power consumption).

Summary

The core strategies for low power design in BLE are:

1.Hardware Selection: Low power chips and power management.

2.Software Optimization: Deep sleep, broadcast/connection parameter adjustments.

3.Protocol Configuration: Reduce transmission frequency and data volume.

4.Testing and Verification: Identify power consumption bottlenecks using tools.

Leave a Comment