🎉 25% off Pre-Sale! Bluetooth LE course with real hardware included - no SDK required
Embedded Development · · 10 min read

Bluetooth Low Energy Power Consumption - How to Achieve Maximum Battery Life

In my search for a comprehensive guide for optimizing Bluetooth Low Energy power consumption, I found multiple guides from different vendors.

Bluetooth Low Energy Power Consumption - How to Achieve Maximum Battery Life

In my search for a comprehensive guide for optimizing Bluetooth Low Energy power consumption, I found multiple guides from different vendors. These guides were great, but were more focused on specific chips and modules from the vendors.

My goal here is to summarize the findings and make this a comprehensive guide for anyone looking to optimize Bluetooth Low Energy power consumption and achieve maximum battery life – no matter which vendor you end up choosing. More specifically, I'll be focusing on optimization for BLE peripheral devices and not BLE central devices.

By the end of this article, we'll have answered these key questions:

Why Optimize Power Consumption for BLE Devices?

Many new electronic products – whether consumer, medical, industrial…etc – are moving towards being powered by batteries. Some of the reasons behind this:

As a result of these trends, the need for optimizing power consumption to extend battery life in BLE devices has become increasingly crucial, especially for certain applications including:

By focusing on power optimization, developers can create devices that deliver exceptional performance and reliability, ultimately enhancing user experience and meeting strict battery life requirements.

What is the average power consumption of a BLE module?

BLE modules are generally designed to be low power, but the current draw between modules can vary greatly based on the specifics of the device design, chip selection, and software implementation.

Generally, you can expect the following, based on the state the device is in:

Current consumption during deep sleep mode (Source: "Silicon Labs - Optimizing Current Consumption in Bluetooth Low Energy Devices")

Current consumption during a 15 ms connection interval (Source: "Silicon Labs - Optimizing Current Consumption in Bluetooth Low Energy Devices")

These are only rough estimates, and the actual current draw can vary a lot based on the specifics of the device design and usage.

The 3 main ways to minimize power consumption

At a high level, energy consumption is mainly decreased in microcontroller applications, and embedded systems in general, by reducing radio communication and increasing sleep/idle cycles as much as possible.

In theory, this sounds simple and straightforward. However, when trying to accomplish this in practice, it can be much more complicated. For example, variables such as the changes in the environment (temperature, humidity, obstacles, and radio interference causing transfer retries) make the task exponentially more difficult.

There are three ways to minimize power consumption:

  1. Choose the right hardware components – including the battery.
  2. Optimize the firmware via static configurations (such as peripheral bus speeds and pin configurations) and dynamic/run-time parameters (such as Bluetooth low energy parameters).
  3. Optimize firmware source code in terms of both: writing efficient code and using the right compiler optimizations (for speed and size) can help you achieve your low power goals. This also includes your system design for protocol efficiency and packet sizes being transferred over the air or to/from external peripherals.

In this post, I’m focusing on Bluetooth Low Energy devices (rather than Bluetooth Classic (BR/EDR) devices) and how to optimize the different Bluetooth Low Energy parameters.

Again, it all basically comes down to how long your MCU spends in idle/sleep mode vs. active mode. User experience is the most important in determining the changes and parameters that could potentially affect power consumption. Make sure it’s always the top priority for your product.

💡 Looking for more BLE tutorials? Enroll in the Bluetooth Developer Academy today and get exclusive access to 300+ hours of course content built exclusively for developers, by developers.

Which BLE parameters should be tuned?

Optimization is achieved by tuning the parameters for the two states of Bluetooth LE devices:

If you plan to transfer data in large bursts you may exceed the recommended peak, which may negatively impact both the capacity and lifetime of the battery. For sending large quantities of data, look for ways to optimize the transfer:

One last thing to keep in mind is to test with debug mode turned off since BLE power consumption will usually be higher than with debug turned off.

What to measure?

It is not possible to compare the power consumption of a BLE device to another using a single metric. Sometimes a device gets rated by its “peak current”. While the peak current plays a part in the total power consumption, a device running the BLE stack will only be consuming current at the peak level while it is transmitting.

Even in very high throughput systems, a BLE device is transmitting only for a small percentage of the total time that the device is connected. In a typical application, a device running the BLE stack will spend most of the time in a sleep state between connection events. The primary metric that takes these other time and current measurements into account is the “average current”. It is this value that can be used to determine the battery life of a BLE device.

Note that a single “average current” value cannot be given for a device in its datasheet or in the device’s specifications, as the average current is highly dependent on the connection parameters used. Anytime an “average current” specification is given, it is very important to understand the exact use case in which the measurement was made.

With that said, here are some other useful metrics that should be kept in mind:

How to measure Bluetooth power consumption?

Now, let’s talk about testing the power consumption of your device. The most important thing is to ensure you test in an environment as close as possible to what a user’s environment would be like (real-life testing and not just in a lab setting). This will make your estimations much closer to real-life usage and ultimately make your users much happier.

Summary and Closing

Ultimately, each application will dictate how low your device’s power consumption can get. If the parameters are modified to a point where they negatively affect the user experience, then this will not help your product or users. Always keep the user experience (UX) as the top priority and design the system (including power optimization) in a way to enhance the UX.

Finally, I will leave you with a summarized list of points/questions to keep in mind when optimizing your BLE device’s power consumption:

💡
Insider Tip: Want to master Bluetooth Low Energy power optimization and battery life management? Check out the Bluetooth Developer Academy for comprehensive courses covering everything from power consumption fundamentals to advanced optimization techniques!

Read next