Parts

ESP32 and ESP32-WROOM-32E: pinout, strapping pins, ratings and a minimal circuit

By Bulan Sarkar

On the ESP32-WROOM-32E module, pad 2 is 3V3, pad 3 is EN, pads 1, 15 and 38 are ground, and GPIO0, the BOOT pin, is pad 25. The whole part runs on 3.0 to 3.6 V and no pin is rated for 5 V. Five GPIOs are read at reset to choose how the chip starts (GPIO0, GPIO2, GPIO12, GPIO15, GPIO5), GPIO34 to GPIO39 are inputs only, and readings on the ADC2 pins can fail while Wi-Fi is on.

This page covers which ESP32 you are holding, the pad map of the WROOM-32E and the QFN pinout of the ESP32-D0WD-V3 chip inside it, the strapping pins and boot modes, the limits in Espressif's ESP32 Series Datasheet v5.3 and the module datasheet v2.1, the current the radio pulls, and a minimal working circuit with its numbers worked out.

Datasheet: Espressif ESP32-WROOM-32E & ESP32-WROOM-32UE Datasheet (PDF)Ask Datasheet Guru about the ESP32-PICO-D4

Advertisement

Pinout by package

ESP32-D0WD-V3 QFN-48 · Espressif1=VDDA 2=LNA_IN 3=VDD3P3 4=VDD3P3 5=IO36 6=IO37 7=IO38 8=IO39 9=CHIP_PU 10=IO34 11=IO35 12=IO32 13=IO33 14=IO25 15=IO26 16=IO27 17=IO14 18=IO12 19=VDD3P3_RTC 20=IO13 21=IO15 22=IO2 23=IO0 24=IO4 25=IO16 26=VDD_SDIO 27=IO17 28=IO9 29=IO10 30=IO11 31=IO6 32=IO7 33=IO8 34=IO5 35=IO18 36=IO23 37=VDD3P3_CPU 38=IO19 39=IO22 40=RXD0 41=TXD0 42=IO21 43=VDDA 44=XTAL_N 45=XTAL_P 46=VDDA 47=CAP2 48=CAP1 49=GND

Top view, pin 1 (VDDA) top left: pins 1 to 14 down the left side, 15 to 24 along the bottom, 25 to 38 up the right, 39 to 48 back along the top; pin 49 is the ground pad underneath.

GPIO6 to GPIO11 (pins 28 to 33) are the flash bus. Leave them to the flash.

Source: Espressif ESP32 Series Datasheet, p. 11 (Table 1-1: ESP32-D0WD-V3 is dual core, chip revision v3.0/v3.1, no in-package flash, QFN 5*5); Espressif ESP32 Series Datasheet, p. 13 (Figure 2-2, ESP32 pin layout, QFN 5*5 top view); Espressif ESP32 Series Datasheet, p. 14 (Table 2-1, pin overview, pins 1 to 21); Espressif ESP32 Series Datasheet, p. 15 (Table 2-1, pins 22 to 47); Espressif ESP32 Series Datasheet, p. 61 (Table 6-1 note 2: GPIO34 to 39 are input-only, with no output driver and no pull-up or pull-down)

ESP32-WROOM-32E Module-38 · Espressif1=GND 2=3V3 3=EN 4=VP 5=VN 6=IO34 7=IO35 8=IO32 9=IO33 10=IO25 11=IO26 12=IO27 13=IO14 14=IO12 15=GND 16=IO13 17=NC 18=NC 19=NC 20=NC 21=NC 22=NC 23=IO15 24=IO2 25=IO0 26=IO4 27=IO16 28=IO17 29=IO5 30=IO18 31=IO19 32=NC 33=IO21 34=RXD0 35=TXD0 36=IO22 37=IO23 38=GND 39=GND

Top view, antenna end up: pads 1 to 14 down the left edge, 15 to 24 along the bottom, 25 to 38 up the right edge; pad 39 is the ground pad underneath. Pad pitch 1.27 mm.

Pad 14 (IO12) must be low at power-up, or the chip sets its flash supply to 1.8 V and will not boot.

