Language: EN


ESP32-S3 Hardware Pinout and Details

The ESP32-S3 is the natural successor as the flagship of the Espressif ESP32 family.

The first step before being able to use it should be to familiarize ourselves with its features and functionalities.

So, just as we did in this post with the traditional ESP32 model (without version), in this post, we are going to go over the main points of its characteristics and hardware.

So we start with the technical features table of the ESP32-S3-

FeatureESP32-S3 Series
Launch year2020
CoreXtensa® dual-core 32-bit LX7
Wi-Fi protocols802.11 b/g/n, 2.4 GHz
Bluetooth®Bluetooth 5.0
Typical frequency240 MHz
External flashUp to 1 GB device
External RAMUp to 1 GB device
ADC2x 12-bit SAR ADCs
Timers4x 54-bit, 3x watchdog
Temperature sensor1
LCD interface1
Pulse counter4
Touch sensor14
Hall sensor✖️
Camera interface1

If you are using an ESP32-S3, you have a similar summary in this post Which pins can I use on an ESP32-S3

ESP32 Pinout

Now let’s take a look at the pinout scheme of the ESP32 on the official ESP32-S3 development board.


Keep in mind that these are the characteristics of this specific board. The one you have in your device will depend on the SoM and development board you are using.

If you have doubts about what an SoC, an SoM, and a development board are, check out this post What is an SoC and an SoM

As always, in case of any doubt about your board, it is best to consult the official documentation of Espressif and, above all, the information from the device manufacturer.

Here is the link to the official documentation of Espressif about the Esp32-S3 DevKitc 1 board.

ESP32-S3-DevKitC-1 v1.1 - ESP32-S3 - — ESP-IDF Programming Guide latest documentation


Pin multiplexing is one of the most important and useful features of the ESP32.

Basically, in the ESP32, we can reassign most of the GPIO functions to act on any pin, with little impact on performance.

Therefore, the values we are going to see are the default values, but generally, you can change them to others, as you see fit.


The RTC (Real Time Clock) plays a fundamental role during Sleep modes. The RTC consists of the following parts:

  • RTC controller (which includes timers and IO peripherals)
  • RTC memory (fast and slow)
  • Ultra Low Power (ULP) coprocessor

The ESP32 has 8 kB of SRAM in the RTC part, called fast RTC memory. Data stored here is not erased during deep sleep mode.

There are also another 8kB of SRAM called slow memory, which are used for the ULP processor.

Digital Pins


The ESP32-S3 has up to 45 GPIO pins that can be assigned to different functions through programming.

Most of these digital GPIO pins can be configured with internal pull-up or pull-down resistors.

Strapping Pins on the ESP32-S3

The ESP32 chip has the following strapping configuration pins:

  • GPIO 0
  • GPIO 45
  • GPIO 46

These pins are involved in the boot configuration. So, avoid using them in your project.

More information in this post read more ⯈

Input-Only GPIO Pins

These pins cannot be used as outputs, but can be used as digital or analog inputs, or for other purposes.

  • GPIO 46

Additionally, unlike the other GPIO pins, they lack internal pull-up and pull-down resistors.

Interrupt Pins on the ESP32-S3

All GPIO pins can be configured as interrupts.

read more ⯈

RTC GPIO Pins on the ESP32-S3

Some GPIO are connected to the RTC low power subsystem and are known as RTC GPIO.

  • RTC_GPIO10 - GPIO10
  • RTC_GPIO11 - GPIO11
  • RTC_GPIO12 - GPIO12
  • RTC_GPIO13 - GPIO13
  • RTC_GPIO14 - GPIO14
  • RTC_GPIO15 - GPIO15
  • RTC_GPIO16 - GPIO16
  • RTC_GPIO17 - GPIO17
  • RTC_GPIO18 - GPIO18
  • RTC_GPIO19 - GPIO19
  • RTC_GPIO20 - GPIO20
  • RTC_GPIO21 - GPIO21

These pins are used to wake the ESP32-S3 from deep sleep mode when the ultra-low-power coprocessor (ULP) is operating.

More information in this post:

