ESP32-S3-WROOM-2

WROOM module · based on ESP32-S3 · Active

  • Xtensa LX7
  • 2× @ 240 MHz
  • Wi-Fi 4
  • BLE 5.x
  • 16 / 32 MB flash
  • 8 / 16 MB PSRAM
  • 33 GPIO
  • PCB antenna
Check price on AliExpress →

As an affiliate we may earn from qualifying purchases. Prices and availability are set by AliExpress.

Every figure here is checked against Espressif’s official datasheets. We’ve taken every care to keep it accurate — but datasheets are dense and mistakes happen, so if something looks off, please report it.

The ESP32-S3-WROOM-2 is a general-purpose Espressif module built on the ESP32-S3 dual-core Xtensa LX7 SoC clocked up to 240 MHz. It pairs 2.4 GHz Wi-Fi 4 and Bluetooth LE with up to 32 MB flash and up to 16 MB PSRAM, routes the radio to a PCB antenna, and breaks out 33 GPIO; the module measures 18 × 25.5 × 3.1 mm.

PSRAM together with the SoC's vector (AI) instructions makes it a strong fit for camera, audio and on-device ML projects. Secure boot and flash encryption are available for production security. Espressif lists target uses including Smart Home, Smart Agriculture, Industrial Automation, POS Machines and Health Care.

Colour-coded by function · safe · ! use with care · reserved (flash/USB). Generated from the datasheet — not an official Espressif figure.
ESP32-S3-WROOM-2 pinout diagram — pins colour-coded by function with safe and use-with-care badges
#NameTypeFunctions
1GNDP Ground
23V3P Power supply
3ENI Chip enable
4IO4I/O/T RTC_GPIO4, GPIO4, TOUCH4, ADC1_CH3
5IO5I/O/T RTC_GPIO5, GPIO5, TOUCH5, ADC1_CH4
6IO6I/O/T RTC_GPIO6, GPIO6, TOUCH6, ADC1_CH5
7IO7I/O/T RTC_GPIO7, GPIO7, TOUCH7, ADC1_CH6
8IO15I/O/T RTC_GPIO15, GPIO15, U0RTS, ADC2_CH4, XTAL_32K_P
9IO16I/O/T RTC_GPIO16, GPIO16, U0CTS, ADC2_CH5, XTAL_32K_N
10IO17I/O/T RTC_GPIO17, GPIO17, U1TXD, ADC2_CH6
11IO18I/O/T RTC_GPIO18, GPIO18, U1RXD, ADC2_CH7, CLK_OUT3
12IO8I/O/T RTC_GPIO8, GPIO8, TOUCH8, ADC1_CH7, SUBSPICS1
13IO19I/O/T RTC_GPIO19, GPIO19, U1RTS, ADC2_CH8, CLK_OUT2, USB_D-
14IO20I/O/T RTC_GPIO20, GPIO20, U1CTS, ADC2_CH9, CLK_OUT1, USB_D+
15IO3I/O/T RTC_GPIO3, GPIO3, TOUCH3, ADC1_CH2
16IO46I/O/T GPIO46
17IO9I/O/T RTC_GPIO9, GPIO9, TOUCH9, ADC1_CH8, FSPIHD, SUBSPIHD
18IO10I/O/T RTC_GPIO10, GPIO10, TOUCH10, ADC1_CH9, FSPICS0, FSPIIO4, SUBSPICS0
19IO11I/O/T RTC_GPIO11, GPIO11, TOUCH11, ADC2_CH0, FSPID, FSPIIO5, SUBSPID
20IO12I/O/T RTC_GPIO12, GPIO12, TOUCH12, ADC2_CH1, FSPICLK, FSPIIO6, SUBSPICLK
21IO13I/O/T RTC_GPIO13, GPIO13, TOUCH13, ADC2_CH2, FSPIQ, FSPIIO7, SUBSPIQ
22IO14I/O/T RTC_GPIO14, GPIO14, TOUCH14, ADC2_CH3, FSPIWP, FSPIDQS, SUBSPIWP
23IO21I/O/T RTC_GPIO21, GPIO21
24IO47I/O/T SPICLK_P_DIFF, GPIO47, SUBSPICLK_P_DIFF
25IO48I/O/T SPICLK_N_DIFF, GPIO48, SUBSPICLK_N_DIFF
26IO45I/O/T GPIO45
27IO0I/O/T RTC_GPIO0, GPIO0
28NC- NC
29NC- NC
30NC- NC
31IO38I/O/T GPIO38, FSPIWP, SUBSPIWP
32IO39I/O/T MTCK, GPIO39, CLK_OUT3, SUBSPICS1
33IO40I/O/T MTDO, GPIO40, CLK_OUT2
34IO41I/O/T MTDI, GPIO41, CLK_OUT1
35IO42I/O/T MTMS, GPIO42
36RXD0I/O/T U0RXD, GPIO44, CLK_OUT2
37TXD0I/O/T U0TXD, GPIO43, CLK_OUT1
38IO2I/O/T RTC_GPIO2, GPIO2, TOUCH2, ADC1_CH1
39IO1I/O/T RTC_GPIO1, GPIO1, TOUCH1, ADC1_CH0
40GNDP Ground
41EPADP Ground
Official datasheet pin-layout figure
ESP32-S3-WROOM-2 datasheet pin layout (top view)