Source: Espressif ESP32-WROOM-32E & ESP32-WROOM-32UE Datasheet, p. 10 (Figure 3, pin layout, top view, with the antenna keep-out zone); Espressif ESP32-WROOM-32E & ESP32-WROOM-32UE Datasheet, p. 11 (Table 3, pin definitions, pads 1 to 27); Espressif ESP32-WROOM-32E & ESP32-WROOM-32UE Datasheet, p. 12 (Table 3 continued, pads 28 to 38; note 2: GPIO6 to GPIO11 go to the module flash and are not led out); Espressif ESP32-WROOM-32E & ESP32-WROOM-32UE Datasheet, p. 40 (Figure 10, module dimensions: 18.0 × 25.5 × 3.1 mm, 38 pads at 1.27 mm pitch)

Which one do you have?

"ESP32" is printed on three different things. The chip is a 5 × 5 mm QFN with 48 pins and a ground pad; the current one is the ESP32-D0WD-V3: dual core, no flash inside, chip revision v3.0 or v3.1. The module is that chip under a metal shield with its 40 MHz crystal, the flash and an antenna, on a small board with 38 castellated pads; the one to buy is the ESP32-WROOM-32E. The dev board is a module plus a USB-serial chip, a regulator and two buttons, with pin headers. Its header labels are the module's GPIO numbers, so the module pad map below is the one to read.

The suffix on a WROOM-32E is the memory: -N4, -N8 and -N16 carry 4, 8 or 16 MB of flash, an R2 adds 2 MB of PSRAM (and then GPIO16 belongs to the PSRAM), and -H4 or -H8 are rated to 105 °C instead of 85 °C. The WROOM-32UE is the same module with an antenna connector. The older ESP32-WROOM-32 has the same pads but an older chip, and Espressif no longer recommends it for new designs. Espressif makes all of them; there is no second maker of the ESP32 to compare.

ESP32-WROOM-32E module pinout

The module has 38 pads at 1.27 mm pitch plus a ground pad underneath, on a board 18.0 × 25.5 mm. The pitch is half that of a breadboard, so the module needs a breakout or its own PCB. Pads 17 to 22 and 32 are not connected: inside the module, GPIO6 to GPIO11 go to the flash and are not brought out (module datasheet p. 12).

PCB antennakeep copper awayESP32-WROOM-32E39 = GND pad1GND23V33EN4VP5VN6IO347IO358IO329IO3310IO2511IO2612IO2713IO1414IO1238GND37IO2336IO2235TXD034RXD033IO2132NC31IO1930IO1829IO528IO1727IO1626IO425IO015GND16IO1317NC18NC19NC20NC21NC22NC23IO1524IO2powerstrappinginput onlyflash / NC
Figure 1. WROOM-32E pads, top view, from module datasheet v2.1 Figure 3 (p. 10) and Table 3 (pp. 11 to 12). The WROOM-32UE has the same pads.

Of the 26 GPIOs on the pads, 4 are inputs only (pads 4 to 7), 5 are strapping pins, and GPIO1 and GPIO3 are the serial port that loads the firmware and prints the boot log. That leaves 15 pins with no job at reset (Figure 4). Pad 14, GPIO12, is the one to treat with care: the reference schematic on p. 39 prints "IO12 should be kept low when the module is powered on".

ESP32-D0WD-V3 chip pinout (QFN-48)

The bare chip is for your own RF board, with a crystal, flash and a matched antenna line; most projects never touch it. Its 48 pins count anticlockwise from pin 1 at the top left, 14 down each side and 10 across the top and bottom, with the ground pad as pin 49. Here GPIO6 to GPIO11 come out as the SD_ pins 28 to 33, and they are the bus to the external flash.

ESP32-D0WD-V349 = GND pad1VDDA2LNA_IN3VDD3P34VDD3P35IO366IO377IO388IO399CHIP_PU10IO3411IO3512IO3213IO3314IO2538IO1937VDD3P3_CPU36IO2335IO1834IO533IO832IO731IO630IO1129IO1028IO927IO1726VDD_SDIO25IO1615IO2616IO2717IO1418IO1219VDD3P3_RTC20IO1321IO1522IO223IO024IO448CAP147CAP246VDDA45XTAL_P44XTAL_N43VDDA42IO2141TXD040RXD039IO22powerstrappinginput onlyflash / NC
Figure 2. ESP32-D0WD-V3, QFN 5 × 5 mm, top view, from ESP32 Series Datasheet v5.3 Figure 2-2 (p. 13) and Table 2-1 (pp. 14 to 16). GPIO names shortened to IO.

