Home / Pinout / ESP32-S3
ESP32-S3 pinout & GPIO reference
The default choice for new designs. Native USB means no bridge chip — GPIO19/20 can flash and debug directly. Vector extensions make small neural networks viable. Watch out: GPIO 26–32 are consumed by flash/PSRAM.
Data verified:2026-10-20 · Cross-checked against Espressif datasheets and the ESP-IDF programming guide. Always confirm with the official document before finalizing a design.
Official documentation:link 1
Key specifications
| Core | Xtensa LX7 dual-core (+ ULP co-processor) |
|---|---|
| Clock | Up to 240 MHz |
| SRAM | 512 KB SRAM + 16 KB RTC |
| Wireless | Wi-Fi 802.11 b/g/n · Bluetooth 5 (LE) |
| USB | Native USB 1.1 OTG + USB Serial/JTAG (GPIO19/20) |
| ADC | 2 × 12-bit SAR, 20 channels total |
| DAC | None |
| Touch | 14 capacitive touch channels |
| GPIO | 0–48 (~30+ actually usable) |
| Highlights | Vector extensions (AI/ML) · LCD/Camera interface · Octal PSRAM |
Traps that cost you a board respin
- GPIO 26–32 are used by internal flash / PSRAM and cannot be GPIO.
- GPIO 35–37 are occupied on Octal PSRAM/flash modules (e.g. WROOM-2); available on Quad flash modules.
- GPIO 19/20 are native USB D-/D+ — using them as GPIO kills USB download.
- Strapping pins are GPIO 0 / 3 / 45 / 46; the level of GPIO45/46 at power-up selects the boot mode.
- There is no DAC. For analogue output use PWM + RC filter or an external DAC.
Full GPIO table
| GPIO | Status | Alternate functions |
|---|---|---|
GPIO0 | Usable | Strapping (boot mode) |
GPIO1 | Usable | ADC1_CH0TOUCH1 |
GPIO2 | Usable | ADC1_CH1TOUCH2 |
GPIO3 | Usable | Strapping (JTAG select)ADC1_CH2TOUCH3 |
GPIO4 | Usable | ADC1_CH3TOUCH4 |
GPIO5 | Usable | ADC1_CH4TOUCH5 |
GPIO6 | Usable | ADC1_CH5TOUCH6 |
GPIO7 | Usable | ADC1_CH6TOUCH7 |
GPIO8 | Usable | ADC1_CH7TOUCH8 |
GPIO9 | Usable | ADC1_CH8TOUCH9 |
GPIO10 | Usable | ADC1_CH9TOUCH10 |
GPIO11 | Usable | ADC2_CH0TOUCH11 |
GPIO12 | Usable | ADC2_CH1TOUCH12 |
GPIO13 | Usable | ADC2_CH2TOUCH13 |
GPIO14 | Usable | ADC2_CH3TOUCH14 |
GPIO15 | Usable | ADC2_CH4 |
GPIO16 | Usable | ADC2_CH5 |
GPIO17 | Usable | ADC2_CH6 |
GPIO18 | Usable | ADC2_CH7 |
GPIO19 | Usable | USB D− (USB Serial/JTAG) |
GPIO20 | Usable | USB D+ (USB Serial/JTAG) |
GPIO21 | Usable | General GPIO |
GPIO26 | Unusable | Internal flash / PSRAM |
GPIO27 | Unusable | Internal flash / PSRAM |
GPIO28 | Unusable | Internal flash / PSRAM |
GPIO29 | Unusable | Internal flash / PSRAM |
GPIO30 | Unusable | Internal flash / PSRAM |
GPIO31 | Unusable | Internal flash / PSRAM |
GPIO32 | Unusable | Internal flash / PSRAM |
GPIO33 | Usable | Octal PSRAM/flash (occupied on some modules) |
GPIO34 | Usable | Octal PSRAM/flash (occupied on some modules) |
GPIO35 | Usable | Octal PSRAM/flash (occupied on some modules) |
GPIO36 | Usable | Octal PSRAM/flash (occupied on some modules) |
GPIO37 | Usable | Octal PSRAM/flash (occupied on some modules) |
GPIO38 | Usable | General GPIO |
GPIO39 | Usable | General GPIO |
GPIO40 | Usable | General GPIO |
GPIO41 | Usable | General GPIO |
GPIO42 | Usable | General GPIO |
GPIO43 | Usable | UART0 TX (default console) |
GPIO44 | Usable | UART0 RX (default console) |
GPIO45 | Usable | Strapping |
GPIO46 | Usable | Strapping |
GPIO47 | Usable | General GPIO |
GPIO48 | Usable | General GPIO |
Individual GPIO pages
ESP32-S3 GPIO19Details, cautions and sample codeESP32-S3 GPIO20Details, cautions and sample codeESP32-S3 GPIO45Details, cautions and sample code
Related
ESP32 PinoutClassic · ESP32-D0WD / WROOM / WROVERESP32-C3 PinoutRISC-V single-core · low cost · native USBESP32-S2 PinoutXtensa LX7 single-core · native USB OTG · no BluetoothESP32-C6 PinoutRISC-V dual-core · Wi-Fi 6 · Thread / Zigbee / MatterESP32-H2 PinoutRISC-V 96 MHz · no Wi-Fi · low-power Thread / Zigbee nodeESP32-P4 PinoutRISC-V dual-core 400 MHz · 55 GPIOs · MIPI-CSI/DSI · no wireless
Chip comparisonESP32 / S2 / S3 / C3 / C6 / H2 / P4
Peripheral guidesI²C · SPI · UART · RMT · LEDC · deep sleep