Find a pin by function

Pick a capability to see which GPIOs provide it on the ESP32-S3.

Freely usable, no special role.

GPIO1general-purpose
GPIO2general-purpose
GPIO4general-purpose
GPIO5general-purpose
GPIO6general-purpose
GPIO7general-purpose
GPIO8general-purpose
GPIO9general-purpose
GPIO10general-purpose
GPIO11general-purpose! ADC2 — unusable while Wi-Fi is on
GPIO12general-purpose! ADC2 — unusable while Wi-Fi is on
GPIO13general-purpose! ADC2 — unusable while Wi-Fi is on
GPIO14general-purpose! ADC2 — unusable while Wi-Fi is on
GPIO15general-purpose! ADC2 — unusable while Wi-Fi is on
GPIO16general-purpose! ADC2 — unusable while Wi-Fi is on
GPIO17general-purpose! ADC2 — unusable while Wi-Fi is on
GPIO18general-purpose! ADC2 — unusable while Wi-Fi is on
GPIO21general-purpose! Wi-Fi interference reported on some modules
GPIO38general-purpose
GPIO47general-purpose! 1.8 V (not 3.3 V) on the "V" SKUs
GPIO48general-purpose! 1.8 V (not 3.3 V) on the "V" SKUs

! Usable for general IO, but one function has a condition (e.g. ADC2 can’t be read while Wi-Fi is on) — see the note.

UART, I²C, SPI (master), I²S, PWM/LEDC and most digital peripherals route through the GPIO matrix — assign them to any pin from “Safe GPIO”. The categories above are the pins tied to a fixed function (analog, USB, crystal…) or that need care.

Strapping pins

⚑ flag an error

GPIOs sampled at reset — avoid driving these at power-up.

PinDefaultBitFunction
GPIO0pull-up1boot_mode
GPIO3floatingjtag
GPIO45pull-down0flash_voltage
GPIO46pull-down0boot

GPIO pin warnings

⚑ flag an error

On the ESP32-S3, almost any peripheral can be routed to almost any GPIO through the IO MUX, so most pins are free to use. These are the exceptions — pins with a fixed role or a boot-time behaviour to design around.

PinWhy it needs care
GPIO0strapping pin (affects boot)
GPIO3strapping pin (affects boot)
GPIO19native USB D±
GPIO20native USB D±
GPIO39JTAG
GPIO40JTAG
GPIO41JTAG
GPIO42JTAG
GPIO43UART0 console (boot log)
GPIO44UART0 console (boot log)
GPIO45strapping pin (affects boot)
GPIO46strapping pin (affects boot)

⚠ GPIO35, GPIO36 and GPIO37 are dedicated to the in-package octal PSRAM on this module and are not broken out as usable GPIO.

  • The ADC2 channels share hardware with the Wi-Fi radio, so ADC2 readings are unavailable while Wi-Fi is active — but those GPIOs are still free for any digital function. Use the ADC1 channels for analog input alongside Wi-Fi.
  • Power-up glitches: GPIO1–GPIO18 emit a brief (~60 µs) low pulse at power-up, and GPIO18/19/20 also glitch high. Don’t drive glitch-sensitive loads (relay coils, MOSFET gates) directly from these without a pull resistor, and prefer gpio_config() over gpio_reset_pin() to set the output state cleanly.
  • GPIO21 has field reports of Wi-Fi interference on some modules. If you see Wi-Fi instability with a peripheral on GPIO21, try lowering Wi-Fi TX power to ~11–13 dBm or moving the peripheral elsewhere.
  • GPIO47 and GPIO48 work at 1.8 V — not 3.3 V — on the "V" SKUs (e.g. N8R8V, N16R16V) where VDD_SPI is set to 1.8 V, since VDD_SPI also supplies these two pins. Level-shift any 3.3 V logic on them.
  • GPIO33 and GPIO34 are not broken out on this module, and on octal-PSRAM/flash SKUs they carry internal PSRAM lines — don’t assign peripherals to them in software or probe them in a pin scan.