The chip has four supply domains: VDDA and VDD3P3 for the analog and radio parts, VDD3P3_RTC for the RTC pins, VDD3P3_CPU for the digital pins, and VDD_SDIO, an output that feeds the flash at either 1.8 V or the RTC supply voltage (pp. 17 to 19). On the module the only supply pad is 3V3.

Strapping pins and boot modes

At reset the chip latches the level on five pins and keeps it until the next reset. After that the pins are ordinary GPIOs again. Each has an internal pull-up or pull-down that sets its default, so a pin left unconnected gives the normal start-up. Anything you wire to these pins must not overpower that default while EN rises and for 1 ms after (the hold time tH, p. 23).

GPIO0pad 25 · pull-up · reads 1boot mode: 1 runs from flash, 0 enters downloadGPIO2pad 24 · pull-down · reads 0must be 0 for download modeGPIO12 (MTDI)pad 14 · pull-down · reads 0flash voltage: 0 gives 3.3 V, 1 gives 1.8 VGPIO15 (MTDO)pad 23 · pull-up · reads 1boot messages on U0TXD: 1 on, 0 offGPIO5pad 29 · pull-up · reads 1SDIO slave timing, with MTDOBoot mode at reset (Table 3-3)GPIO0 = 1: run the program in flashGPIO0 = 0 and GPIO2 = 0: wait for a download
Figure 3. Defaults from Table 3-1 (p. 22); boot mode from Table 3-3 (p. 23); flash voltage, boot log and SDIO timing from pp. 24 and 25 of the ESP32 Series Datasheet.

GPIO0 picks the boot mode. Held high, which its pull-up does, the chip runs the program in flash. Held low at reset, with GPIO2 also low, it waits for new firmware over the serial port; that is all the BOOT button on a dev board does. GPIO12 (MTDI) sets the voltage of the flash supply: low gives 3.3 V, high gives 1.8 V. The WROOM-32E's flash runs on 3.3 V, so a sensor or pull-up that holds GPIO12 high at power-up starves the flash and the module will not boot. GPIO15 (MTDO) low only silences the boot messages, and GPIO5 matters only to SDIO slave timing.

Which GPIOs to use: input-only pins and ADC2

IO36ADC1IO39ADC1IO34ADC1IO35ADC1IO32ADC1IO33ADC1IO25ADC2IO26ADC2IO27ADC2IO14ADC2IO12ADC2IO13ADC2IO15ADC2IO2ADC2IO0ADC2IO4ADC2IO16·IO17·IO5·IO18·IO19·IO21·IO3·IO1·IO22·IO23·free: 15strapping: 5input only: 4UART0: 2ADC2: shared with Wi-Fi, use ADC1 for analog
Figure 4. The module's GPIOs in pad order, from module datasheet Table 3 (pp. 11 to 12), with the input-only note from ESP32 Series Datasheet p. 61.

GPIO34 to GPIO39 are inputs only. They have no output driver and no internal pull-up or pull-down (ESP32 Series Datasheet p. 61), so a button on one of them needs its own resistor. They are fine for analog sensors and for signals you only read.

ADC2 shares its hardware with the Wi-Fi driver. Espressif's ESP-IDF guide (v6.1, ADC oneshot driver) says ADC2 is also used by Wi-Fi and that a read can fail with a timeout while another driver holds it. So if the project uses Wi-Fi, read analog only on the 6 ADC1 pads: GPIO32 to GPIO36 and GPIO39 (GPIO37 and GPIO38 exist only on the bare chip). Of those, GPIO32 and GPIO33 are also free outputs; the other four are the input-only pins. The 10 ADC2 pads still work as digital pins.

The ADC itself reads 150 to 2450 mV at its widest attenuation, with up to ±60 mV of error after eFuse calibration (p. 44). A 3.3 V signal needs a divider to fit; see the voltage divider calculator.

Absolute maximum ratings

