Solutions
Published
27 November 2025
Written by Yunus Unal Mechatronics Engineer and Content Specialist
Yunus is a mechatronics engineer with a background in 5G mobile communications and intelligent embedded systems. Before joining TKO and ipXchange, he developed and tested IoT and control-system prototypes that combined hardware design with embedded software. At ipXchange, Yunus applies his engineering knowledge and creative approach to produce technical content and product evaluations.
Low-Power Design Process for Embedded Devices
Low power embedded systems are engineered to run on minimal energy, often aiming for multi-year battery life or low standby power draw. Achieving this requires a holistic design approach from hardware selection to firmware optimization that squeezes out every unnecessary microwatt. In this guide, we’ll explore low-power design principles and provide practical tips (including standby current reduction, leveraging low power MCU features, managing quiescent current and using sleep modes / deep sleep effectively) to help extend battery life in embedded devices.
Designing low-power embedded devices begins with clear goals (like multi-year battery life) and a process that addresses power use at every level. Successful low-power design means optimizing hardware, firmware and system architecture to minimize energy consumption without sacrificing functionality.

Start by defining the power goals for your device. For a battery-operated gadget, this might mean drawing only a few microamps on standby to achieve years of operation on a coin cell. Always-on devices (even if wall plug-powered) also benefit from low-power design: they can waste 5-15% of household energy in standby mode. Establishing a clear budget for active and sleep currents will guide component selection and design trade-offs.
What are the most important ways to save power in embedded systems?
- Duty cycling, keeping the system in sleep or deep sleep as much as possible, and waking only when necessary
- Eliminate wasted power, avoiding any unnecessary processing or peripherals being on
- Optimize component selection – use a low-power MCU and sensors designed for low voltage and minimal leakage
- Holistic integration – consider how power is distributed and converted (regulators, power topology) to avoid quiescent losses.
The overarching goal is to prolong battery life and reliability, while meeting performance needs.
Low-power design is a constant trade-off between processing capability and energy use. Early in the design, determine what functions are mission-critical so that you can slow down or shut off everything else. Incorporate low-power considerations into every step of development. This means choosing components with low operating voltage and minimal quiescent current, planning for how the firmware will manage power states, and ensuring the PCB layout and power tree allow shutting down or scaling back parts of the system.
The next sections delve deeper into measurement techniques and specific strategies to meet these low-power goals.
How to measure and analyse a system’s power consumption
Accurately measuring low currents, and gaining insights from comparison to benchmarks, are essential to validate your low-power design. Standard multimeters often lack the resolution or bandwidth to capture microamp sleep currents, especially when a device has brief active spikes. Engineers use techniques such as low-side current sensing (placing a small shunt resistor and measuring voltage drop) or high-resolution ammeters with auto ranging.
It’s important to use equipment designed for low-current measurement, for example, some digital multimeters or source measurement units can resolve nanoamps. Purpose-built IoT power analysers can log current profiles over time. The measurement setup should handle a wide dynamic range (nanoamps during sleep up to milliamps during active bursts) without disturbing the circuit. Often, taking an average current over a known cycle is useful: integrate the charge consumed and divide by time. Remember to account for any leakage currents that might trickle through pull-ups or peripherals even when the MCU is in deep sleep.
In addition to raw current measurements, industry benchmarks can provide a standardized view of a system’s efficiency. The EEMBC ULPMark suite is one such tool. ULPMark-CoreProfile focuses on a “sleepy” MCU scenario. It measures the energy used during periodic active pulses and deep sleep intervals, revealing the true cost of sleep/wake transitions beyond what datasheets show. In essence, a high score means the MCU does more work for less energy, indicating an efficient design.
When comparing low power MCU options, look at both their raw performance (CoreMark score alone) and their energy efficiency (ULPMark score). Always corroborate benchmark scores with your own measurements in circuit. Factors like your board’s regulators, sensors and firmware logic will impact actual power usage.
How to use firmware settings to optimise power behaviour
Firmware plays a pivotal role in minimizing power consumption. By using strategies such as dynamic voltage and frequency scaling (DVFS), deep sleep modes, DMA-driven peripherals and efficient algorithms, software can reduce the time the MCU spends awake and the energy it burns per task.
One of the most effective firmware strategies is to leverage the microcontroller’s sleep modes/deep sleep as much as possible. Configure the system to enter a low-power sleep state whenever there’s no immediate work to do. Modern MCUs offer multiple sleep levels from idle (where only the CPU core clock pauses) down to deep standby (where most of the chips are powered down except perhaps a real-time clock or wake-up logic). Always choose the deepest sleep mode that still meets the wake-up latency and functionality needs of your application.
Many embedded processors allow adjustment of their clock frequency and sometimes voltage on the fly (this is the essence of dynamic voltage and frequency scaling, DVFS). Running at a lower frequency (and voltage) can save power for tasks that are not time-critical, due to the roughly quadratic relationship between voltage and dynamic power.
Some microcontrollers have multiple power/performance modes, for instance, a high-speed mode at 3.3V and a low-power mode at 1.8V. Firmware can switch to a slower clock or disable high-power PLLs when full speed is not needed. Additionally, clock gating is a simple but powerful technique: turn off the clock to any peripheral or subsystem that is not in use. Most MCUs give control over peripheral clocks (timers, communication modules, etc.): ensure that initialization code shuts down clocks for unused modules to avoid wasting dynamic power toggling transistors for no reason.

