ESP32-S3-DevKitC-1 pinout
Espressif's own ESP32-S3 board: Wi-Fi, Bluetooth LE, two USB ports and an RGB LED. Breadboard friendly, 3.3 V logic.
At a glance
- Chip
- ESP32-S3 (ESP32-S3-WROOM-1-N8R8)
- Processor
- Dual-core Xtensa LX7 at 240 MHz, 512 KB SRAM, 8 MB flash, 8 MB octal PSRAM, Wi-Fi and Bluetooth LE
- Logic level
- 3.3 V. Not 5 V tolerant unless marked below.
- Flashing tool
- esptool
- Arduino board (FQBN)
- esp32:esp32:esp32s3
- Live pin view in BoardPilot
- Yes (diagnostic agent available)
Pins to avoid or use with care
Flash memory: 37, 36, 35
Wired to the flash memory. Never use them.
Boot-critical strapping pins: 45
A wrong level at reset stops the board from booting.
Strapping pins: 3, 46, 0
Their level at reset changes how the board boots. Usually fine after boot.
USB serial: TX (GPIO43), RX (GPIO44)
Used for uploading and the serial monitor. Anything connected here can break uploads.
Native USB: 20, 19
The USB data lines. Using them breaks USB uploads and the serial monitor.
Good pins for LEDs, buttons and signals
4, 5, 6, 7, 15, 16, 17, 18, 21, 47, 1, 2, 14
Default pins in Arduino
- I2C
- SDA = 8, SCL = 9. Any output-capable pins work with Wire.begin(sda, scl). Any GPIO can be I2C on the ESP32-S3. Arduino's Wire uses GPIO 8 (SDA) and GPIO 9 (SCL) by default.
- SPI
- MOSI = 11, MISO = 13, SCK = 12, CS = 10.
- Analog inputs
- 1, 2, 4, 5, 6, 7, 10, 3, 8, 9 (0–3.3 V)
How to flash it
Use the port labelled UART. If uploading does not start, hold BOOT, press and release RESET, then release BOOT.
All 44 pins
| Pin | GPIO | Chip pin | Functions | Notes |
|---|---|---|---|---|
| 3V3 | — | 3V3 | 3.3 V from the on-board regulator. You can feed 3.3 V in here instead of USB, but never both at once. | |
| 3V3 | — | 3V3 | Same 3.3 V rail as the other 3V3 pin. | |
| RST | — | CHIP_PU | Reset. Pulling it LOW restarts the chip (same as the RESET button). | |
| 4 | 4 | GPIO, RTC_GPIO4, TOUCH4, ADC1_CH3 | ||
| 5 | 5 | GPIO, RTC_GPIO5, TOUCH5, ADC1_CH4 | ||
| 6 | 6 | GPIO, RTC_GPIO6, TOUCH6, ADC1_CH5 | ||
| 7 | 7 | GPIO, RTC_GPIO7, TOUCH7, ADC1_CH6 | ||
| 15 | 15 | GPIO, RTC_GPIO15, U0RTS, ADC2_CH4, XTAL_32K_P | ||
| 16 | 16 | GPIO, RTC_GPIO16, U0CTS, ADC2_CH5, XTAL_32K_N | ||
| 17 | 17 | GPIO, RTC_GPIO17, U1TXD, ADC2_CH6 | ||
| 18 | 18 | GPIO, RTC_GPIO18, U1RXD, ADC2_CH7, CLK_OUT3 | ||
| 8 | 8 | GPIO, RTC_GPIO8, TOUCH8, ADC1_CH7, SUBSPICS1, I2C_SDA (default) | Arduino's default I2C SDA pin on the ESP32-S3. | |
| 3 | 3 | GPIO, RTC_GPIO3, TOUCH3, ADC1_CH2 | Strapping pin for the JTAG source. It is ignored unless special eFuses are burned, so it is normally fine to use. | |
| 46 | 46 | GPIO | Strapping pin: keep it LOW (its default) at reset, or uploading may fail. | |
| 9 | 9 | GPIO, RTC_GPIO9, TOUCH9, ADC1_CH8, FSPIHD, SUBSPIHD, I2C_SCL (default) | Arduino's default I2C SCL pin on the ESP32-S3. | |
| 10 | 10 | GPIO, RTC_GPIO10, TOUCH10, ADC1_CH9, FSPICS0, FSPIIO4, SUBSPICS0, SPI_CS (default) | ||
| 11 | 11 | GPIO, RTC_GPIO11, TOUCH11, ADC2_CH0, FSPID, FSPIIO5, SUBSPID, SPI_MOSI (default) | ||
| 12 | 12 | GPIO, RTC_GPIO12, TOUCH12, ADC2_CH1, FSPICLK, FSPIIO6, SUBSPICLK, SPI_SCK (default) | ||
| 13 | 13 | GPIO, RTC_GPIO13, TOUCH13, ADC2_CH2, FSPIQ, FSPIIO7, SUBSPIQ, SPI_MISO (default) | ||
| 14 | 14 | GPIO, RTC_GPIO14, TOUCH14, ADC2_CH3, FSPIWP, FSPIDQS, SUBSPIWP | ||
| 5V | — | 5V | 5 V from the USB ports. You can power the board here with 5 V instead of USB, but never both at once. | |
| G | — | GND | ||
| G | — | GND | ||
| TX | 43 | GPIO43 | GPIO, U0TXD, CLK_OUT1 | USB serial TX through the CP2102N (port labelled UART). Used for uploading and the serial monitor. |
| RX | 44 | GPIO44 | GPIO, U0RXD, CLK_OUT2 | USB serial RX through the CP2102N (port labelled UART). Used for uploading and the serial monitor. |
| 1 | 1 | GPIO, RTC_GPIO1, TOUCH1, ADC1_CH0 | ||
| 2 | 2 | GPIO, RTC_GPIO2, TOUCH2, ADC1_CH1 | ||
| 42 | 42 | GPIO, MTMS | ||
| 41 | 41 | GPIO, MTDI, CLK_OUT1 | ||
| 40 | 40 | GPIO, MTDO, CLK_OUT2 | ||
| 39 | 39 | GPIO, MTCK, CLK_OUT3, SUBSPICS1 | ||
| 38 | 38 | GPIO, FSPIWP, SUBSPIWP, RGB_LED | Drives the RGB LED on v1.1 boards. Arduino's RGB_BUILTIN points to GPIO 48 (the v1.0 LED pin), so use 38 for this LED. | |
| 37 | 37 | GPIO, SPIDQS, FSPIQ, SUBSPIQ | Used inside the module by the octal PSRAM (N8R8 and other R8 / R16V boards). Not available: do not use. | |
| 36 | 36 | GPIO, SPIIO7, FSPICLK, SUBSPICLK | Used inside the module by the octal PSRAM (N8R8 and other R8 / R16V boards). Not available: do not use. | |
| 35 | 35 | GPIO, SPIIO6, FSPID, SUBSPID | Used inside the module by the octal PSRAM (N8R8 and other R8 / R16V boards). Not available: do not use. | |
| 0 | 0 | GPIO, RTC_GPIO0 | Strapping pin wired to the BOOT button: LOW at reset starts upload mode instead of your program. | |
| 45 | 45 | GPIO | Strapping pin: HIGH at reset selects 1.8 V flash voltage, so the board may not boot. Keep it LOW or floating at reset. | |
| 48 | 48 | GPIO, SPICLK_N, SUBSPICLK_N_DIFF | Free on v1.1 boards. On the older v1.0 board this pin drives the RGB LED. | |
| 47 | 47 | GPIO, SPICLK_P, SUBSPICLK_P_DIFF | ||
| 21 | 21 | GPIO, RTC_GPIO21 | ||
| 20 | 20 | GPIO, RTC_GPIO20, U1CTS, ADC2_CH9, CLK_OUT1, USB_D+ | Native USB D+ (the port labelled USB). Using it breaks that USB port. | |
| 19 | 19 | GPIO, RTC_GPIO19, U1RTS, ADC2_CH8, CLK_OUT2, USB_D- | Native USB D- (the port labelled USB). Using it breaks that USB port. | |
| G | — | GND | ||
| G | — | GND |
Check your wiring with BoardPilot
BoardPilot shows this board in 3D, flags risky pins as you wire, and flashes it safely with a backup first.
Download BoardPilotSources
- ESP32-S3-DevKitC-1 v1.1 user guide, Header Block (J1, J3), Description of Components, Hardware Revision Details
- ESP32-S3-DevKitC-1 v1.1 schematic (2022-11-30), Sheet 2: CP2102N-A02, two micro-USB connectors, RGB LED on GPIO38, BOOT on GPIO0
- ESP32-S3-DevKitC-1 v1.1 dimensions (DXF 2022-04-29), Board outline, header pad centres, component outlines
- ESP32-S3 Series Datasheet v2.2, 3 Boot Configurations (strapping pins GPIO0, 3, 45, 46; Tables 3-1, 3-3, 3-4, 3-5)
- ESP32-S3-WROOM-1 / 1U Datasheet v1.8, Pin Definitions note b: IO35-37 used by octal PSRAM; Table 1-1 ordering codes
- ESP-IDF Programming Guide (ESP32-S3), ADC Oneshot: Hardware Limitations (ADC2 is also used by Wi-Fi)
- arduino-esp32 variants/esp32s3/pins_arduino.h, SDA 8, SCL 9, SS 10, MOSI 11, MISO 13, SCK 12, PIN_RGB_LED 48, USB 303a:1001
- Board data file and source notes on GitHub