With one maker, the comparison here is the chip against the module. They agree on the one that matters: 3.6 V is the ceiling on every supply pin. The module's storage limit is lower (105 °C against 150 °C) because of the flash and the board, and the module datasheet does not repeat the chip's 1200 mA limit on total I/O current. Design to the module's figures when you use the module.

Absolute maximum ratings: chip p. 51 and p. 53 (ESD); module p. 28 and p. 46 (ESD)
ParameterESP32-D0WD-V3QFN-48ESP32-WROOM-32EModule-38
Supply voltage, absolute maximum−0.3 to 3.6 V (all supply pins)−0.3 to 3.6 V (VDD33)
Cumulative I/O output current1200 mAnot listed; the chip figure applies
Storage temperature−40 to 150 °C−40 to 105 °C
ESD, human body model±2000 V±2000 V
ESD, charged device model±500 V±500 V

There is no 5 V tolerance anywhere. An input may sit at most 0.3 V above the I/O supply (Table 5-3, p. 52), which on a 3.3 V module is 3.6 V. A 5 V Arduino output or a 5 V sensor wired straight to a GPIO is outside the rating (the logic levels lesson explains the thresholds). Use a divider or a level shifter; the 3.3 V to 5 V level shifter guide covers both directions.

Supply, pin levels and current

Chip pp. 19, 23, 26, 30, 36, 43, 44, 51 and 52; module pp. 2, 3, 17, 26, 28 and 29. DC values at 3.3 V, 25 °C
ParameterESP32-D0WD-V3QFN-48ESP32-WROOM-32EModule-38
Supply voltage, operating2.3 to 3.6 V, 3.3 V typ (3.0 V min with in-package flash or PSRAM)3.0 to 3.6 V, 3.3 V typ
Supply current the source must deliver0.5 A min0.5 A min
Operating temperature−40 to 125 °C−40 to 85 °C; −40 to 105 °C for the -H4 and -H8
CPU clockup to 240 MHz, two cores80 to 240 MHz, two cores
Flashnone inside; external QSPI on GPIO6 to 114, 8 or 16 MB quad SPI, on GPIO6 to 11
GPIOs available3426 on the pads
High-level input voltage VIHVDD = 3.3 V, 25 °C0.75 VDD to VDD + 0.3 V0.75 VDD to VDD + 0.3 V
Low-level input voltage VILVDD = 3.3 V, 25 °C−0.3 V to 0.25 VDD−0.3 V to 0.25 VDD
Output high / low voltage VOH / VOL0.8 VDD min / 0.1 VDD max0.8 VDD min / 0.1 VDD max
Source current per pin, typical IOHVOH ≥ 2.64 V, maximum drive strength40 mA (CPU and RTC domains), 20 mA (SDIO domain)40 mA (CPU and RTC domains), 20 mA (SDIO domain)
Sink current per pin, typical IOLVOL = 0.495 V, maximum drive strength28 mA28 mA
Internal pull-up / pull-down RPU / RPD45 kΩ typ45 kΩ typ
EN (CHIP_PU) thresholdsruns above 0.75 VDD, shuts down below 0.6 Vruns above 0.75 VDD, shuts down below 0.6 V
Rails stable before EN rises / EN low to reset tSTBL / tRST50 µs min / 50 µs min50 µs min / 50 µs min
Strapping pin hold after EN rises tH1 ms min1 ms min
Current, Wi-Fi transmit 802.11b1 Mbps, +19.5 dBm, 3.3 V, 25 °C240 mA typ (50% duty)239 mA average, 379 mA peak (100% duty)
Current, Wi-Fi receive95 to 100 mA112 mA (20 MHz), 118 mA (40 MHz)
Current, modem-sleep240 MHz, dual core, radio off30 to 68 mAnot listed; refers to the chip
Current, deep-sleepRTC timer and RTC memory on10 µAnot listed; refers to the chip
ADC2 × 12-bit SAR, 18 channels2 × 12-bit SAR, 16 channels on the pads
ADC error after eFuse calibrationatten = 3, 150 to 2450 mV±60 mV±60 mV

The pin figures are typical, not limits: Espressif gives 40 mA source and 28 mA sink at maximum drive strength, and the source figure falls toward 29 mA per pin as more pins source current at once (p. 52, note 2). At 3.3 V an input reads high above 2.47 V and low below 0.82 V, and a high output is guaranteed only down to 2.64 V.

