Resources · Checked 11 October 2026
Powering an ESP32 or Arduino: USB, AMS1117, buck module or battery
Five regulators and the ESP32's own supply table, read from their data sheets
By Bulan Sarkar, founder of ElectronicsInfoline (since 2000), Durgapur · Every rating from the maker's data sheet, 11 October 2026 · About a 12-minute read
Most projects that reset at random, brown out when Wi-Fi starts or run their battery flat in a fortnight usually come down to power. This page works through the four ways people power an ESP32 or an Arduino UNO, using the data sheets of the regulators actually soldered on those boards.
On the bench, use USB. It is current-limited, and the board's regulator barely warms up.
From a 12 V adapter, put a buck module set to 5 V in front of the board. The UNO's own regulator can only pass about 0.28 A from 12 V before it reaches 125 °C on a 35 °C day, and an ESP32 dev board fed 12 V on its VIN pin manages about 0.11 A, less than half of one Wi-Fi transmit burst.
From one Li-ion cell, skip the board's AMS1117. It needs up to 4.6 V at its input to hold 3.3 V, and a full cell gives 4.2 V. Feed the 3V3 pin through a low-dropout regulator rated 500 mA or more, such as the MCP1825S.
Which supply, in four questions
Ask them in this order. The first answer settles most bench projects before the others matter.
What an ESP32 actually draws
The current changes by a factor of 24,000 between deep sleep and a Wi-Fi transmit burst. Size the supply for the top of that range and the battery for the bottom. Espressif's data sheet gives 240 mA for 802.11b transmit at full power, 100 mA to receive, and 10 µA in deep sleep with the RTC timer running. It also asks for a supply that can deliver at least 0.5 A, between 3 V and 3.6 V.
An UNO's own draw is small next to those bursts. What it drives (servos, LED strips, relays) is what sizes the supply. Our relay guide and MOSFET guide give the load currents for those.
The regulators, from their data sheets
The first two are the ones already on the boards. The other three are the ones we would add.
| Part | Where you meet it | Type, current | Dropout (max) | Quiescent current |
|---|---|---|---|---|
| AMS1117-3.3 | most ESP32 dev boards, next to the USB socket | linear, 1 A; input 15 V abs. max | 1.3 V at 0.8 A (1.1 V typ.) | 5 mA typ., 11 mA max |
| SPX1117-5.0 | Arduino UNO R3 (U1) | linear, 800 mA; input 20 V abs. max | 1.1 V at 800 mA | not used here (the UNO runs from a wall supply or USB) |
| LM2596 | the common blue buck module | switching, 150 kHz, 3 A; input to 40 V | not the limit; 80 % efficient at 12 V in, 3 A | 5 mA typ., 10 mA max |
| MCP1825S-3.3 | our pick for an ESP32 on a Li-ion cell | CMOS LDO, 500 mA; input to 6 V | 350 mV at 500 mA (210 typ.) | 120 µA typ., 220 µA max |
| MCP1700-3.3 | ATmega328P or sensor nodes without Wi-Fi | CMOS LDO, 250 mA; input to 6 V | 350 mV at 250 mA (178 typ.) | 1.6 µA typ., 4 µA max |
Read from the data sheets on 11 October 2026; the sources name the documents. The MCP1700 is not on the ESP32 shortlist: its 250 mA is half the 500 mA Espressif asks for.
One check before you trust the table: read the marking on your board's regulator. Clone boards swap parts between batches, and a different regulator brings a different dropout and quiescent current.
USB: the right answer on the bench
On an ESP32 dev board, USB's 5 V reaches the AMS1117, which drops it to 3.3 V. At the 240 mA transmit peak the regulator burns (5 − 3.3) V × 0.24 A = 0.41 W. With the 90 °C/W the data sheet gives the SOT-223 package, that is 37 °C above the air around it, and only for the length of the burst, which the part handles easily.
On an UNO, USB skips the regulator altogether and feeds the 5 V rail directly. Either way, the weak point is the cable. A long, thin charging cable can drop enough at a Wi-Fi burst to reset an ESP32. If a board resets only when Wi-Fi connects, try a short, thick data cable before you touch the code.
Our take: a phone charger and a good cable run either board for as long as you like. Most projects never need anything else.
The UNO's barrel jack: the heat limit nobody prints
Arduino's data sheet accepts 6 to 20 V on VIN. That range is what the board survives. What it can supply is set by heat. Everything on the 5 V rail, the board included, passes through the SPX1117, and every volt above 5 turns into heat: (Vin − 5) × I.
With the data sheet's 46 °C/W (a SOT-223 on copper, which is generous for a crowded board) and 35 °C room air, the junction reaches its 125 °C limit at about 2.0 W. From 12 V that is 0.28 A for the whole rail; from 9 V, 0.49 A. Past that the regulator's thermal shutdown (above 155 °C) cuts the output, the board resets, cools, and starts again.
A 9 V battery on the barrel jack works for a few hours of demo, but the regulator turns 44 % of the battery's energy into heat, because 4 of the 9 volts never reach the board. Our regulator thermal design lesson works the junction temperature through step by step.
12 V supplies, and why a buck module wins
Projects with LED strips, pumps or motors usually have a 12 V adapter, and it is tempting to run the controller from it too. On an ESP32 dev board, don't feed 12 V into the VIN pin. Its AMS1117 is rated to 15 V, so it survives, but at the 240 mA transmit peak it burns 2.1 W, enough for a 188 °C rise. It can carry only about 0.11 A continuously before reaching 125 °C.
A buck (step-down) module converts instead of burning. Taking 1 A at 5 V from 12 V, a linear regulator draws the full 1 A from the adapter and turns 7.0 W into heat, 42 % efficient. The LM2596, at the 80 % its data sheet gives for 12 V in, draws 0.52 A and wastes 1.25 W.
Set the module's output with a multimeter before you connect the board. The trimmer on a fresh module can sit anywhere up to the input voltage. Then feed the buck's 5 V into the board's 5V pin. The switching regulator lesson explains how a buck works.
Our take: any project with a 12 V adapter gets a buck module set to 5 V, checked with a meter, feeding the board's 5V pin. The board's own regulator then only drops 5 V to 3.3 V, which it does without trouble.
Batteries: the dropout trap
A Li-ion cell runs from 4.2 V full to about 3 V empty. To hold 3.3 V, the AMS1117 needs 4.6 V at its input by its worst-case figure (4.4 V typical) at 0.8 A, less at lighter loads. A full cell is already 0.4 V short of that, so with the cell on the 5V pin the 3.3 V rail sags with the cell from the start, and the ESP32 browns out during Wi-Fi bursts well before the cell is flat.
A CMOS low-dropout regulator closes that gap. The MCP1825S needs at most 3.65 V at its input at a full 500 mA, so it holds 3.3 V over most of the discharge. Below that its output follows the cell down, and it only reaches the ESP32's 3 V floor when the cell is at 3.35 V, near empty anyway.
Wire the regulator's output to the board's 3V3 pin and leave the 5V pin empty, so the board's AMS1117 sits unpowered. Microchip rates the MCP1825S stable with a 1 µF ceramic on its output and asks for an input capacitor when the source is a battery. Keep USB unplugged while the cell is connected, or you feed two supplies into one rail.
Charge the cell with a proper Li-ion charger or a protected charger board, never straight from the ESP32 board's 5 V. The battery charging lesson covers the constant-current, constant-voltage profile, and battery types compares the chemistries.
Battery life: the regulator's quiescent current
Deep sleep at 10 µA does little for battery life if the board's regulator draws 5 mA all the time. On a 2,000 mAh cell, a dev board that only sleeps lasts 17 days, and the ESP32's share of that is under 1 %. The USB chip and the power LED on the board add more on top.
Take a sensor node that wakes every 15 minutes for 5 seconds of Wi-Fi at an average 160 mA. That averages 0.9 mA. With the AMS1117 on the path the cell lasts 14 days; through an MCP1825S into the 3V3 pin, 82 days, 5.8 times as long for the same code.
The MCP1825S sleeping figure, 1.8 years, is an upper bound: by then the cell's own self-discharge has taken a share. The battery backup calculator is built for inverter batteries, but the arithmetic is the same: capacity divided by average current.
Our take: for anything on a battery, the regulator's quiescent current is the first number to read. A dev board as sold is a bench tool; a battery project gets its own low-quiescent regulator into the 3V3 pin.
Tips and checks
- Measure the 3V3 pin with a multimeter while Wi-Fi connects. A reading that dips toward 3 V means the supply or cable is the problem, not the sketch.
- Touch-test the regulator after ten minutes of running. If it is too hot to keep a finger on, it is near its limit; move the voltage drop to a buck module.
- A brown-out reset message in the ESP32's serial log is the chip telling you its supply dipped. Treat it as a hardware fault.
- Many power banks switch off when the current falls low, and a sleeping ESP32 draws almost nothing. If the project dies after a few minutes on a power bank, that is the likely cause.
- Join the grounds of every supply in the project: the board, the buck module, the LED strip's adapter. A missing ground causes stranger faults than a missing supply.
- Read the regulator's marking before you plan a battery project around the board.
What we'd do: USB on the bench, every time. A 12 V project gets a buck module set to 5 V into the 5V pin. A battery ESP32 gets one Li-ion cell through an MCP1825S-class regulator into the 3V3 pin, with deep sleep between short Wi-Fi bursts. The 9 V battery stays in the drawer for the multimeter. For an UNO, keep the barrel jack at 7 to 9 V if you must use it, and move anything that draws real current off the board's 5 V rail.
Questions we keep hearing
Can I power an ESP32 with a 9 V battery? Through a buck module, yes; through the dev board's VIN pin, it works but wastes most of the battery. The AMS1117 drops 5.7 of the 9 volts as heat, and a 9 V battery holds little energy to begin with. One Li-ion cell through an LDO lasts far longer.
Can I connect an 18650 cell straight to the ESP32's 5V pin? It powers up, but the board's AMS1117 needs up to 4.6 V to hold 3.3 V and the cell gives at most 4.2 V. The rail sags and the ESP32 resets during Wi-Fi. Use a low-dropout regulator into the 3V3 pin instead.
Can I connect a Li-ion cell straight to the 3V3 pin? No. A full cell is 4.2 V, above the ESP32's 3.6 V maximum supply. It needs a regulator in between.
What voltage should I put into the Arduino UNO's barrel jack? 7 to 9 V keeps the regulator cool. Arduino's data sheet allows 6 to 20 V, but at 12 V the 5 V rail can only supply about 0.28 A before the regulator reaches 125 °C on a warm day.
Lessons behind the numbers
- Linear regulators: how the AMS1117 and SPX1117 work, and where dropout comes from
- Regulator thermal design: junction temperature from θJA
- Switching regulators: why a buck wastes so little
- IC power decoupling: the capacitors that ride out a Wi-Fi burst
- Battery types: Li-ion, alkaline and the rest
- Battery charging: the CC/CV profile a Li-ion cell needs
Tools: the LM317 calculator sets an adjustable linear regulator, and the battery backup calculator does the capacity arithmetic.
Sources
Every data sheet read on 11 October 2026 unless the entry says otherwise.
- Espressif, ESP32 Series Datasheet v5.3, Table 4-2 Power Consumption by Power Modes, Table 5-2 Recommended Power Supply Characteristics, Table 5-4 Current Consumption Depending on RF Modes (supply 3.0 to 3.6 V (3.0 V for chips with in-package 3.3 V flash), at least 0.5 A from the external supply; transmit 240 mA (802.11b, +19.5 dBm), 190 mA (11g), 180 mA (11n), receive 95 to 100 mA; light sleep 0.8 mA; deep sleep 10 µA with the RTC timer and memory on)
- Advanced Monolithic Systems, AMS1117 1A Low Dropout Voltage Regulator data sheet (dropout 1.1 V typical, 1.3 V maximum at 0.8 A, lower at lighter loads; quiescent current 5 mA typical, 11 mA maximum; SOT-223 θJA 90 °C/W; junction 125 °C maximum; input 15 V absolute maximum)
- MaxLinear, SPX1117 800 mA Low Dropout Voltage Regulator data sheet, Rev. 2.2.0 (10 June 2025), Thermal characteristics (dropout 1.1 V at 800 mA; SOT-223 15 °C/W junction to tab plus 31 °C/W tab to ambient, 46 °C/W in all, on the data sheet’s copper; junction 125 °C maximum, thermal shutdown above 155 °C; input 20 V absolute maximum)
- Arduino, UNO R3 product reference manual (SKU A000066), §2.2 Power Consumption and §3.1 Board Topology (modified 8 October 2026) (VIN pad 6 to 20 V, USB connector 5.5 V maximum; U1 is an SPX1117M3-L-5 regulator)
- Texas Instruments, LM2596 SIMPLE SWITCHER Power Converter 150-kHz 3-A Step-Down Voltage Regulator, SNVS124G (revised March 2023), §7.6 and §7.9 (input up to 40 V; 5 V version efficiency 80 % typical at VIN 12 V, 3 A; operating quiescent current 5 mA typical, 10 mA maximum; 150 kHz)
- Microchip, MCP1825/MCP1825S 500 mA Low Voltage, Low Quiescent Current LDO Regulator, DS22056B (500 mA output; dropout 210 mV typical, 350 mV maximum at 500 mA; quiescent current 120 µA typical, 220 µA maximum; input 2.1 to 6.0 V; stable with a 1 µF ceramic output capacitor)
- Microchip, MCP1700 Low Quiescent Current LDO, DS20001826E (250 mA output (VOUT 2.5 V and up); dropout 178 mV typical, 350 mV maximum at 250 mA; quiescent current 1.6 µA typical, 4 µA maximum; input 2.3 to 6.0 V)
Our own choices, not from any source: 35 °C room air; the SPX1117's 46 °C/W applied to the UNO's board copper; an AMS1117-3.3 on the ESP32 dev board; a Li-ion cell of 2,000 mAh between 3 V and 4.2 V; the 1 A example load; and the sensor node's 5 s at 160 mA every 15 minutes. Typical quiescent currents are used for battery life; the maximum figures would shorten it.
How this page was checked
Every rating comes from the data sheets above, and every derived number is computed in code from those values, so the text and the figures cannot disagree. We print no prices and carry no affiliate links. Found an error? Tell us.
More guides: Resources · MOSFET for Arduino and ESP32 · 3.3 V and 5 V level shifting · Relay or SSR