PCBWiki
NRNDEspressif Systems · SMD module, 38-pin

ESP32-WROOM-32 PCB Design Guide: Footprint, Pinout, and Alternatives

Wi-Fi and Bluetooth MCU module with dual-core Xtensa LX6, 4 MB flash, and on-board PCB antenna.

The ESP32-WROOM-32 is the module that made Wi-Fi a default feature on hobbyist and low-volume commercial boards. It packages the dual-core ESP32-D0WDQ6, 4 MB of SPI flash, the RF front end, and a PCB antenna into a 18 × 25.5 mm castellated module — RF layout, shielding, and (for later E-series variants) modular certification already handled.

One thing to know before you start a new design: Espressif has marked this original WROOM-32 as Not Recommended for New Designs. The ESP32-WROOM-32E uses the same footprint with a newer die revision and remains active — everything on this page applies to it, and new layouts should specify the -32E.

Most WROOM-32 board failures are not firmware bugs. They are one of five hardware mistakes: copper under the antenna, mis-strapped boot pins, input-only GPIO surprises, an undersized 3.3 V rail, or a missing auto-program circuit. Each is covered below.

What breaks boards

  1. Antenna keep-out: no copper under or beside the antenna end

    The PCB antenna occupies the last few millimetres of the module. Espressif's layout guidance is blunt: no copper, traces, or ground pour under or immediately around the antenna region, and the module belongs at the board edge — ideally with the antenna overhanging it. A pour under the antenna detunes it and can cost you most of your usable range; it is the single most common WROOM-32 layout mistake.

  2. Strapping pins must be at the right levels at reset

    GPIO0, GPIO2, GPIO5, GPIO12 (MTDI), and GPIO15 (MTDO) are sampled at reset to select boot mode and flash voltage. The worst offender is GPIO12: latched high at boot it sets the internal flash regulator to 1.8 V, and on modules with 3.3 V flash the chip simply fails to boot. Keep loads and pull-ups off the strapping pins, or buffer them; GPIO0 low with GPIO2 low/floating enters the serial bootloader.

  3. GPIO34–39 are input-only, with no internal pull-ups

    Six pins (GPIO34, 35, 36/SVP, 39/SVN among them) have no output drivers and no internal pull resistors. Firmware that calls pinMode(OUTPUT) on them fails silently, and buttons on these pins need external pull-ups. Budget your I/O map around this before routing.

  4. Size the 3.3 V rail for radio bursts, not average draw

    Espressif specifies the supply must deliver at least 500 mA to the module; measured TX current is around 240 mA typical during 802.11b transmit at full power, with short transient bursts above that. An AMS1117 fed from a 500 mA USB port sits exactly at the limit — the classic symptom is brownout resets the moment Wi-Fi associates. Use a regulator with headroom and at least 10 µF of bulk capacitance close to the module, plus 100 nF ceramic.

  5. ADC2 is unusable while Wi-Fi runs, and flashing needs the auto-program circuit

    The Wi-Fi driver owns ADC2, so analog reads on ADC2 channels return errors whenever the radio is active — plan analog inputs on ADC1 (GPIO32–39). For UART flashing without button-pressing, copy the standard two-transistor DTR/RTS auto-program circuit from Espressif's DevKitC reference schematic; it pulses EN and GPIO0 in the right sequence.

Key specifications

ParameterValueSource
Flash4 MB external SPI flash on moduleModule DS v3.6, Table 1
Module dimensions18 × 25.5 × 3.1 mmModule DS v3.6, §9
Pin count38 (castellated)Module DS v3.6, §2.2
VDD range3.0–3.6 V (3.3 V typ)Module DS v3.6, Table 13
TX current / required supply240 mA typ (802.11b, +19.5 dBm); supply must deliver ≥ 500 mAChip DS v5.2, Table 5-4; Module DS Table 13
Deep-sleep current10 µA (RTC timer + RTC mem); 150 µA with ULP onChip DS v5.2, Table 4-2
Operating temperature−40 to +85 °CModule DS v3.6, Tables 1, 13
AntennaOn-board PCB antennaModule DS v3.6, §1.1

Verified against the manufacturer datasheet on 2026-07-09. Confirm the current revision before production use.

Alternatives

  • ESP32-WROOM-32Ethe direct successor: same footprint, newer die revision, active lifecycle. The default choice for new designs — this page's guidance applies unchanged.
  • ESP32-S3-WROOM-1native USB OTG, more peripherals, and vector instructions — but no Bluetooth Classic, only BLE.
  • ESP32-C3-WROOM-02cheaper single-core RISC-V with native USB serial; fewer GPIO and less RAM, fine for simple connected sensors.
  • ESP32-WROVER-Eadds 8 MB PSRAM for camera and display work; note the longer module footprint is not pin-compatible.

Common questions

Why does my ESP32 reset when Wi-Fi starts?
Almost always supply droop. The module needs a 3.3 V source rated for at least 500 mA; radio bursts brown out marginal regulators like an AMS1117 running off a 500 mA USB budget. Fix the regulator and add bulk capacitance at the module.
Which ESP32 pins are safe to use as outputs?
Avoid the strapping pins (GPIO0, 2, 5, 12, 15) for anything that loads them at reset, and remember GPIO34–39 are input-only. That leaves roughly 20 freely usable GPIO on the WROOM-32.
Is the ESP32-WROOM-32 discontinued?
Not discontinued, but Espressif marks it NRND — Not Recommended for New Designs. The footprint-compatible ESP32-WROOM-32E is the active replacement and the right part for a new board.
Can I put ground pour under the ESP32 module?
Under the RF-shielded body, yes — but never under or next to the antenna end. Keep all copper layers clear of the antenna region and place the module at the board edge per Espressif's layout guide.

Sources