0100200300400500supply ≥ 500 mA802.11b TX, 19.5 dBm239379802.11g TX, 15 dBm190276802.11n TX, 20 MHz183258802.11n TX, 40 MHz165211RX, 20 MHz112RX, 40 MHz118mA: blue average, red outline peak
Figure 5. Module supply current from Table 16, p. 29 (transmit at 100% duty), against the 0.5 A the supply must deliver (Table 14, p. 28).

The radio is what sizes the power supply. Transmitting 802.11b at full power, the module averages 239 mA and peaks at 379 mA, 140 mA above its own average, in bursts as packets go out. That is why both datasheets ask for a supply that can deliver 500 mA, and why the reference schematic puts 22 µF on the 3V3 pad. The chip table (p. 52) gives 240 mA for the same mode, but measured at 50% duty; the module table is the one to size a supply from.

What it is good for

  • Anything that needs Wi-Fi or Bluetooth with a real processor behind it: sensor nodes that report to a server, web-controlled relays, data loggers, small displays.
  • Battery sensors that wake, send and sleep. Deep sleep with the RTC timer running is 10 µA (chip p. 30), but the regulator and anything else on the board are added to that.
  • Jobs needing more than an ATmega328P has: two cores at up to 240 MHz, three UARTs, touch inputs on ten pins, and two 8-bit DACs on GPIO25 and GPIO26.

It is a poor fit for a project that must run from 5 V logic without level shifting, needs more than a handful of analog inputs alongside Wi-Fi, or must run for months on coin cells while transmitting often. For a 5 V AVR with simpler power needs, see the ATmega328P page.

Worked example: a minimal ESP32-WROOM-32E board

The smallest circuit that runs a bare WROOM-32E from a 5 V USB supply, programs over serial and lights an LED: an AMS1117-3.3 regulator, two capacitors on the rail, an RC delay on EN with a reset button, a BOOT button on GPIO0, and an LED on GPIO23, a pin with no role at reset.

1. Check the regulator's headroom. The AMS1117 drops up to 1.25 V at 500 mA (see the AMS1117 page), so it holds 3.3 V as long as its input stays above 3.3 + 1.25 = 4.55 V. From 5 V that leaves 0.45 V of margin for the USB cable's drop.

2. Work out the regulator's heat. At the 239 mA transmit average, with its own 10 mA ground-pin current: (5 − 3.3) V × 239 mA + 5 V × 10 mA = 0.456 W. At 135 °C/W in SOT-223 that is a 61.6 °C rise, so 96.6 °C at the junction in a 35 °C room: inside its 125 °C limit even if the radio transmits without a break. The 379 mA bursts reach 0.694 W, but only for the length of a packet.

3. Size the bulk capacitor. The reference schematic fits 22 µF and 0.1 µF on the 3V3 pad. With the regulator ignored, 22 µF alone carries the 379 mA peak for 22 µF × (3.3 − 3) V / 379 mA = 17.4 µs before the rail falls to the module's 3.0 V minimum. A 10 µF part would last 7.9 µs. The capacitor covers the regulator's reaction time; place it right at the 3V3 pad, not at the regulator.

4. Delay EN. The module datasheet recommends 10 kΩ and 1 µF on EN (p. 39). The time constant is 10 kΩ × 1 µF = 10.0 ms. EN releases the chip at 0.75 × 3.3 V = 2.475 V, which it reaches after −RC × ln(1 − 0.75) = RC × ln 4 = 13.9 ms. (The RC time constant lesson derives the ln 4.) The datasheet needs only 50 µs of stable supply before EN rises (tSTBL), so the delay is 277 times that. The reset button shorts the capacitor; while it is held the resistor passes 0.3 mA.

5. Leave the strapping pins alone. GPIO0 has its internal pull-up, so the BOOT button only needs to pull it to ground; GPIO12 stays unconnected so its pull-down keeps the flash at 3.3 V. Nothing in this circuit touches GPIO2, 5 or 15.

