The ESP32-S3 is Espressif’s dual-core Xtensa LX7 powerhouse, featuring native USB OTG, AI vector instructions, and 45 programmable GPIOs. However, the ESP32-S3 pinout is a frequent source of bench frustration because the physical pins exposed on your desk depend entirely on which carrier board or raw module you are holding. A pin labeled 'GPIO4' on an official DevKitC-1 might be physically routed to a different header position on a SuperMini clone, and the raw WROOM-1 module hides several pins internally for SPI flash.
This reference cuts through the silkscreen confusion. Below is the master pinout table, followed by hardware standard variants, the specific traps that brick boards, and a decision path to select the exact module for your next build.
The Master ESP32-S3 Pinout Reference
The table below maps the internal silicon GPIOs to their default functions and physical availability on the most common carrier boards. Use this as your primary bench reference when wiring sensors, displays, or motor drivers.
| GPIO | Default / Primary Function | DevKitC-1 Label | SuperMini / Clone Label | Practical Notes & Limits |
|---|---|---|---|---|
| 0 | Strapping Pin / Boot | 0 | 0 | Pull LOW to enter bootloader. Avoid external pull-ups if using as standard input. |
| 1, 2 | General Purpose I/O | 1, 2 | 1, 2 | Safe for standard digital I/O, PWM, and interrupts. |
| 3 | Strapping Pin / JTAG | 3 | 3 | Determines JTAG signal source (USB vs. GPIO). Defaults to USB. |
| 4 - 18 | General Purpose I/O | 4 - 18 | 4 - 10 (Partial) | Standard I/O. GPIO11-14 are ideal for SPI displays. GPIO15-18 good for I2C. |
| 19, 20 | Native USB (D-, D+) | 19, 20 | 19, 20 | Native USB OTG. Do not use for standard GPIO if you need USB serial/HID. |
| 21 - 48 | General Purpose I/O | 21 - 48 | 21, 35-48 (Partial) | Standard I/O. GPIO35-37 are reserved if Octal SPI PSRAM is populated. |
| 26 - 32 | SPI Flash (Internal) | Not Exposed | Not Exposed | Forbidden: Connected internally to the SPI flash chip on WROOM-1 modules. |
| 33 - 37 | SPI PSRAM (Internal) | Not Exposed | Not Exposed | Forbidden: Connected to PSRAM on N8R8 (8MB RAM) variants. |
| 38 - 42 | SPI / General I/O | 38 - 42 | 38 - 42 | Often used for secondary SPI buses (e.g., SD cards, external flash). |
| 43, 44 | Default UART0 (TX, RX) | 43, 44 | 43, 44 | Default serial debug pins. Remappable in software, but hardwired on most boards. |
| 45, 46 | Strapping Pins | 45, 46 | 45, 46 | GPIO45 sets VDD_SPI voltage. GPIO46 selects boot log printout. Handle with care. |
Hardware Standard Variants: DevKit vs. SuperMini vs. Module
While mains AC wiring follows strict regional codes like NEC (US) or IEC 60446 (EU) for color coding and grounding, embedded DC wiring to microcontrollers lacks a universal legal standard. Instead, the ESP32-S3 ecosystem is divided by hardware form-factor standards and USB interface standards. Knowing which standard your board follows dictates how you interpret the silkscreen.
1. The Espressif DevKitC-1 Standard (The Baseline)
The official ESP32-S3-DevKitC-1 sets the baseline. It breaks out almost all usable GPIOs to dual 0.1-inch headers. It uses a CP2102 or CH340 bridge IC for the primary USB-C port (UART), and breaks out GPIO19/20 to a secondary micro-USB or USB-C port for Native USB. If your board has two USB ports, it follows this standard.
2. The SuperMini / Zero Standard (Space-Constrained)
Boards like the ESP32-S3 SuperMini or 'Zero' clones shrink the footprint to match the Raspberry Pi Pico or Seeed XIAO. These boards route the Native USB (GPIO19/20) directly to the single USB-C port, meaning the primary serial console shares the native USB interface. They often omit the 5V VIN pin, exposing only 3.3V and GND, which changes how you wire external peripherals.
3. The Raw WROOM-1 Module Standard (Production)
If you are soldering directly to an ESP32-S3-WROOM-1 module for a custom PCB, the pinout is entirely different. The module has castellated edges, but GPIOs 26-32 (and 33-37 on N8R8 variants) are not broken out to the pads; they are consumed internally by the flash and PSRAM chips sitting under the metal RF shield.
Rows People Get Wrong: Strapping Pins and Hidden Traps
The ESP32-S3 datasheet is unforgiving if you misuse specific pins during boot. Here are the most common bench failures and how to avoid them.
- The GPIO45 VDD_SPI Trap: GPIO45 is a strapping pin that controls the internal VDD_SPI voltage (which powers the SPI flash). If GPIO45 is pulled HIGH during boot, VDD_SPI switches from 3.3V to 2.8V. If you have a sensor wired to the 3.3V pin that relies on the internal regulator, or if you accidentally use GPIO45 as a standard output and drive it high during reset, the flash chip will brownout and the board will fail to boot. Fix: Never use GPIO45 for external loads; leave it floating or pulled low.
- The SPI Flash Pin Illusion (GPIO26-32): Many generic pinout diagrams found online show GPIO26 through 32 as available I/O. On any board using a WROOM-1 or WROOM-2 module, these pins are physically wired to the onboard SPI flash. Attempting to use them for PWM or I2C will cause the ESP32 to crash or corrupt its own firmware. Fix: Cross these out on your schematic immediately.
- 5V Tolerance Myth: Unlike the original ESP32 (which had a few 5V-tolerant pins by accident of silicon manufacturing), the ESP32-S3 is strictly a 3.3V device. Feeding 5V into any GPIO, including the RX/TX UART pins, will permanently destroy the input buffer. Fix: Always use a logic level shifter (like a TXS0108E or BSS138 MOSFET circuit) when interfacing with 5V Arduino UNOs or 5V I2C displays.
- Octal PSRAM Collision (GPIO35-37): If you buy an 'N8R8' variant (8MB Flash, 8MB PSRAM), the PSRAM uses an Octal SPI interface that consumes GPIO33, 34, 35, 36, and 37. If you buy an 'N8' variant (8MB Flash, 0MB PSRAM), GPIO35-37 are free to use. Fix: Check the exact part number suffix on the metal can before wiring these pins.
Recovering Faded Silkscreen: Identifying Unmarked Pins
Cheap clone boards from overseas marketplaces frequently suffer from poor silkscreen printing that rubs off after a few weeks on the bench, or they ship with blank headers. If your board markings are faded or missing, do not guess. Use this systematic recovery path to safely map the headers without frying the silicon.
- Establish the Ground Reference: Set your multimeter to continuity mode. Place the black probe on the metal outer shell of the USB-C port. Probe the header pins with the red probe. Any pin that beeps (reads < 1 ohm) is a GND pin. Mark them with a silver paint pen.
- Identify the Power Rails: Power the board via USB. Set the multimeter to DC Voltage. Place the black probe on a known GND pin. Probe the remaining pins. Pins reading 4.7V - 5.2V are your 5V (VIN) pins. Pins reading 3.2V - 3.4V are your 3.3V pins. Mark them.
- Locate Native USB (GPIO19/20): Unplug power. Look at the PCB traces leading directly from the center pins of the USB-C connector. On boards with native USB routing, two traces will run from the USB data lines through 22-ohm or 33-ohm series resistors directly to the header. These are GPIO19 (D-) and GPIO20 (D+).
- Find the Default UART (GPIO43/44): If the board has a secondary USB port or a CP2102/CH340 chip, trace the TX/RX pins from that bridge IC to the headers. These will be GPIO43 (RX) and GPIO44 (TX).
Decision Tree: Which S3 Board and Pin Config to Choose
Stop guessing which module to order. Use this decision matrix to terminate your selection process with a concrete part number based on your project's physical and electrical requirements.
| Project Requirement | Required Feature | Concrete Board / Module Pick | Exact Part Number to Order |
|---|---|---|---|
| USB HID (Keyboard/Mouse) or Native USB MIDI | Native USB OTG broken out to primary USB-C port | ESP32-S3 SuperMini or YD-ESP32-S3 | YD-ESP32-S3 (VCC) or generic 'ESP32-S3 SuperMini' |
| Machine Learning / Audio Processing (Requires high RAM) | Octal SPI PSRAM (8MB) and exposed GPIO for I2S mics | Official DevKitC-1 with N8R8 module | ESP32-S3-DevKitC-1-N8R8 |
| Battery-Powered IoT Sensor (Deep Sleep critical) | Minimal quiescent current, no onboard bridge IC drawing power | Raw WROOM-1 module on custom PCB (or SuperMini with bridge disabled) | ESP32-S3-WROOM-1-N8 |
| Camera Integration (OV2640 / OV5640) | High-speed 8-bit parallel interface pins broken out cleanly | ESP32-S3-EYE or Freenove ESP32-S3 Cam | Freenove ESP32-S3 WROOM (with camera ribbon) |
The Default Recommendation
If you are prototyping a general-purpose project and do not have a strict form-factor constraint, buy the official ESP32-S3-DevKitC-1-N8R8. It provides the most reliable silkscreen, exposes the maximum number of usable GPIOs, includes both the UART bridge and Native USB ports, and the N8R8 variant ensures you will never hit a memory wall when adding Wi-Fi buffers, TLS certificates, or small ML models later in development. For production, transition to the raw ESP32-S3-WROOM-1-N8R8 module and route only the pins you need, strictly avoiding GPIO26-37.