Touch Pins on the ESP32-S3

The ESP32-S3 has 14 capacitive touch detection GPIO pins.

  • TOUCH1 - GPIO 1
  • TOUCH2 - GPIO 2
  • TOUCH3 - GPIO 3
  • TOUCH4 - GPIO 4
  • TOUCH5 - GPIO 5
  • TOUCH6 - GPIO 6
  • TOUCH7 - GPIO 7
  • TOUCH8 - GPIO 8
  • TOUCH9 - GPIO 9
  • TOUCH10 - GPIO 10
  • TOUCH11 - GPIO 11
  • TOUCH12 - GPIO 12
  • TOUCH13 - GPIO 13
  • TOUCH14 - GPIO 14

When a capacitive load (like a human finger) is near the GPIO pin, the ESP32-S3 detects the change in capacitance.

read more ⯈

Enable Pin (EN)

Enable (EN) is the pin that controls the 3V3 regulator. It is configured with a pull-up resistor, so it is connected to ground to deactivate the 3.3V regulator. For example, to reset the ESP32.

Analog Pins

PWM Pins on the ESP32-S3

The ESP32-S3 board has 8 PWM channels (all GPIO pins except input-only pins) controlled by a PWM controller.

The PWM output can be used to control motors and digital LEDs.

read more⯈

ADC Pins on the ESP32-S3

The ESP32 integrates two ADCs and supports measurements on 20 channels.

  • ADC1_CH0 - GPIO 1
  • ADC1_CH1 - GPIO 2
  • ADC1_CH2 - GPIO 3
  • ADC1_CH3 - GPIO 4
  • ADC1_CH4 - GPIO 5
  • ADC1_CH5 - GPIO 6
  • ADC1_CH6 - GPIO 7
  • ADC1_CH7 - GPIO 8
  • ADC1_CH8 - GPIO 9
  • ADC1_CH9 - GPIO 10
  • ADC2_CH0 - GPIO 11
  • ADC2_CH1 - GPIO 12
  • ADC2_CH2 - GPIO 13
  • ADC2_CH3 - GPIO 14
  • ADC2_CH4 - GPIO 15
  • ADC2_CH5 - GPIO 16
  • ADC2_CH6 - GPIO 17
  • ADC2_CH7 - GPIO 18
  • ADC2_CH8 - GPIO 19
  • ADC2_CH9 - GPIO 20

The ADCs are 12-bit, so we have 4096 (2^12) discrete levels, which translates to a precision of 0.8mV.

read more ⯈

DAC Pins on the ESP32-S3

The ESP32-S3 does not include a DAC.

Communication Pins

UART Pins on the ESP32-S3

The ESP32-S3 development board has three UART interfaces: UART0, UART1, and UART2, which support asynchronous communication (RS232 and RS485) and IrDA up to 5 Mbps.

The UART0 pins are connected to the USB-to-serial converter and are used for programming and debugging. It is not recommended to use the UART0 pins.

On the other hand, the UART pins are reserved for the integrated FLASH memory chip. The UART1 pins are reserved for the integrated flash memory chip.

So using the UART2 is a safe option for connecting UART devices.

read more ⯈

I2C Pins on the ESP32-S3

The ESP32-S3 has a single I2C bus that allows connection of up to 112 sensors and peripherals. The SDA and SCL pins are assigned by default to the following pins.

  • SDA - GPIO 8
  • SCL - GPIO 9

However, it is possible to use any GPIO pin to implement the I2C protocol using the wire.begin(SDA, SCL) command.

read more ⯈

SPI Pins on the ESP32-S3

The ESP32 has four SPI interfaces: SPI0, SPI1, SPI2, and SPI3. SPI0 is used to connect to the FLASH memory, and SPI1 to PSRAM (if the board has it). So, it is best to focus on SPI2 and SPI3.


read more ⯈


These pins are connected to the integrated SPI flash memory in the ESP32-S3 chip. Do not use these pins in your projects.

  • GPIO 26
  • GPIO 27
  • GPIO 28
  • GPIO 29
  • GPIO 30
  • GPIO 31
  • GPIO 32