6. Size the LED resistor. A red LED drops about 2.0 V. For 10 mA or less from a 3.3 V pin, R ≥ (3.3 − 2.0) V / 10 mA = 130 Ω; the next E12 value up is 150 Ω. With the pin at the full rail the LED gets 8.7 mA; with the pin at its guaranteed minimum high, 2.64 V, it gets (2.64 − 2.0) V / 150 Ω = 4.3 mA. Either way it lights, and it is well under the pin's 40 mA typical.

5 VLDOAMS1117-3.33.3 V22 µF0.1 µFESP32-WROOM-32E2 3V33 EN25 IO014 IO1237 IO231 GND10 kΩ1 µFRESETBOOTleave open or low150 ΩLEDTXD0 35RXD0 34TXD0, RXD0: to a USB-serial adapter
Figure 6. The minimal circuit. Capacitor and EN values from the module's reference schematic (p. 39); the regulator and the LED parts are ours.
0123010203040503.3 V railbelow 0.6 V: off2.475 V at 13.9 ms: chip startsthen straps held 1 msVtime after the rail comes up, ms
Figure 7. EN rising through the RC delay. Release level 0.75 × VDD and shutdown level 0.6 V from Table 15 (module p. 29); hold time from Table 3-2 (chip p. 23).

To load firmware, hold BOOT, tap RESET, then let go of BOOT: the chip starts with GPIO0 low and waits on the serial port. For powering a board from USB, a wall adapter or a battery, see how to power an ESP32 or Arduino, and the RC time constant calculator for other EN values.

Advertisement

Worked example in numbers

Lowest 5 V input that holds 3.3 V
4.55 V
Regulator heat, transmit average
0.46 W
EN release after power-up
13.9 ms
LED current, GPIO23
4.3 mA to 8.7 mA

Tips and checks

  • Put the 22 µF capacitor at the 3V3 pad. Resets the moment Wi-Fi connects usually mean the supply or its wiring cannot follow the 379 mA bursts.
  • Keep copper, ground pour and metal away from the antenna end of a WROOM-32E. The module datasheet marks a keep-out zone (p. 10); the 32UE has none because its antenna is off the board.
  • Use GPIO34 to 39 for buttons only with an external pull-up or pull-down: they have none inside.
  • Pick analog inputs from ADC1 (GPIO32 to 36 and GPIO39 on the module) if Wi-Fi is on, and expect ±60 mV even after calibration.
  • For loads above a few milliamps, relays or motors, switch through a transistor; the MOSFET guide for Arduino and ESP32 picks one that turns on fully from 3.3 V.
  • Never connect anything to GPIO6 to 11 on a bare chip design unless it is the flash. On the module they are not brought out, which settles it.

Substitutes: WROOM-32UE, WROOM-32 and the D0WD

The WROOM-32UE drops into a WROOM-32E footprint. The older WROOM-32 fits too, as long as nothing on the board uses pads 17 to 22. Newer chips such as the ESP32-S3 and ESP32-C3 are different parts with different pinouts and are not substitutes.

Pin numbers as on the top view: module pads 1 to 14 down the left side, 15 to 24 along the bottom, 25 to 38 up the right
PartPinsVerdict
ESP32-WROOM-32UESame 38 padsThe same module with a connector for an external antenna instead of the PCB antenna. Same pads, same flash options, same datasheet; it is shorter (19.2 mm) and needs no antenna keep-out on the board.Espressif ESP32-WROOM-32E & ESP32-WROOM-32UE Datasheet, p. 3; Espressif ESP32-WROOM-32E & ESP32-WROOM-32UE Datasheet, p. 10
ESP32-WROOM-32Same 38 padsSame footprint and pad names, but Espressif marks it not recommended for new designs. It carries the older ESP32-D0WDQ6 chip, and pads 17 to 22 are wired to its flash, where the 32E has no connection. Fits a 32E footprint if nothing on the board uses those six pads.Espressif ESP32-WROOM-32 Datasheet (NRND), p. 3; Espressif ESP32-WROOM-32 Datasheet (NRND), p. 9; Espressif ESP32-WROOM-32 Datasheet (NRND), p. 10
ESP32-D0WD (chip)Same QFN 5 × 5Same package and pinout as the D0WD-V3, but the older chip revision v1.0/v1.1, and not recommended for new designs. Espressif lists the differences between revisions in its ESP32 Series SoC Errata, so read that before swapping.Espressif ESP32 Series Datasheet, p. 11; Espressif ESP32 Series Datasheet, p. 13

