Tinker Thoughts

When designing battery-powered IoT devices, understanding the power consumption of your sensors is critical.
In this blog post, we measure the BMP280 barometric pressure sensor in Normal mode and Forced mode using the Nordic Power Profiler Kit II (PPK2).
The goal is to see how the sensor behaves in each mode and how much power you can save.
TL;DR
We measured the BMP280 sensor’s power consumption in Normal vs Forced mode using the Nordic PPK2.
- Normal Mode: ~421.94 µA continuous draw — fine for mains power, drains batteries fast.
- Forced Mode: ~3.45 µA average with 2 s sampling — huge battery savings.
- During a reading, Forced mode spikes to ~627 µA for ~12 ms, then drops to ~0.52 µA in sleep. Recommendation: Use Forced mode with your MCU’s deep sleep for battery-powered IoT devices; reserve Normal mode for real-time monitoring.
Test Setup
- Sensor: Bosch BMP280
- Measurement Tool: Nordic Semiconductor Power Profiler Kit II (PPK2)
- Power Supply: 3.3V regulated
-
Test Modes:
- Normal Mode – Sensor runs continuously, sampling at a set rate.
- Forced Mode – Sensor sleeps between measurements; wakes only to take a reading.
- Sketch Examples Used: BMx280 I2C_Normal and BMx280 I2C_Forced
As part of this testing, we developed our own BMx280 library, designed specifically for single-burst data acquisition.
Unlike many existing libraries that read temperature, pressure, and humidity (on BME280) in multiple separate transactions, our library fetches all sensor data in a single I²C or SPI burst, reducing bus time and improving efficiency.
It supports both BME280 and BMP280, auto-detects the sensor type, and offers seamless switching between Normal and Forced modes.
With built-in I²C and SPI examples, and consistent function naming similar to popular libraries, it’s intuitive for existing Arduino users while being more optimized for low-power applications.
The use the BMx280 library either go to the link on GitHub and download/install it, or search for the library in Arduino IDE in the library search "BMx280" by PTSolns.
Results
1. Normal Mode Current Draw
In Normal mode, the BMP280 draws an average of 421.94µA continuously.
The current remains steady, and no distinct two-second measurement intervals are visible in the capture.
This constant draw is fine for mains-powered or short-term battery applications, but it will drain small batteries quickly.

2. Forced Mode – Long-Term Average
In Forced mode, with a two-second measurement interval, the BMP280 averaged just 3.45µA over the full capture period.
This massive reduction in average current makes Forced mode ideal for long-life, battery-powered devices.

3. Forced Mode – Burst Event
During a measurement burst, the BMP280 draws ~627.06µA for about 12.38ms before going back to sleep.
The short duration means the effect on the long-term average is minimal.

4. Forced Mode – Sleep
Between readings, the BMP280 drops to ~0.52µA average, making it nearly invisible in the overall power budget.

Comparison Table
Mode | Ave. Current | Notes |
Normal Mode | 421.94µA | Constant draw, no sleep |
Forced Mode | 3.45µA | Sleep between measurements, 2s internals |
Design Recommendations
- Use Forced Mode for Low Power – Keep the sensor asleep between readings to extend battery life.
- Reserve Normal Mode for Continuous Monitoring – Useful when rapid environmental changes need to be tracked in real time.
- Combine with MCU Sleep – Pair Forced mode with microcontroller deep sleep for maximum savings.
- Always Verify with Real Measurements – Datasheet numbers are a starting point, but actual hardware testing ensures your design meets power targets.
Conclusion
Our measurements clearly show that Forced mode reduces BMP280 average current draw from ~422µA to just ~3.45µA.
For battery-powered IoT devices, that’s the difference between weeks and years of operation. And the efficiency doesn’t stop there—if you increase the sampling interval from 2 seconds to 10 seconds, 1 minute, or even longer, the average current draw in Forced mode becomes even lower, enabling ultra-long battery life.
Normal mode still has its place in high-speed monitoring, but for most environmental sensing applications, Forced mode is the way to go.