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.

ESP32-S3-DevKitC-1 pinoutESP32-S3-WROOM-13V33V33V33V3RSTCHIP_PU4RTC_GPIO45RTC_GPIO56RTC_GPIO67RTC_GPIO715RTC_GPIO1516RTC_GPIO1617RTC_GPIO1718RTC_GPIO188RTC_GPIO83RTC_GPIO3469RTC_GPIO910RTC_GPIO1011RTC_GPIO1112RTC_GPIO1213RTC_GPIO1314RTC_GPIO145V5VGGNDGGNDTX · GPIO43U0TXDRX · GPIO44U0RXD1RTC_GPIO12RTC_GPIO242MTMS41MTDI40MTDO39MTCK38FSPIWP37SPIDQS36SPIIO735SPIIO60RTC_GPIO04548SPICLK_N47SPICLK_P21RTC_GPIO2120RTC_GPIO2019RTC_GPIO19GGNDGGND
Top view, USB connector on the left. Colors: red power, grey ground, green GPIO, yellow analog, orange USB serial, blue I2C.

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

PinGPIOChip pinFunctionsNotes
3V3—3V33.3 V from the on-board regulator. You can feed 3.3 V in here instead of USB, but never both at once.
3V3—3V3Same 3.3 V rail as the other 3V3 pin.
RST—CHIP_PUReset. Pulling it LOW restarts the chip (same as the RESET button).
44GPIO, RTC_GPIO4, TOUCH4, ADC1_CH3
55GPIO, RTC_GPIO5, TOUCH5, ADC1_CH4
66GPIO, RTC_GPIO6, TOUCH6, ADC1_CH5
77GPIO, RTC_GPIO7, TOUCH7, ADC1_CH6
1515GPIO, RTC_GPIO15, U0RTS, ADC2_CH4, XTAL_32K_P
1616GPIO, RTC_GPIO16, U0CTS, ADC2_CH5, XTAL_32K_N
1717GPIO, RTC_GPIO17, U1TXD, ADC2_CH6
1818GPIO, RTC_GPIO18, U1RXD, ADC2_CH7, CLK_OUT3
88GPIO, RTC_GPIO8, TOUCH8, ADC1_CH7, SUBSPICS1, I2C_SDA (default)Arduino's default I2C SDA pin on the ESP32-S3.
33GPIO, RTC_GPIO3, TOUCH3, ADC1_CH2Strapping pin for the JTAG source. It is ignored unless special eFuses are burned, so it is normally fine to use.
4646GPIOStrapping pin: keep it LOW (its default) at reset, or uploading may fail.
99GPIO, RTC_GPIO9, TOUCH9, ADC1_CH8, FSPIHD, SUBSPIHD, I2C_SCL (default)Arduino's default I2C SCL pin on the ESP32-S3.
1010GPIO, RTC_GPIO10, TOUCH10, ADC1_CH9, FSPICS0, FSPIIO4, SUBSPICS0, SPI_CS (default)
1111GPIO, RTC_GPIO11, TOUCH11, ADC2_CH0, FSPID, FSPIIO5, SUBSPID, SPI_MOSI (default)
1212GPIO, RTC_GPIO12, TOUCH12, ADC2_CH1, FSPICLK, FSPIIO6, SUBSPICLK, SPI_SCK (default)
1313GPIO, RTC_GPIO13, TOUCH13, ADC2_CH2, FSPIQ, FSPIIO7, SUBSPIQ, SPI_MISO (default)
1414GPIO, RTC_GPIO14, TOUCH14, ADC2_CH3, FSPIWP, FSPIDQS, SUBSPIWP
5V—5V5 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
TX43GPIO43GPIO, U0TXD, CLK_OUT1USB serial TX through the CP2102N (port labelled UART). Used for uploading and the serial monitor.
RX44GPIO44GPIO, U0RXD, CLK_OUT2USB serial RX through the CP2102N (port labelled UART). Used for uploading and the serial monitor.
11GPIO, RTC_GPIO1, TOUCH1, ADC1_CH0
22GPIO, RTC_GPIO2, TOUCH2, ADC1_CH1
4242GPIO, MTMS
4141GPIO, MTDI, CLK_OUT1
4040GPIO, MTDO, CLK_OUT2
3939GPIO, MTCK, CLK_OUT3, SUBSPICS1
3838GPIO, FSPIWP, SUBSPIWP, RGB_LEDDrives 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.
3737GPIO, SPIDQS, FSPIQ, SUBSPIQUsed inside the module by the octal PSRAM (N8R8 and other R8 / R16V boards). Not available: do not use.
3636GPIO, SPIIO7, FSPICLK, SUBSPICLKUsed inside the module by the octal PSRAM (N8R8 and other R8 / R16V boards). Not available: do not use.
3535GPIO, SPIIO6, FSPID, SUBSPIDUsed inside the module by the octal PSRAM (N8R8 and other R8 / R16V boards). Not available: do not use.
00GPIO, RTC_GPIO0Strapping pin wired to the BOOT button: LOW at reset starts upload mode instead of your program.
4545GPIOStrapping pin: HIGH at reset selects 1.8 V flash voltage, so the board may not boot. Keep it LOW or floating at reset.
4848GPIO, SPICLK_N, SUBSPICLK_N_DIFFFree on v1.1 boards. On the older v1.0 board this pin drives the RGB LED.
4747GPIO, SPICLK_P, SUBSPICLK_P_DIFF
2121GPIO, RTC_GPIO21
2020GPIO, RTC_GPIO20, U1CTS, ADC2_CH9, CLK_OUT1, USB_D+Native USB D+ (the port labelled USB). Using it breaks that USB port.
1919GPIO, 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 BoardPilot

Sources

← All boards