Skip to main content
ESPBoards
No
No
N/A

ESP32-WROOM Development Board Pinout and Technical Specifications

Code name: ESP32_WROOM_DA

ESP32-WROOM development board is based on esp32 microcontroller and uses xtensa architecture. This development board has a maximum CPU frequency of 240 MHz and a flash size of 4MB.


๐Ÿ”— Quick Links

ESP32-WROOM imageESP32-WROOM imageESP32-WROOM imageESP32-WROOM image

๐Ÿ“ ESP32-WROOM Description

The ESP32-WROOM-32 is a versatile and powerful Wi-Fi + Bluetoothยฎ + Bluetooth LE module, designed to support a wide range of applications. It is equally suitable for low-power sensor networks as well as high-demand tasks like voice encoding, music streaming, and MP3 decoding.

At the heart of the module is the ESP32-D0WDQ6 chip, engineered for scalability and adaptability. This chip features two CPU cores that can be independently controlled, with an adjustable clock frequency ranging from 80 MHz to 240 MHz. Additionally, it includes a low-power coprocessor, which is ideal for handling tasks that require minimal computing powerโ€”such as peripheral monitoringโ€”while conserving energy.

The ESP32 integrates a rich set of peripherals, including capacitive touch sensors, an SD card interface, Ethernet, high-speed SPI, UART, I2S, and I2C. Its combination of power, flexibility, and connectivity makes the ESP32-WROOM-32 a perfect choice for a broad spectrum of IoT and embedded applications.

๐Ÿ“Š ESP32-WROOM Specs

Below you can find the specifications of ESP32-WROOM, such as features, connectivity options, and ESP32-WROOM technical specs.

โœจ Features

  • 40 digital IO pins
  • 16 external interrupt pins
  • 16 analog input pins
  • 19 PWM pins

๐Ÿ›ฐ๏ธ Connectivity

  • WiFi: 802.11 b/g/n (2.4 GHz)
  • Bluetooth: 4.2
  • BLE: 4.2

๐Ÿ“ Technical specs

Microcontrolleresp32
Clock Speed240 MHz
Flash size4MB
Architecturextensa

๐Ÿ”Œ ESP32-WROOM Pinout

The ESP32-WROOM pinout is designed to offer developers a highly versatile and feature-packed layout for a variety of IoT and embedded applications. The ESP32 WROOM includes essential power pins such as 5V, 3.3V, and GND, ensuring stable power delivery for external components. Key communication protocols are well-supported, with pins for UART (RXD0, TXD0), SPI (MISO, MOSI, SCK, and SS), and I2C (SDA and SCL) to interface with a wide range of peripherals.

The ESP32 WROOM Devkit also supports multiple ADC pins (IO34, IO35, IO36, etc.), making it ideal for projects that require analog input, such as reading sensor data. Additionally, specialized pins such as DAC (IO25, IO26) and Touch Pins enhance its usability in advanced applications. The inclusion of RTC GPIOs further adds low-power features, allowing developers to take full advantage of the ESP32-WROOM pinout for efficient power management.

โš ๏ธ Pins to Avoid or Use with Caution

Some pins are reserved for critical functions like bootstrapping, JTAG debugging, USB communication, and flash memory operations. Misusing these pins may lead to boot failures, programming issues, USB conflicts, or disruptions in flash storage. Below is a list of pins to avoid or use with caution, categorized for clarity:

PINLabelReasonFunction
IO34GPIO34Cannot be used as output (no drive capability); only suitable for analog/digital input.๐Ÿช› Other
IO35GPIO35Cannot be used as output; only suitable for input.๐Ÿช› Other
IO14MTMS (GPIO14)Used for JTAG debugging (TMS); driving it as GPIO may interfere with JTAG or produce spurious signals at boot.๐Ÿช› Other
IO12MTDI (GPIO12)Keep LOW during boot (internal PD); pulling HIGH at reset selects 1.8V flash mode, causing flash brownout if 3.3V flash is used.๐Ÿ› ๏ธ Strapping
IO13MTCK (GPIO13)Used for JTAG debugging (TCK); avoid using as GPIO if JTAG is needed.๐Ÿช› Other
IO15MTDO (GPIO15)Keep HIGH during boot (internal PU); if LOW on reset, bootloader log is silenced and boot mode may change.๐Ÿ› ๏ธ Strapping
IO2GPIO2If driven HIGH on reset (while IO0 is LOW), selects an unsupported SDIO boot mode, causing boot failure.๐Ÿ› ๏ธ Strapping
IO0GPIO0Must be HIGH during boot for normal startup; if held LOW on reset, forces flash programming mode.๐Ÿ› ๏ธ Strapping
IO4GPIO4Sampled at reset for boot config; should not be driven at boot (affects boot mode timing).๐Ÿ› ๏ธ Strapping
IO16GPIO16Connected to internal PSRAM on PSRAM-enabled modules; not usable as GPIO on those modules.โšก Flash
IO17GPIO17Connected to internal PSRAM on PSRAM-enabled modules; not usable as GPIO on those modules.โšก Flash
IO5GPIO5Must be HIGH during boot; if pulled LOW at reset, alters SDIO slave timing and may prevent normal boot.๐Ÿ› ๏ธ Strapping

