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:
Multimeter in series to measure currentMeasuring current with a multimeter. The battery’s positive terminal connects to the multimeter, set to current (A) mode, and the meter’s other lead connects to the device’s VCC pin, so the meter is in series and all supply current flows through it. The battery’s negative terminal connects directly to the device’s GND.+−BatteryAMultimeter in A mode(in series: all supply currentflows through the meter)DeviceVCCGNDcurrentBattery (−) to Device GND
Figure: Multimeter method: the meter, set to current mode, goes in series between the battery and the device’s VCC.
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:
Shunt resistor with the scope across itMeasuring current with a sense resistor and an oscilloscope. A 0.1 ohm shunt resistor sits in series in the supply line, between the battery’s positive terminal and the device’s VCC pin. The battery’s negative terminal connects directly to the device’s GND. The oscilloscope measures the voltage across the shunt itself: its plus input on the battery side of the resistor and its minus input on the device side, using a differential probe or two channels subtracted (CH1 minus CH2). Current equals the shunt voltage divided by the shunt resistance.+−BatteryR_shunt0.1 ΩOscilloscopedifferential probe(or CH1 − CH2)+−measures V across the shuntI = V_shunt / R_shuntDeviceVCCGNDBattery (−) to Device GND
Figure: Current sense resistor: a 0.1 Ω shunt in series with the supply line, with the oscilloscope measuring the voltage across the shunt.

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:
Power-gating a sensor with a P-MOSFETHigh-side power gate using a P-channel MOSFET. The VCC supply rail feeds both the MCU and the MOSFET’s source. The MOSFET’s drain becomes the sensor’s switched VCC, and the sensor’s ground returns to the common GND shared with the MCU. An MCU GPIO pin drives the MOSFET’s gate. Driving the GPIO low pulls the gate below the source, so the MOSFET conducts and the sensor is powered. Driving the GPIO high, to VCC, turns the MOSFET off and removes the sensor’s supply.VCCMCUGPIOVCCGNDS (source)D (drain)GP-MOSFEThigh-side switchSensor VCCSensorGND (common)GPIO LOW (gate pulled below source): MOSFET on, sensor poweredGPIO HIGH (gate = VCC): MOSFET off, sensor has no supply
Figure: Power-gating a sensor: a P-MOSFET high-side switch between VCC and the sensor’s supply, with its gate driven by an MCU GPIO.
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       1.25 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 matters so much: the device spends 99.9% of its time asleep, yet with a 5 uA sleep current those 899.5 seconds cost only 1.25 uAh. The 0.3-second LoRa transmission (8.33 of 10.14 uAh, about 82%) becomes the biggest item in the budget.

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 *