Microcontroller
ESP32-WROOM-32E
Espressif's WiFi + Bluetooth SoC module — dual-core Xtensa LX6, the same silicon inside most ESP32 dev boards.
ESP32-WROOM-32E · Espressif Systems
Overview
The ESP32-WROOM-32E is the bare, castellated SMD module: a dual-core Xtensa LX6 SoC with WiFi and Bluetooth Classic/BLE, an SPI flash die, and a PCB antenna, all inside a 18×25.5mm shield can. It's what you'd reach for designing your OWN board around an ESP32 — most people building a project instead want a dev board (see esp32-devkit-v1) that has already wired up the USB-serial bridge, 3.3V regulator, EN/BOOT buttons and a breadboard-friendly header. The module itself needs a handful of support passives to run: a pull-up on EN, a pull-up on GPIO0 (to boot the flashed program instead of the ROM bootloader), and decoupling on 3V3.
Wiring tip: bare module — needs EN/GPIO0 pull-ups and its own 3.3V regulator; use esp32-devkit-v1 unless you're laying out your own board
Ecosystem: esp32
Pins & wiring
Logical two-sided map — confirm the package or board drawing before wiring.
All pins
Hover · click to selectSelected pin
GND
- Direction
- Passive
Full pin table
| Pin | Name | Role | Direction | Voltage | Note |
|---|---|---|---|---|---|
| 1 | Ground | Passive | — | — | |
| 2 | Power | Power | 3.3 V | — | |
| 3 | Control | In | — | Active-low chip enable/reset. Needs an external pull-up (~10kΩ) to 3V3 to run — floating EN holds the chip in reset. | |
| SENSOR_VP | silk: SENSOR_VP | Analog | In | 3.3 V | Input-only, no pull resistors. |
| SENSOR_VN | silk: SENSOR_VN | Analog | In | 3.3 V | Input-only, no pull resistors. |
| IO34 | Analog | In | 3.3 V | Input-only, no pull resistors. | |
| IO35 | Analog | In | 3.3 V | Input-only, no pull resistors. | |
| IO32 | Analog | Bidirectional | 3.3 V | ||
| IO33 | Analog | Bidirectional | 3.3 V | ||
| IO25 | Analog | Bidirectional | 3.3 V | ||
| IO26 | Analog | Bidirectional | 3.3 V | ||
| IO27 | Analog | Bidirectional | 3.3 V | ||
| IO14 | SPI | Bidirectional | 3.3 V | ||
| IO12 | SPI | Bidirectional | 3.3 V | Strapping pin (MTDI) — boot FAILS if externally pulled HIGH at reset. | |
| 14 | Ground | Passive | — | — | |
| IO13 | SPI | Bidirectional | 3.3 V | ||
| 16 | Other | No connect | — | Reserved for the internal SPI flash — not usable as GPIO. | |
| 17 | Other | No connect | — | Reserved for the internal SPI flash — not usable as GPIO. | |
| 18 | Other | No connect | — | Reserved for the internal SPI flash — not usable as GPIO. | |
| 19 | Other | No connect | — | Reserved for the internal SPI flash — not usable as GPIO. | |
| 20 | Other | No connect | — | Reserved for the internal SPI flash — not usable as GPIO. | |
| 21 | Other | No connect | — | Reserved for the internal SPI flash — not usable as GPIO. | |
| IO15 | SPI | Bidirectional | 3.3 V | Strapping pin (MTDO) — outputs debug info at boot; has an internal pull-up. | |
| IO2 | Analog | Bidirectional | 3.3 V | Strapping pin — must be low or floating to enter flashing mode; commonly tied to the onboard LED on dev boards. | |
| IO0 | Analog | Bidirectional | 3.3 V | Strapping pin — boot mode select. HIGH (or floating with its internal pull-up) = run firmware; LOW at reset = UART download mode. | |
| IO4 | Analog | Bidirectional | 3.3 V | Not a strapping pin, despite being commonly assumed to be one. | |
| IO16 | UART | Bidirectional | 3.3 V | ||
| IO17 | UART | Bidirectional | 3.3 V | ||
| IO5 | SPI | Bidirectional | 3.3 V | Strapping pin — outputs PWM briefly at boot. | |
| IO18 | SPI | Bidirectional | 3.3 V | ||
| IO19 | SPI | Bidirectional | 3.3 V | ||
| 32 | Other | No connect | — | — | |
| IO21 | I2C | Bidirectional | 3.3 V | ||
| RXD0 | silk: RXD0 | UART | Bidirectional | 3.3 V | UART0 RX — shared with the USB-serial bridge on dev boards; avoid repurposing while using Serial. |
| TXD0 | silk: TXD0 | UART | Bidirectional | 3.3 V | UART0 TX — shared with the USB-serial bridge on dev boards; avoid repurposing while using Serial. |
| IO22 | I2C | Bidirectional | 3.3 V | ||
| IO23 | SPI | Bidirectional | 3.3 V | ||
| 38 | Ground | Passive | — | — |
Wiring examples
Minimal application circuit
Any 3.3V hostThe support passives every WROOM-32E design needs, regardless of what else is on the board — this is what a dev board already does for you.
| ESP32-WROOM-32E pin | Connects to | Note |
|---|
You also need
- Required10 kΩ resistor between EN and 3V3 — EN floating leaves the chip in an undefined/reset state — a pull-up lets it run on power-up.
- Required10 kΩ resistor between GPIO0 and 3V3 — GPIO0 must read HIGH at reset to boot the flashed program instead of dropping into the UART bootloader.
- Required100 nF capacitor between 3V3 and GND — 100nF decoupling right at the module's 3V3/GND pins, per Espressif's hardware design guidelines.
- Required10 µF capacitor between 3V3 and GND — A bulk 10µF cap absorbs the current spikes during WiFi TX bursts — undersized decoupling is a common cause of brownout resets.
- GPIO0, GPIO2, GPIO5, GPIO12 and GPIO15 are strapping pins — an external pull-up/down in the wrong direction can silently break boot or flashing.
- Keep copper out of a 15mm zone around the PCB antenna on ALL layers — any ground pour or trace there detunes it off 2.4GHz.
- This is a 3.3V-only part — none of its GPIOs are 5V tolerant.
Specifications
Electrical
Interface
Physical
Footprint
No independently verified physical footprint is on file for this part yet.
Alternatives
Budget options
Cheaper, with a stated tradeoff — read the reason before swapping.
Cheaper MCU option when a project doesn't need WiFi/Bluetooth at all.
Compare with ESP32-WROOM-32E- Wi-Fi: yes → no
- Core: Xtensa dual-core LX6 @ 240MHz → ARM Cortex-M3 @ 72MHz — Different toolchain/ecosystem, not a drop-in firmware port.
Similar parts
Does the same job with a different part. Expect wiring and library changes — a starting point, not a guarantee.
Same silicon, pre-integrated onto a dev board with USB-serial, a 3.3V regulator, EN/BOOT buttons and a breadboard-friendly header — skip your own antenna-keepout and power design.
Compare with ESP32-WROOM-32E- Form factor: bare SMD module → 30-pin breadboard devboard
Documents
Datasheets
- ESP32-WROOM-32E / ESP32-WROOM-32UE DatasheetEspressif Systems
Product pages
- ESP32-WROOM-32E product pageEspressif Systems
Frequently asked questions
What voltage does the ESP32-WROOM-32E run at?
The ESP32-WROOM-32E runs at 3–3.6V, per the spec sheet below. Always double-check against the specific board you have — some breakouts add an onboard regulator that changes the usable input range.
How many pins does the ESP32-WROOM-32E have?
The ESP32-WROOM-32E has 38 pins, communicating over CAN, I2C, I2S, SPI, UART. See the full pinout table in Pins & wiring for each pin's role.
Can I simulate the ESP32-WROOM-32E before ordering hardware?
Not yet — the ESP32-WROOM-32E does not have a live simulation model in Banana Board today, so validate the wiring here and test on real hardware.
Where is the ESP32-WROOM-32E datasheet?
Linked in the Documents section on this page, and cited on every spec that came from it.
Related references
Build it, do not just look it up
Describe your circuit in one sentence and Banana Board wires it to these exact pins, validates it, and lays out a fab-ready PCB.