๐Ÿ“Œ Key Takeaway:

โœ… Pins Safe to use

For general GPIO usage, these are the safest and most flexible choices ๐Ÿš€:
  • ๐Ÿ”น SENSOR_VP
  • ๐Ÿ”น SENSOR_VN
  • ๐Ÿ”น IO32
  • ๐Ÿ”น IO33
  • ๐Ÿ”น IO25
  • ๐Ÿ”น IO26
  • ๐Ÿ”น IO27
  • ๐Ÿ”น SHD/SD2
  • ๐Ÿ”น SWP/SD3
  • ๐Ÿ”น SCS/CMD
  • ๐Ÿ”น SCK/CLK
  • ๐Ÿ”น SDO/SD0
  • ๐Ÿ”น SDI/SD1
  • ๐Ÿ”น IO18
  • ๐Ÿ”น IO19
  • ๐Ÿ”น NC
  • ๐Ÿ”น IO21
  • ๐Ÿ”น RXD0
  • ๐Ÿ”น TXD0
  • ๐Ÿ”น IO22
  • ๐Ÿ”น IO23

Unlike restricted pins, these GPIOs are not tied to essential system functions like ๐Ÿ› ๏ธ bootstrapping, ๐Ÿ”Œ USB communication, ๐Ÿ”— JTAG debugging, or โšก SPI flash memory, making them the best choices for custom applications and general use.

Why Are These Pins Safe?
  • Not involved in bootstrapping โ†’ These GPIOs do not affect the deviceโ€™s boot mode or system startup.
  • Not linked to flash memory or PSRAM โ†’ They wonโ€™t interfere with storage or memory access.
  • Not dedicated to USB or JTAG โ†’ They remain free for general use without affecting debugging or programming.
  • No special hardware connections โ†’ Unlike some pins that are internally wired to system functions, these remain freely assignable.

๐Ÿ—บ๏ธ ESP32-WROOM External Pins Mapping Functions

Below you can find the ESP32-WROOM pinout. This development board provides 40 digital IO pins, out of which 16 can be used as an external interrupt pins , 16 as analog input pins and 19 pins have Pulse-Width Modulation (PWM) .