Organize firmware tasks to be power-aware. This means batching work efficiently and using interrupts. Avoid polling loops that wake up repeatedly to check status. Instead, use interrupt-driven designs so the MCU sleeps until real work is needed. Try to schedule tasks so that when the MCU is awake, it does as much useful work as possible at once, then returns to sleep. This “race-to-sleep” approach often minimizes total energy by reducing the overhead of frequent wakeups. When the MCU must perform multiple sensing or communication tasks, see if they can be done back-to-back to allow a longer subsequent sleep period, rather than spacing them out. Furthermore, take advantage of intelligent peripherals such as Direct Memory Access controllers and other offload engines. DMA can transfer sensor readings to memory or stream data to a communication interface while the CPU stays in a low-power mode. Many low-power MCUs have event systems or autonomous peripherals that continue working with minimal CPU intervention.
Lastly, efficient code is not just about speed, but also about power. Profiling your firmware can reveal “hot spots” that consume a lot of CPU time. By optimizing these sections (using better algorithms or hardware acceleration instructions), you reduce active time and save energy. Use appropriate data types and avoid expensive operations in tight loops (e.g., floating point math on a CPU without an FPU). Compiler optimizations can help, as can choosing algorithms with fewer memory accesses (since RAM/Flash access also costs energy). In some cases, using a slightly more complex algorithm that lets the CPU sleep longer is a win for power.
How to optimise the power tree for low power consumption
The hardware power architecture, often called the power tree, has a major impact on standby power consumption. Choosing the right regulators (linear vs switching) and minimizing their quiescent current is crucial, as is proper power sequencing and eliminating leakage paths that can quietly drain the battery. By carefully designing the power tree, mixing regulator types and using power gating, developers can ensure that the hardware itself is not the bottleneck to achieving microamp-level sleep currents.
The power tree has as much influence on standby current as the MCU itself. Your first decision is usually LDO vs buck converters. LDOs are simple, quiet, and can have low quiescent current (Iq) in the µA or even nA range, which makes them ideal for micro-load rails where the system spends most of its life in deep sleep.
Buck converters shine when the load current or Vin – Vout drop is large: 90%+ efficiency at tens or hundreds of milliamps is normal. But many bucks burn tens of µA just to stay alive, and some are unstable or noisy at very light load. Newer “nano-Iq” bucks with PFM modes help, but as a rule of thumb:
Whatever you choose, Iq sets your floor. For example, a 50 µA regulator feeding a 10 µA MCU turns a 10 µA sleep budget into 60 µA. Check Iq (over Vin, temp and mode) for every always-on part: regulators, op-amps, sensor bias circuits, level shifters.
Finally, sequencing and leakage often quietly ruin sleep budgets. Use load switches or FETs to hard-disconnect high-power blocks (such as radios, GPS, sensors) and ensure that when something is “off” it isn’t being back-powered through GPIOs or ESD diodes.
In deep sleep, every pin should have a defined state (often output-low or analogue), and you should be able to answer one key question from your schematic: in deepest sleep mode, what are all the possible paths from V_BAT to ground? If you can list and minimise those, you are on track for true µA-level standby current.
How to balance radio performance against power consumption
Radio choice often dominates the energy budget: the knobs to use are mostly:
- Connection interval
- Transmit power
- Keep-alive strategy
The Bluetooth® Low Energy and Thread protocols are built around short, scheduled connection events. Pushing the connection interval out to hundreds of milliseconds or seconds lets end devices keep the radio off almost all the time, so average current drops into the low-µA range. The downside is higher latency for sensor updates and control loops, and slower reconnection if a packet is lost. Lowering Transmit (Tx) power saves a few mA per burst, but shrinks range and link margin; in practice, tune TX power just high enough to hit your RSSI/PER targets, then stretch the connection interval as far as the application will tolerate. Extra keep-alives (e.g. to maintain links in a mesh) erode this saving quickly.
LoRa flips the trade-off. A single uplink can draw tens of mA for tens or hundreds of milliseconds. To reach multi-year battery life, real products send infrequent messages (minutes to hours apart) and avoid unnecessary downlink keep-alives because every receive window holds the radio in a relatively expensive Receive (RX) state. Stretching the reporting interval is usually the only viable way to meet a tight battery budget with long range, at the cost end-to-end latency of greater than 1s.
Wi-Fi® HaLow sits in the middle. It still looks like a Wi-Fi network, but features such as Target Wake Time (TWT) and restricted access windows let clients negotiate when they wake. Short TWT intervals (tens of ms) give Wi-Fi-like responsiveness but keep the RX path on more often, eating into battery life. Longer TWT intervals (hundreds of ms to seconds) turn HaLow into a low-power, low-duty-cycle link similar to BLE or Thread but with higher throughput and somewhat higher baseline power. TX power must be managed carefully. Running at maximum output buys you range but you pay in peak current and thermal budget unless you keep packets short and infrequent.
In practice, battery life is set by how rarely you turn the radio on and for how long:
- Longer connection intervals/reporting periods mean lower average current, and higher latency.
- Lower TX power means better battery but only if the link stays reliable.
- Fewer keep-alives/beacons mean big savings, as idle listening can dominate in “chatty” networks.
Choosing between Bluetooth Low Energy, Thread, LoRa and Wi-Fi HaLow is really choosing which latency, range and keep-alive profile matches the product’s lifetime and requirements for user experience.
How much can energy harvesting extend battery run-time?
Energy harvesting lets embedded systems scavenge small amounts of energy from light (PV), motion (vibration) or heat (TEG), but the available power is usually only in the µW to mW range. Indoors, a postage-stamp PV cell might deliver just tens of µW, a piezo on machinery or HVAC duct typically gives µW to mW bursts, and small thermal gradients (a few °C) only yield tens of µW. That’s enough to stretch battery life dramatically but rarely enough to run a “normal” design continuously.

