Home / Pinout / ESP32-S2
ESP32-S2 pinout & GPIO reference
A single-core chip with native USB OTG and no Bluetooth — ideal for USB HID keyboards, USB cameras, or pure Wi-Fi connected devices. 43 GPIOs sound generous, but GPIO 26–32 are consumed by flash/PSRAM and GPIO46 is fixed pull-down and input-only.
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 · link 2
Verify against official docs:Exact SRAM size (varies by part number and revision) · Which pins are actually broken out on each module (WROOM / MINI / devkit)
Key specifications
| Core | Xtensa LX7 single-core (7-stage pipeline) |
|---|---|
| Clock | Up to 240 MHz |
| SRAM | 320 KB SRAM + 16 KB RTC SRAM (verify against official docs) |
| Wireless | Wi-Fi 802.11 b/g/n · no Bluetooth |
| USB | Native USB 1.1 OTG (GPIO19/20, full-speed) |
| ADC | 2 × 13-bit SAR, 20 channels (GPIO1–20) |
| DAC | 2 × 8-bit (GPIO17 / GPIO18) |
| Touch | 14 capacitive touch channels (GPIO1–14) |
| GPIO | 43 physical GPIOs: 0–21 and 26–46 (22–25 do not exist) |
| Strapping | GPIO0 / GPIO45 / GPIO46 |
Traps that cost you a board respin
- GPIO 26–32 serve SPI flash / PSRAM and are not recommended for other uses.
- GPIO 39–42 are the built-in JTAG pins (MTCK / MTDO / MTDI / MTMS) — normally reserved for debugging.
- GPIO 19/20 are USB D−/D+ — not usable as ordinary IO once USB is in use.
- GPIO 0 together with GPIO 46 selects the boot mode; GPIO45 selects the VDD_SPI voltage source (1.8 V / 3.3 V).
- GPIO46 is fixed pull-down and input-only — it cannot drive anything.
- Strapping pins are GPIO0 / GPIO45 / GPIO46; their levels are latched at power-up, after which they become regular IO.
Full GPIO table
| GPIO | Status | Alternate functions |
|---|---|---|
GPIO0 | Usable | Strapping (boot mode)RTC_GPIO0 |
GPIO1 | Usable | ADC1_CH0TOUCH1 |
GPIO2 | Usable | ADC1_CH1TOUCH2 |
GPIO3 | Usable | 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 | DAC1ADC2_CH6 |
GPIO18 | Usable | DAC2ADC2_CH7 |
GPIO19 | Usable | USB D−ADC2_CH8 |
GPIO20 | Usable | USB D+ADC2_CH9 |
GPIO21 | Usable | General GPIO |
GPIO26 | Unusable | SPI0/1 · flash / PSRAM |
GPIO27 | Unusable | SPI0/1 · flash / PSRAM |
GPIO28 | Unusable | SPI0/1 · flash / PSRAM |
GPIO29 | Unusable | SPI0/1 · flash / PSRAM |
GPIO30 | Unusable | SPI0/1 · flash / PSRAM |
GPIO31 | Unusable | SPI0/1 · flash / PSRAM |
GPIO32 | Unusable | SPI0/1 · flash / PSRAM |
GPIO33 | Usable | General GPIO |
GPIO34 | Usable | General GPIO |
GPIO35 | Usable | General GPIO |
GPIO36 | Usable | General GPIO |
GPIO37 | Usable | General GPIO |
GPIO38 | Usable | General GPIO |
GPIO39 | Usable | MTCK · internal JTAG |
GPIO40 | Usable | MTDO · internal JTAG |
GPIO41 | Usable | MTDI · internal JTAG |
GPIO42 | Usable | MTMS · internal JTAG |
GPIO43 | Usable | UART0 TX |
GPIO44 | Usable | UART0 RX |
GPIO45 | Usable | Strapping (VDD_SPI voltage) |
GPIO46 | Input only | Strapping · fixed pull-down, input-only |
Individual GPIO pages
Related
ESP32 PinoutClassic · ESP32-D0WD / WROOM / WROVERESP32-S3 PinoutXtensa LX7 dual-core · native USB · vector extensionsESP32-C3 PinoutRISC-V single-core · low cost · native USBESP32-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