ElectronicsInfoline

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.

On the bench, near USB?yesUSB, nothing elsenoA 12 V (or higher) adapter?yesbuck module set to 5 VnoOne Li-ion cell?yesLDO ≥ 500 mA into 3V3noA 9 V battery?yesworks; 44 % becomes heat
Figure 1. The order we ask the questions in. Every limit on the right is worked out further down the page.

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.

deep sleep10 µAlight sleep0.8 mAmodem sleep, max68 mAWi-Fi receive100 mAWi-Fi transmit240 mAsupply must give500 mAmilliamps, log scale
Figure 2. ESP32 current by mode, from Espressif's data sheet (3.3 V, 25 °C), on a log scale. The 0.5 A line is Espressif's minimum for the supply, not a draw.

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.

PartWhere you meet itType, currentDropout (max)Quiescent current
AMS1117-3.3most ESP32 dev boards, next to the USB socketlinear, 1 A; input 15 V abs. max1.3 V at 0.8 A (1.1 V typ.)5 mA typ., 11 mA max
SPX1117-5.0Arduino UNO R3 (U1)linear, 800 mA; input 20 V abs. max1.1 V at 800 mAnot used here (the UNO runs from a wall supply or USB)
LM2596the common blue buck moduleswitching, 150 kHz, 3 A; input to 40 Vnot the limit; 80 % efficient at 12 V in, 3 A5 mA typ., 10 mA max
MCP1825S-3.3our pick for an ESP32 on a Li-ion cellCMOS LDO, 500 mA; input to 6 V350 mV at 500 mA (210 typ.)120 µA typ., 220 µA max
MCP1700-3.3ATmega328P or sensor nodes without Wi-FiCMOS LDO, 250 mA; input to 6 V350 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.

ESP32 dev boardUSB5 V5V / VIN pin15 V abs. maxAMS1117-3.3linear, SOT-2233V3 railESP32 moduleArduino UNO R3barrel / VIN6–20 VUSB5.5 V maxSPX1117-5linear, SOT-2235V railATmega328P3.3 V pin: a second, small regulatorUSB skips the regulator
Figure 3. Where the power goes on the two boards. USB goes straight to the UNO's 5 V rail; everything on the barrel jack or VIN passes through a linear regulator that burns the difference as heat.

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.

barrel at 7 V0.8 Abarrel at 9 V0.49 Abarrel at 12 V0.28 Abarrel at 20 V0.13 Aamps, whole 5 V rail
Figure 4. Most current the UNO's 5 V rail can draw through the SPX1117 before its junction reaches 125 °C, at 35 °C air and 46 °C/W. At 7 V the regulator's own 800 mA rating is the limit.

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.

linear, draws 1 A7.0 WLM2596, draws 0.52 A1.25 Wwatts of heat
Figure 5. Heat when making 1 A at 5 V from 12 V: a linear regulator against the LM2596 at its typical 80 % (TI data sheet, 12 V in).

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.

Li-ion cell, 3 to 4.2 V3.7 V nominalESP32 min 3.0 VAMS1117: 4.6 V+MCP1825S: 3.65 V+2.533.544.55volts at the regulator input
Figure 6. The input each regulator needs to hold 3.3 V (data-sheet worst case: AMS1117 at 0.8 A, MCP1825S at 500 mA), against a Li-ion cell's 3 to 4.2 V. The AMS1117 needs more than a full cell gives.

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.

+Li-ion 3–4.2 VswitchC inMCP1825S-3.3IN GND OUT1 µF3V3all grounds joined; nothing on the 5V pin
Figure 7. One Li-ion cell to an ESP32 board's 3V3 pin through an MCP1825S-3.3, with a switch, an input capacitor and the 1 µF output capacitor. The board's own AMS1117 stays unpowered.

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.

AMS1117, asleep only17 daysAMS1117, with wake-ups14 daysMCP1825S, with wake-ups82 daysMCP1825S, asleep only1.8 yearsrunning time, log scale
Figure 8. Days on a 2,000 mAh cell, log scale: ESP32 deep sleep (10 µA) plus each regulator's typical quiescent current, with and without a 5 s Wi-Fi wake every 15 minutes at 160 mA. Self-discharge, the USB chip and the LED are left out.

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.

Why does my ESP32 reset when Wi-Fi starts? The transmit burst draws about 240 mA, and a weak supply or thin cable lets the 3.3 V rail dip below what the chip needs. Try a short, thick USB cable, then a supply rated 0.5 A or more.

My ESP32 deep-sleeps, so why is the battery flat in two weeks? The board's AMS1117 draws about 5 mA whether the ESP32 sleeps or not, which is 500 times the chip's 10 µA. On a 2,000 mAh cell that alone empties it in about 17 days.

Lessons behind the numbers

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.

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