Skip to content

GPIO Table

GPIO Overview

The ESP32-S3 has 45 GPIO pins (GPIO0-21, GPIO26-48). Not all are available on the DevKitC-1 due to internal flash/PSRAM usage.

Complete GPIO Reference

GPIOHeaderADCTouchRTCDefault FunctionNotes
0J3-14--YesBoot strappingHold low for download mode
1J3-4ADC1_0T1YesGeneral I/O
2J3-5ADC1_1T2YesGeneral I/O
3J1-13ADC1_2T3YesGeneral I/O
4J1-4ADC1_3T4YesGeneral I/O
5J1-5ADC1_4T5YesGeneral I/O
6J1-6ADC1_5T6YesGeneral I/O
7J1-7ADC1_6T7YesGeneral I/O
8J1-12ADC1_7T8YesGeneral I/O
9J1-15ADC1_8T9YesGeneral I/O
10J1-16ADC1_9T10YesFSPI_CSSPI chip select
11J1-17ADC2_0T11YesFSPI_MOSISPI data out
12J1-18ADC2_1T12YesFSPI_CLKSPI clock
13J1-19ADC2_2T13YesFSPI_MISOSPI data in
14J1-20ADC2_3T14YesGeneral I/O
15J1-8ADC2_4-YesGeneral I/O
16J1-9ADC2_5-YesGeneral I/O
17J1-10ADC2_6-YesGeneral I/O
18J1-11ADC2_7-YesGeneral I/O
19J3-20---USB D-USB
20J3-19---USB D+USB
21J3-18---General I/O
35J3-13---PSRAMN8R8/N16R8 Only
36J3-12---PSRAMN8R8/N16R8 Only
37J3-11---PSRAMN8R8/N16R8 Only
38J3-10---RGB LEDV1.1
39J3-9---JTAG MTCKDebug
40J3-8---JTAG MTDODebug
41J3-7---JTAG MTDIDebug
42J3-6---JTAG MTMSDebug
43J3-2---U0TXDUART TX
44J3-3---U0RXDUART RX
45J3-15---VDD_SPI strapStrapping pin
46J1-14---Input onlyInput Only
47J3-17---General I/O
48J3-16---RGB LEDV1.0

Pin Restrictions

Strapping Pins

GPIOFunctionDefaultEffect
GPIO0Boot modeHIGH (pulled up)LOW = download mode
GPIO45VDD_SPILOW (pulled down)HIGH = 1.8V flash
GPIO46ROM logHIGH (pulled up)LOW = disable logs

USB Pins

GPIO19 and GPIO20 are dedicated USB pins when USB functionality is enabled:

GPIOUSB FunctionNotes
GPIO19USB_D-Cannot use as GPIO when USB active
GPIO20USB_D+Cannot use as GPIO when USB active

PSRAM Pins (N8R8/N16R8)

GPIOPSRAM Function
GPIO35SPI_DQS
GPIO36SPI_D4
GPIO37SPI_D5

Input-Only Pins

GPIONotes
GPIO46Cannot output, can only read input

ADC Channels

ADC1 (10 channels)

Works in all conditions:

ChannelGPIO
ADC1_CH0GPIO1
ADC1_CH1GPIO2
ADC1_CH2GPIO3
ADC1_CH3GPIO4
ADC1_CH4GPIO5
ADC1_CH5GPIO6
ADC1_CH6GPIO7
ADC1_CH7GPIO8
ADC1_CH8GPIO9
ADC1_CH9GPIO10

ADC2 (10 channels)

ChannelGPIO
ADC2_CH0GPIO11
ADC2_CH1GPIO12
ADC2_CH2GPIO13
ADC2_CH3GPIO14
ADC2_CH4GPIO15
ADC2_CH5GPIO16
ADC2_CH6GPIO17
ADC2_CH7GPIO18
ADC2_CH8GPIO19 (USB)
ADC2_CH9GPIO20 (USB)

Touch Sensors

14 capacitive touch pins (T1-T14):

TouchGPIO
T1GPIO1
T2GPIO2
T3GPIO3
T4GPIO4
T5GPIO5
T6GPIO6
T7GPIO7
T8GPIO8
T9GPIO9
T10GPIO10
T11GPIO11
T12GPIO12
T13GPIO13
T14GPIO14

Peripheral Mapping

Default SPI (FSPI)

FunctionGPIO
FSPI_CLKGPIO12
FSPI_MOSIGPIO11
FSPI_MISOGPIO13
FSPI_CSGPIO10

UART

UARTTXRX
UART0GPIO43GPIO44
UART1Any GPIOAny GPIO
UART2Any GPIOAny GPIO

I2C

I2C can be assigned to any GPIO. Common defaults:

FunctionSuggested GPIO
SDAGPIO8
SCLGPIO9

JTAG Debug

FunctionGPIO
MTCKGPIO39
MTDOGPIO40
MTDIGPIO41
MTMSGPIO42

Sensor Project

GPIO4 → I2C SDA
GPIO5 → I2C SCL
GPIO6 → Button input
GPIO38 → Status LED

Display + SD Card

GPIO10 → Display CS
GPIO11 → SPI MOSI
GPIO12 → SPI CLK
GPIO13 → SPI MISO
GPIO14 → Display DC
GPIO15 → Display RST
GPIO16 → SD Card CS

Motor Control

GPIO4 → PWM Motor A
GPIO5 → PWM Motor B
GPIO6 → Direction A
GPIO7 → Direction B
GPIO8 → Encoder A
GPIO9 → Encoder B