Bench check: will it boot, and why not?

  1. With power on, measure 3.3 V on pad 2 against ground, and 3.0 V or more there while Wi-Fi is transmitting. A rail that dips below 3.0 V needs a bigger supply or the bulk capacitor moved closer.
  2. Measure EN. It must sit above 2.47 V; anything near 0.6 V or below holds the chip off.
  3. Connect a USB-serial adapter to TXD0 and RXD0 and press RESET. With GPIO15 left unconnected the chip prints its boot log on TXD0; no output at all means it is not starting.
  4. If it boots without your circuit but not with it, measure GPIO0, 2 and 12 during reset. GPIO12 above 2.47 V at that moment is the fault.

What we'd do

Use the ESP32-WROOM-32E (or the 32UE if the board sits in a metal box) rather than the bare chip. Feed it from a regulator that can deliver 500 mA with 22 µF at the 3V3 pad, put 10 kΩ and 1 µF on EN, and keep GPIO12 low at power-up. Read analog on ADC1 if Wi-Fi is on, level-shift anything 5 V, and plan outputs on the 15 pins with no role at reset before touching the strapping pins.

Questions people ask

What is the ESP32-WROOM-32E pinout?

Pad 1 GND, 2 3V3, 3 EN, 4 and 5 GPIO36 and GPIO39, 6 to 14 GPIO34, 35, 32, 33, 25, 26, 27, 14, 12, 15 GND, 16 GPIO13, 17 to 22 not connected, 23 GPIO15, 24 GPIO2, 25 GPIO0, 26 GPIO4, 27 GPIO16, 28 GPIO17, 29 GPIO5, 30 GPIO18, 31 GPIO19, 32 not connected, 33 GPIO21, 34 RXD0, 35 TXD0, 36 GPIO22, 37 GPIO23, 38 GND.

Is the ESP32 5 V tolerant?

No. Its supply maximum is 3.6 V and an input may go only 0.3 V above the I/O supply, 3.6 V on a 3.3 V board. Divide or level-shift 5 V signals.

Which ESP32 pins are strapping pins?

GPIO0, GPIO2, GPIO5, GPIO12 (MTDI) and GPIO15 (MTDO). GPIO0 and GPIO2 choose run or download, GPIO12 sets the flash voltage, GPIO15 turns the boot log on or off, and GPIO5 with GPIO15 sets SDIO slave timing.

Why can't I read ADC2 pins with Wi-Fi on?

The Wi-Fi driver also uses ADC2, and Espressif's ESP-IDF guide says an ADC2 read can fail with a timeout while another driver holds the unit. Use the ADC1 pins, GPIO32 to GPIO36 and GPIO39 on the module, for analog readings in a Wi-Fi project.

How much current does an ESP32 need?

Plan on 500 mA from the supply. The WROOM-32E averages 239 mA transmitting at full power with peaks of 379 mA, receives at about 112 mA, and deep sleep on the chip is 10 µA.

Can GPIO34 to GPIO39 be outputs?

No. They have no output driver and no internal pull-up or pull-down. Use them as inputs, with an external resistor for a button.

Buying the ESP32 in India

Indian shops sell far more ESP32 dev boards than bare modules, and many are listed only as "ESP32" with a photo. Read the print on the metal shield: ESP32-WROOM-32E (or 32UE) is the current module; plain ESP32-WROOM-32 is the older one. A listing that says "30-pin" or "38-pin" describes the dev board's headers, not the module. For a board of your own, buy the bare module with its flash size in the part number (-N4 is plenty for most projects). Our guide to buying electronic components in India compares ten online sellers and covers how to spot fakes.

Advertisement

One email a month from the bench

New circuits, lessons, part guides and calculators, on the first Sunday of each month.

We'll send one email to confirm. Every email has a one-click unsubscribe. Privacy policy

Used in these lessons

Lessons that go deeper

Datasheets this page was checked against

Makers revise datasheets. If the copy you download has a newer revision and a number here disagrees with it, the datasheet wins, and we would like to hear about it.