You size the supercapacitor (or small rechargeable cell + supercap) to bridge your longest “dark” period: estimate average harvested power, subtract your average load, and make sure the stored energy carries you through nights, shutdowns or cold spells, with margin. Bigger capacitors give more autonomy but leak more; there’s no point in adding joules you’ll lose to self-discharge.
The charge-management IC is where most designs succeed or fail. Look for parts with:
- Ultra-low quiescent current (sub-µA) and true start from low input power/voltage.
- Input front ends matched to your source (PV MPPT input, high-impedance rectifier for piezo, boost from tens of mV for TEGs).
- Programmable start/stop thresholds, so the load only turns on when the supercap is charged enough and drops out cleanly before brownout.
By incorporating energy harvesting, you can potentially achieve maintenance-free devices. However, you must tightly couple low-power design with the harvester – every microwatt your circuit does not consume is a microwatt that can go into charging a capacitor for later. In practice, successful energy harvesting designs often consume so little power (tens of microwatts average) that they would already have long battery life; the harvester just pushes it to essentially infinite life. Use harvesting as a supplement to a strong low-power foundation.
From plan to lab: a checklist for optimal embedded power system design
This low-power design checklist operates as a guide during design reviews and testing.
- Power Budget Defined: Start with a clear power budget per mode. Calculate if target numbers meet the desired battery life (include battery capacity and derating for temperature/age). If not, iterate on the design or expectations.
- Component Selection: Verify all components are the low-power versions needed. Check the datasheets for quiescent currents (Iq) of regulators, the standby/sleep currents of the MCU (both at room temp and over temperature range) and any “always-on” parts such as a real-time clock (RTC), sensor bias circuits or level shifters.
- Firmware Sleep Strategy: Confirm that the firmware puts the MCU into the deepest appropriate sleep mode whenever possible. In the lab, use an oscilloscope or power analyzer to check that current drops to the expected level during idle periods.
- GPIO and Leakage Checks: For every MCU pin, ensure its state is defined in low-power mode to avoid leakage. Unused GPIOs should be configured as input with no pull (or explicitly analogue), or as outputs driving low/high to a known state. If any peripherals or sensors remain connected, verify that no significant current flows through signal lines when the MCU or sensor is powered off.
- Peripheral and Sensor Shutdown: Verify that sensors, radios, and other peripherals are truly off when not in use. For I²C/SPI devices, sending them into a standby mode may still leave their power rail active – if possible, cut power to them using a FET or high-side switch when they are idle for long periods. If you cannot power them down, use their lowest power mode and confirm via measurements that it matches the datasheet specification.
- Wireless Activity Optimization: If your design includes a radio, measure the energy per transmission/reception and confirm it aligns with your budget. Adjust the Transmit power to the minimum needed for a reliable link (lower RF power can save a lot of energy). Use sniffer logs or module current traces to ensure the radio is not waking up more often than it should (e.g., hidden retries or background scanning can kill battery life). For protocols such as Bluetooth Low Energy or Thread, make sure connection parameters (intervals, latencies) are tuned for longer sleeps if possible. For LoRa/LPWAN, confirm the device is not listening unnecessarily often. Essentially, ensure the wireless duty cycle is as low as your use case allows.
- Energy Harvesting Integration (if applicable): When using an energy harvester, test the system under both energy-rich and energy-poor conditions. In strong input conditions, make sure the charging circuit does not let the storage device enter an over-voltage or over-charged state. In weak conditions, ensure that the device can still meet minimum functionality on stored energy, and that the harvester’s quiescent losses are not draining more than they are contributing. Log the charge/discharge patterns over time to validate that the device can achieve a net energy gain in a typical scenario. If not, you may need a larger harvester or lower power consumption.
- Long-Term Measurement: Perform a long-duration test on a prototype. This could be a run where you log the current over hours. Alternatively, power the device from a battery and see how long it lasts in accelerated life testing. Some power analysers can compute cumulative charge consumption: use this to project battery life and see if it matches the design goal.
With careful planning, diligent measurement and iterative improvement, you can transform ambitious battery life targets into reality. This comprehensive approach to low-power design will ensure your low power embedded systems sip energy, extending operational life, using smaller batteries, and ultimately creating a better experience for users (who won’t need to change batteries often) and a greener footprint for deployed electronics systems.
By treating power as a first-class design metric, on par with functionality and cost, you will consistently achieve efficient, battery-safe designs.
You must be signed in to post a comment.
Comments
No comments yet