The ESP32-S3-WROOM-1 exposes 45 physical GPIO pads, but only 33 are safely usable for general I/O. The rest are consumed by internal Octal SPI flash/PSRAM routing, native USB, and boot-strapping requirements. Below is the direct reference you need to wire your next project without bricking the silicon.

The Complete ESP32-S3-WROOM-1 GPIO Reference Table

This table reflects the Espressif Silicon Standard (the raw WROOM-1 module pads). If you are using a third-party development board, cross-reference this with the DevKit mapping section below. All pins operate at 3.3V logic; the ESP32-S3 is strictly not 5V tolerant.

GPIO Primary Function Secondary / Muxed Functions Boot State / Notes
0 Strapping Pin GPIO, SPI Pull HIGH for SPI Fast Boot, LOW for ROM Download.
1, 2 General I/O I2C (Default SDA/SCL), ADC1_CH1/CH2 Safe for general use. Default Wire library pins.
3, 45, 46 Strapping Pins GPIO Determines boot mode and log output. Avoid external pull-downs.
4 General I/O ADC1_CH3, Touch4 Safe for general use.
5 - 10 General I/O ADC1, Touch, SPI Safe for general use.
11, 12, 13 Default SPI MOSI (11), SCK (12), MISO (13) Default hardware SPI bus pins.
14 - 18 General I/O ADC2, Touch, SPI ADC2 conflicts with WiFi. Use ADC1 if WiFi is active.
19, 20 Native USB USB D- (19), USB D+ (20) Routed to internal USB-Serial-JTAG and USB OTG. Do not use as standard GPIO.
21 General I/O ADC2_CH8 Safe for general use.
26 - 32 General I/O SPI, I2S, Camera Safe for general use. Often used for LCD/Camera interfaces.
33 - 34 General I/O I2S, Camera Safe for general use.
35 - 42 Internal Octal SPI Flash / PSRAM interface UNUSABLE. Internally routed on N8R8/N16R8 variants.
43, 44 Default UART UART0 TX (43), RX (44) Default hardware serial pins.
47, 48 General I/O PWM, Neopixel Safe. GPIO48 is often hardwired to the onboard WS2812 LED on DevKits.

Rows People Get Wrong: Fatal Pinout Mistakes

When debugging ESP32-S3 boards on the bench, 90% of 'dead' modules are the result of ignoring three specific pinout traps. Here is what each means in practice and how to avoid them.

WARNING: The Octal SPI Trap (GPIO 35-42)
If you buy an ESP32-S3-WROOM-1-N8R8 or N16R8 (which includes PSRAM), GPIOs 35 through 42 are physically wired inside the metal RF shield to the Octal SPI flash and PSRAM chips. If you attempt to configure these as standard outputs or inputs in your code, the chip will experience bus contention, lock up, or fail to boot. Never route these pins to external headers on a custom PCB.

The 5V Tolerance Myth: Unlike the original ESP32 or some STM32 chips, the ESP32-S3 silicon operates strictly at 3.3V. Driving a 5V logic signal (like from a standard Arduino Uno or a 5V I2C sensor) into any GPIO will forward-bias the internal ESD protection diode to VDD. This won't just cause a read error; it will permanently short the input buffer, causing a brownout loop on every subsequent boot. Always use a bidirectional logic level shifter (like the BSS138 or TXS0108E) for 5V peripherals.

Strapping Pin Conflicts (GPIO 0, 3, 45, 46): These pins are sampled by the ROM bootloader the millisecond the chip exits reset. If you wire a relay, a motor driver, or a strong external pull-down resistor to GPIO0, the chip will interpret it as a request to enter ROM Download mode instead of executing your firmware. If your board seems 'bricked' and only outputs garbage on the serial monitor at 74880 baud, check your strapping pin wiring.

Silicon Standard vs. Board Manufacturer Variants

The table above represents the Espressif Silicon Standard. However, if you are using a development board, the manufacturer has remapped these module pads to the physical headers. Assuming the pin numbers printed on your dev board match the raw silicon is a common mistake.

Feature Espressif ESP32-S3-DevKitC-1 YD-ESP32-S3 (Generic Amazon/AliExpress) Seeed Studio XIAO ESP32S3
Header Layout Two 22-pin rows (Standard width) Two 22-pin rows (Often mislabeled) Two 7-pin rows (Compact)
Onboard Neopixel Pin GPIO 38 GPIO 48 GPIO 21 (Active LOW)
Native USB Routing Routed to dedicated USB-C port Routed to USB-C, but often lacks secondary UART port Routed to USB-C (No secondary UART)
5V Pin Source Diode-protected from USB Direct from USB (High risk of backfeed) Regulated, but limited to 500mA total

For authoritative hardware specifications and module dimensions, always refer to the official Espressif ESP32-S3-WROOM-1 Datasheet. For Arduino core pin definitions and library mappings, consult the Espressif Arduino Core Documentation.

Decision Path: Which GPIO Should You Use?

Stop guessing which pins to assign in your setup() function. Use this decision tree to terminate your peripheral wiring in the optimal, hardware-accelerated GPIO picks.

If your peripheral is... And your constraint is... Then pick these exact GPIOs
Hardware UART (GPS, RS485) Need default Serial1 without remapping GPIO 43 (TX) and GPIO 44 (RX)
I2C (OLED, BME280) Need default Wire library support GPIO 1 (SDA) and GPIO 2 (SCL)
Hardware SPI (SD Card, TFT) Need maximum clock speed (80MHz) 11 (MOSI), 13 (MISO), 12 (SCK), 10 (CS)
Analog Sensor (Potentiometer, NTC) WiFi is active in your firmware GPIO 4 through 10 (ADC1 only. ADC2 drops out when WiFi radio transmits).
USB Host / OTG Connecting a USB keyboard or thumb drive GPIO 19 (D-) and GPIO 20 (D+) via a USB-C or Type-A breakout.
WS2812B LED Strip Using FastLED or Adafruit NeoPixel GPIO 48 (Frees up the default SPI/I2C pins for other sensors).

Safe Interpretation When Silkscreen Markings Fade

Cheap clone boards from overseas marketplaces frequently suffer from poor quality control. The white silkscreen text next to the header pins often smears, fades, or is printed entirely wrong (e.g., labeling GPIO38 as GPIO8). If you are debugging a board with missing or suspect markings, do not trust the PCB.

The Continuity Trace Method:
1. Power down the board completely and disconnect the USB cable.
2. Set your multimeter to continuity mode (beep).
3. Place one probe on the known physical pad of the WROOM-1 module (use the datasheet pad map as your source of truth).
4. Touch the other probe to the header pins until you get a beep.
5. Label the header pin with a fine-tip paint pen. Never trust the silkscreen on unverified YD-ESP32-S3 clones.

By anchoring your wiring decisions to the silicon standard rather than the dev board's silkscreen, you eliminate the most common hardware-level bugs in ESP32-S3 projects. Stick to the decision path above, respect the 3.3V logic limit, and keep your Octal SPI pins isolated.