Skip to content
Home » IoT » Power Consumption in Embedded Systems: What Every Developer Should Know

Power Consumption in Embedded Systems: What Every Developer Should Know

Power Consumption in Embedded Systems featured image with dark olive background, POWER badge, mW icon in gold circle, and Measurement and Optimization Guide subtitle by nerdyelectronics.com
Embedded Systems Learning Path
Part 83 of 129 — View Full Path →

KEY TAKEAWAYS

  • Power consumption depends on operating voltage, clock frequency, active peripherals, and duty cycle
  • Dynamic power (during operation) is proportional to frequency; static power (leakage) is always present
  • Reducing clock speed and disabling unused peripherals are the most effective power reduction strategies
  • Power budgeting during design prevents battery life surprises in the final product

Why Power Consumption Matters

In battery-powered embedded systems, power consumption directly determines how long your device runs before the battery dies. A smart sensor that lasts 5 years on a coin cell is far more valuable than one that needs charging every week.Even in wall-powered systems, lower power consumption means less heat generation, smaller power supplies, and lower operating costs. In large-scale IoT deployments with thousands of devices, power efficiency translates to significant cost savings.

Understanding Power Basics

Voltage, Current, and Power

Power (Watts) = Voltage (Volts) x Current (Amps)

Example: An ESP32 running WiFi
  Voltage: 3.3V
  Current: 160mA
  Power: 3.3V x 0.16A = 0.528W

Energy and Battery Life

Energy (Watt-hours) = Power (Watts) x Time (hours)

Battery Life = Battery Capacity (mAh) / Average Current (mA)

Example: CR2032 coin cell (230 mAh), device draws 20 uA average
  Battery Life = 230 mAh / 0.020 mA = 11,500 hours = ~1.3 years

Where Power Goes in an Embedded System

ComponentTypical CurrentNotes
Microcontroller (active)1-50 mADepends on clock speed and peripherals
Microcontroller (sleep)0.5 uA – 50 uADeep sleep can be extremely low
WiFi (transmitting)120-300 mALargest power consumer in most IoT devices
Bluetooth LE5-15 mA (TX)Much lower than WiFi
LoRa (transmitting)20-120 mABrief bursts only
Sensors0.1 uA – 10 mAMany sensors have power-down modes
LED (typical)5-20 mA eachOften overlooked but adds up
Voltage regulator (quiescent)1 uA – 5 mAChoose low-Iq regulators for battery designs
Pull-up/pull-down resistorsDepends on value10K to VCC = 0.33 mA constant drain

Measuring Power Consumption

Multimeter Method

Place your multimeter in series (current mode) between the power supply and the device:
  Battery (+) ──── [Multimeter in A mode] ──── Device VCC
  Battery (-) ──── Device GND
This gives you the instantaneous current. The limitation is that it cannot capture fast current spikes (like WiFi transmissions).

Current Sense Resistor + Oscilloscope

Place a small resistor (0.1 to 1 ohm) in series and measure the voltage across it with an oscilloscope:
  Battery (+) ──[0.1 ohm]──┬── Device VCC
                            |
                     Oscilloscope probe
                            |
  Battery (-) ──────────────┴── Device GND

  Current = Voltage across resistor / Resistance
  If you measure 16mV across 0.1 ohm: I = 0.016V / 0.1 = 160mA
This captures fast transients and shows the full power profile over time.

Dedicated Power Profilers

Tools like the Nordic Power Profiler Kit II, Joulescope, or Otii Arc are designed specifically for measuring embedded device power consumption. They can measure from nanoamps to amps and show real-time power profiles.

Key Strategies to Reduce Power

1. Reduce Clock Speed

Power consumption scales roughly linearly with clock frequency. If your task does not need 80 MHz, run at 8 MHz or lower.
// Many MCUs allow runtime clock switching
set_cpu_frequency(8000000);   // 8 MHz for normal operation
set_cpu_frequency(80000000);  // 80 MHz only when heavy processing needed

2. Disable Unused Peripherals

Every enabled peripheral draws current, even if not actively used. Disable ADC, timers, UART, SPI, and I2C when not needed.
// STM32 example: disable clocks to unused peripherals
__HAL_RCC_USART2_CLK_DISABLE();
__HAL_RCC_SPI1_CLK_DISABLE();
__HAL_RCC_ADC1_CLK_DISABLE();

3. Use Sleep Modes

Instead of busy-waiting, put the MCU to sleep and wake it with an interrupt when there is work to do. This is the single most impactful technique. (See the dedicated article on Sleep Modes for details.)

4. Optimize Communication

Wireless transmission is the biggest power drain. Minimize it:
  • Send data less frequently (every 10 minutes instead of every 10 seconds)
  • Batch multiple readings into one transmission
  • Keep payloads small
  • Use efficient protocols (MQTT over HTTP, BLE over WiFi)

5. Power-Gate External Components

Use a MOSFET or load switch to completely cut power to sensors and modules when they are not needed:
  MCU GPIO ──[Gate]──┐
                     |
                  [P-MOSFET]
                     |
                  Sensor VCC
                     |
                  [Sensor]
                     |
                    GND
This draws zero current when the sensor is off, compared to the sensor’s standby current which can be significant.

6. Choose Low-Power Components

  • Use LDO regulators with low quiescent current (under 1 uA)
  • Choose sensors with power-down modes
  • Prefer I2C pull-ups of 10K or higher (lower current than 4.7K)
  • Use high-value resistors for voltage dividers

Power Budget Example

A weather station that reads temperature/humidity every 15 minutes and sends data via LoRa:
Phase           Duration    Current    Charge Used
---------------------------------------------------------
Deep Sleep      899.5s      5 uA       4.5 uAh (0.00125 mAh)
Wake + Read     0.2s        10 mA      0.56 uAh (0.00056 mAh)
LoRa Transmit   0.3s        100 mA     8.33 uAh (0.00833 mAh)
---------------------------------------------------------
Total per cycle (900s):                 0.010 mAh

Cycles per hour: 4
Average current: 0.040 mAh per hour = 40 uA

Battery: 2x AA (3000 mAh)
Estimated life: 3000 / 0.040 = 75,000 hours = 8.5 years
This shows why sleep mode dominates the power budget. The device spends 99.9% of its time asleep.

Summary

Power consumption management is critical for battery-powered embedded and IoT devices. The biggest wins come from:
  1. Using sleep modes aggressively (biggest impact)
  2. Minimizing wireless transmissions
  3. Disabling unused peripherals
  4. Choosing low-power components
  5. Power-gating external modules
Always create a power budget early in your design. Measure actual consumption, do not rely on datasheet typicals alone. The difference between a device that lasts a week and one that lasts years is almost always about how well you manage power.

Leave a Reply

Your email address will not be published. Required fields are marked *