Compute & memory

⚑ flag an error
CPUXtensa LX7, 2-core
Max clock240 MHz
SRAM512 KB
ROM384 KB
Flash options16 / 32 MB
PSRAM8 / 16 MB (octal)
Co-processorULP-RISC-V
Wi-FiWi-Fi 4
Wi-Fi bands2.4GHz
BluetoothBLE 5.x
802.15.4 (Thread/Zigbee)No
AntennaPCB

Peripherals & I/O

⚑ flag an error
Usable GPIO33
ADC20× 12-bit
USBUSB-OTG
UART / SPI / I²C / I²S3 / 2 / 2 / 2
TWAI (CAN)Yes
SD/MMCYes
Ethernet MACNo
Touch14
Operating voltage3.0-3.6 V
Deep sleep7 µA
Dimensions18 × 25.5 × 3.1 mm
Pin count41
Temp range-40 to 65 °C
MountingSMD castellated
LifecycleActive
Secure bootYes
Flash encryptionYes
CryptoAES, SHA, RSA, HMAC, RNG
Digital signatureYes
TRNGYes

Ordering codes

⚑ flag an error

The orderable part numbers and what each ships with — decoded from the suffix. Confirm against the latest datasheet before ordering.

Part numberFlashPSRAMTemp
ESP32-S3-WROOM-2-N32R16V 32 MB · 1.8V 16 MB (octal) −40 to 85 °C
ESP32-S3-WROOM-2-N16R8V 16 MB · 1.8V 8 MB (octal) −40 to 85 °C

Schematics

ESP32-S3-WROOM-2 module reference-design schematic
Module reference design
ESP32-S3-WROOM-2 peripheral / application schematic showing how to wire the module
Peripheral / application circuit — how to wire it up

Mechanical & CAD

ESP32-S3-WROOM-2 physical dimensions drawing
Physical dimensions
ESP32-S3-WROOM-2 recommended PCB land pattern
Recommended PCB land pattern

Getting started

Frameworks: Arduino-ESP32 core — fully supported · ESP-IDF 4.4+ (Espressif's official SDK) · MicroPython · Matter.

ESP-IDF target: idf.py set-target esp32s3.

The SoC has native USB-OTG, so it can flash over USB and act as a USB device or host.

  • Give the module a 3.3 V supply rated for at least 500 mA — RF transmit bursts pull well above the average current.
  • EN is only weakly pulled high internally (~2 MΩ), which often isn’t reliable on its own. Add an external 100 kΩ pull-up, and for clean resets — especially with large bulk capacitance on the 3.3 V rail — use a reset-supervisor IC (e.g. MAX809) rather than just an RC network.
  • Routing SPI (or most peripherals) through the GPIO matrix caps the SPI clock at 80 MHz; to run faster, use the dedicated IO_MUX pins.

Open-source projects using this module

Public GitHub projects whose KiCad design files reference the ESP32-S3-WROOM-2.

+ Add your project

Frequently asked questions

Does the ESP32-S3-WROOM-2 have Wi-Fi and Bluetooth?

It provides 2.4 GHz Wi-Fi 4 and Bluetooth LE.

How much memory does the ESP32-S3-WROOM-2 have?

It comes with 16, 32 MB flash options, up to 16 MB of PSRAM, and the ESP32-S3 has 512 KB of on-chip SRAM.

How many GPIO pins does the ESP32-S3-WROOM-2 have?

The module breaks out 33 GPIO, with up to 20 12-bit ADC channels. See the full pinout above.

Can I use the ESP32-S3-WROOM-2 with the Arduino IDE?

Yes — install the Arduino-ESP32 core and pick an ESP32-S3-based board. You can also use ESP-IDF 4.4 or MicroPython.

How do I flash the ESP32-S3-WROOM-2?

The SoC has native USB-OTG, so it can flash over USB and act as a USB device or host.

Is the ESP32-S3-WROOM-2 5 V tolerant?

No. It runs at 3.0-3.6 V and its GPIO are not 5 V tolerant — level-shift any 5 V signals.

Can I use an external antenna with the ESP32-S3-WROOM-2?

Most Espressif modules are also offered in a "-U" / "-1U" variant that swaps the on-board PCB antenna for a U.FL/IPEX connector for an external antenna — otherwise identical. Check this part's datasheet for the exact variant name.

Further reading