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.)