ESP32-WROOM Development Board

Code name: ESP32_WROOM_DA

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

About ESP32-WROOM

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.

Technical Specifications

๐Ÿ›ฐ๏ธ Connectivity

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

๐Ÿง  Microcontroller

Model esp32
Clock Speed 240 MHz
Flash Size 4MB
Architecture xtensa

โœจ Features

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

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.

โœ… Safe Pins 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

Why Are These Pins Safe?

  • Not involved in bootstrapping โ†’ No impact on device boot mode or system startup
  • Not linked to flash memory or PSRAM โ†’ Won't interfere with storage or memory access
  • Not dedicated to USB or JTAG โ†’ Free for general use without affecting debugging
  • No special hardware connections โ†’ Freely assignable without internal conflicts

โš ๏ธ 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.

Critical Pin Categories:

  • ๐Ÿ› ๏ธ Strapping Pins: Control boot behavior and flash voltage selection
  • ๐Ÿ”— JTAG Debugging Pins: Required for low-level debugging
  • ๐Ÿ”Œ USB Communication Pins: Used for USB Serial/JTAG communication
  • โšก Flash Memory & SPI Pins: Connected to SPI flash memory and PSRAM
  • ๐Ÿ“ก UART Serial Communication Pins: Used for debugging and firmware uploads
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

ESP32-WROOM Pin Mappings

This development board provides 40 digital IO pins, out of which 16 can be used as 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
I/O Input/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 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/Transmit
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
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.