PinFunctionESP PinInput/OutputDescription
1SENSOR_VPGPIO36inputADC1_CH0, RTC_GPIO0
2SENSOR_VNGPIO39inputADC1_CH3, RTC_GPIO3
3IO34GPIO34inputADC1_CH6, RTC_GPIO4
4IO35GPIO35inputADC1_CH7, RTC_GPIO5
5IO32GPIO32bidirectionalXTAL_32K_P (32.768 kHz crystal oscillator input), ADC1_CH4, TOUCH9, RTC_GPIO9
6IO33GPIO33bidirectionalXTAL_32K_N (32.768 kHz crystal oscillator output), ADC1_CH5, TOUCH8, RTC_GPIO8
7IO25GPIO25bidirectionalDAC_1, ADC2_CH8, RTC_GPIO6, EMAC_RXD0
8IO26GPIO26bidirectionalDAC_2, ADC2_CH9, RTC_GPIO7, EMAC_RXD1
9IO27GPIO27bidirectionalADC2_CH7, TOUCH7, RTC_GPIO17, EMAC_RX_DV
10IO14GPIO14bidirectionalADC2_CH6, TOUCH6, RTC_GPIO16, MTMS, HSPICLK, HS2_CLK, SD_CLK, EMAC_TXD2
11IO12GPIO12bidirectionalADC2_CH5, TOUCH5, RTC_GPIO15, MTDI, HSPIQ, HS2_DATA2, SD_DATA2, EMAC_TXD3
12GNDN/Apower groundGround connection
13IO13GPIO13bidirectionalADC2_CH4, TOUCH4, RTC_GPIO14, MTCK, HSPID, HS2_DATA3, SD_DATA3, EMAC_RX_ER
14SHD/SD2GPIO9bidirectionalSD_DATA2, SPIHD, HS1_DATA2, U1RXD
15SWP/SD3GPIO10bidirectionalSD_DATA3, SPIWP, HS1_DATA3, U1TXD
16SCS/CMDGPIO11bidirectionalSD_CMD, SPICS0, HS1_CMD, U1RTS
17SCK/CLKGPIO6bidirectionalSD_CLK, SPICLK, HS1_CLK, U1CTS
18SDO/SD0GPIO7bidirectionalSD_DATA0, SPIQ, HS1_DATA0, U2RTS
19SDI/SD1GPIO8bidirectionalSD_DATA1, SPID, HS1_DATA1, U2CTS
20IO15GPIO15bidirectionalADC2_CH3, TOUCH3, MTDO, HSPICS0, RTC_GPIO13, HS2_CMD, SD_CMD, EMAC_RXD3
21IO2GPIO2bidirectionalADC2_CH2, TOUCH2, RTC_GPIO12, HSPIWP, HS2_DATA0, SD_DATA0
22IO0GPIO0bidirectionalADC2_CH1, TOUCH1, RTC_GPIO11, CLK_OUT1, EMAC_TX_CLK
23IO4GPIO4bidirectionalADC2_CH0, TOUCH0, RTC_GPIO10, HSPIHD, HS2_DATA1, SD_DATA1, EMAC_TX_ER
24IO16GPIO16bidirectionalHS1_DATA4, U2RXD, EMAC_CLK_OUT
25IO17GPIO17bidirectionalHS1_DATA5, U2TXD, EMAC_CLK_OUT_180
26IO5GPIO5bidirectionalVSPICS0, HS1_DATA6, EMAC_RX_CLK
27IO18GPIO18bidirectionalVSPICLK, HS1_DATA7
28IO19GPIO19bidirectionalVSPIQ, U0CTS, EMAC_TXD0
29NCN/Anot connectedNo connection
30IO21GPIO21bidirectionalVSPIHD, EMAC_TX_EN
31RXD0GPIO3bidirectionalU0RXD, CLK_OUT2
32TXD0GPIO1bidirectionalU0TXD, CLK_OUT3, EMAC_RXD2
33IO22GPIO22bidirectionalVSPIWP, U0RTS, EMAC_TXD1
34IO23GPIO23bidirectionalVSPID, HS1_STROBE
35GNDN/Apower groundGround connection
Function - Pin Function
ESP Pin - Pin on ESP32
Input/Output - Input or Output Pin
Description - Pin Description

๐Ÿ—บ๏ธ ESP32-WROOM Pins Mapping Arduino IDE

Below you can find the ESP32-WROOM pinout. This development board provides 40 digital IO pins, out of which 16 can be used as an external interrupt pins , 16 as analog input pins and 19 pins have Pulse-Width Modulation (PWM) .

PinAnalogTouchPWMOther
0A11T1
1PWMTX
2A12T2PWMANT1
3PWMRX
4A10T0PWM
5PWMSS
12A15T5PWM
13A14T4PWM
14A16T6PWM
15A13T3PWM
18PWMSCK
19PWMMISO
21PWMSDA
22PWMSCL
23PWMMOSI
25A18PWMDAC1 ANT2
26A19PWMDAC2
27A17T7PWM
32A4T9PWM
33A5T8PWM
34A6
35A7
36A0
39A3
Analog - Analog input pins
Touch - Touch pins
Function - Function pins
RX / TX - Receive (RX) / Transmit (TX)
LED_BUILTIN - Built-in LED
PWM - Pulse-Width Modulation

๐Ÿ› ๏ธ Default Tools

Bootloader toolesptool_py
Uploader toolesptool_py
Network uploader toolesp_ota
Bootloader address0x1000
Flash modedio
Boot modedio
PSRAM type
Maximum upload size
1280 Kb
(1310720 B)
Maximum data size
320 Kb
(327680 B)

The ESP32-WROOM development board by default uses esptool_py uploader tool, esp_ota network uploader tool for Over-the-air (OTA) uploads and esptool_py bootloader tool. The bootloader starts at address "0x1000". Flash mode and boot mode for ESP32-WROOM development board by default is dio and dio respectively.