---
# System prepended metadata

title: How much current does a microcontroller need?
tags: [Microcontroller]

---

It varies a lot—by MCU family, clock speed, voltage, peripherals, and sleep mode. Also: the MCU chip current is often much lower than the [dev board](https://www.onzuu.com/category/development-boards-kits-programmers) ([Arduino](https://www.ampheo.com/c/development-board-arduino)/ESP board) current because boards add regulators, USB chips, LEDs, etc.

![How-to-Choose-the-Right-Microcontroller-for-Your-Embedded-Project](https://hackmd.io/_uploads/ryD0AaJNWl.jpg)

**Typical current ranges (rule-of-thumb)**
**Active (CPU running)**

* Ultra-low-power MCUs ([STM32L](https://www.ampheo.com/search/STM32L) / [MSP430](https://www.ampheo.com/search/MSP430) / nRF in CPU-only mode): ~0.1–5 mA
* Mainstream 8-bit / Cortex-M MCUs (AVR, [PIC](https://www.ampheo.com/search/PIC), [STM32F](https://www.ampheo.com/search/STM32F), [SAMD](https://www.ampheo.com/search/SAMD)): ~2–30 mA
* High-performance MCUs (fast clocks, lots of peripherals): ~10–100 mA

**Sleep / standby**

* Sleep (RAM kept, wake on interrupt): ~1–50 µA (often)
* Deep sleep / standby: ~0.05–5 µA (good low-power parts)
* Worst case cheap/older parts: can be tens to hundreds of µA even in sleep

**Wireless MCUs (important special case)**

Wi-Fi/BLE transmit bursts (ESP32-class): typically 80–300+ mA in bursts
Average can still be low if it sleeps most of the time.

**What determines the current**

1. Supply voltage (V): higher V usually increases power.
2. Clock frequency (f): faster clock → more current.
3. Peripherals: [ADC](https://www.onzuu.com/category/analog-to-digital-converters), timers, USB, crypto, displays, etc. add current.
4. I/O loading: LEDs, pull-ups, driving low-impedance loads can dominate.
5. Sleep strategy: most battery designs rely on spending 99% time asleep.

**Don’t forget I/O current (often the “real” drain)**

An MCU might only need a few mA, but:

* A single LED at 5–10 mA already matches/exceeds the CPU.
* Multiple GPIO outputs, [sensors](https://www.ampheo.com/c/sensors), level shifters, and pull-ups add up.
  Also check datasheet limits:
* Max current per pin
* Max total current for all pins (and per port)

**How to estimate average current (battery planning)**

Use duty cycle:

𝐼𝑎𝑣𝑔=∑(𝐼𝑖⋅𝑡𝑖)/𝑇

Example: 10 mA for 10 ms each second + 10 µA sleep for the rest
→ 𝐼𝑎𝑣𝑔≈(10𝑚𝐴⋅0.01𝑠+0.01𝑚𝐴⋅0.99𝑠)/1𝑠≈0.11𝑚𝐴

**Quick “sanity” examples**

* Bare [MCU](https://www.ampheoelec.de/c/microcontrollers) doing simple control at moderate clock: often a few mA.
* [Arduino Uno](https://www.ampheo.com/product/a000046-25542493) board powered from USB: often tens of mA even if your sketch is idle (board overhead).
* ESP32 with Wi-Fi active: can spike hundreds of mA during TX, so size your regulator accordingly.

**Best way to know for your case**

Check the datasheet tables for:

* Run current at your V and f
* Sleep/stop/standby current
* Peripheral adders (ADC, USB, etc.)