Learn

ESP32-S3 pinout: the DevKitC-1, pin by pin

Beginner

Or see every lesson.

  • 455parts on the bench
  • 43boards running now
  • 1.00xreal time, on every board
ESP32-S3 DevKitC-1: the RGB LEDlive0.000 s 0.00x
Click to open it in the editor
The board’s own RGB LED on GPIO 48 walking the color wheel, one WS2812 frame every 20 ms.

This is the pinout of Espressif’s ESP32-S3-DevKitC-1, the board most ESP32-S3 tutorials use, with an ESP32-S3-WROOM-1 module on it. Its 44 pins are named by GPIO number, so the hole marked 4 is GPIO 4 in code. This page lists every pin with what it can do and what to watch for, then the strapping pins, the USB and PSRAM pins to avoid, the RGB LED, the power pins and which pin to use for what.

The circuit above is that board in Mokxi, walking its own RGB LED around the color wheel. The table is held to the same board model the simulator runs, and where the simulator does less than the chip, each row says so.

Every pin on the header

With the USB sockets at the bottom, J1 on the left reads 3V3, 3V3, RST, 4, 5, 6, 7, 15, 16, 17, 18, 8, 3, 46, 9, 10, 11, 12, 13, 14, 5V and G. J3 on the right reads G, TX, RX, 1, 2, 42, 41, 40, 39, 38, 37, 36, 35, 0, 45, 48, 47, 21, 20, 19, G and G. TX and RX are GPIO 43 and 44.

Touch and ADC2 are in the table because the chip has them and tutorials use them; Mokxi models neither, and each row says so. The S3 has no DAC. Unlike the classic ESP32 it has no block of input-only pins: every numbered hole here can be an output.

ESP32-S3-DevKitC-1: J1 (left) top to bottom, then J3 (right), USB at the bottom
PinGPIOWhat it can doWatch out for
3V3-The regulator’s 3.3 V output. Two holes.Not a GPIO.
RST-Chip enable, which is the reset.Not a GPIO.
44ADC1_CH3. PWM. Touch T4 (not modeled).A safe all-rounder.
55ADC1_CH4. PWM. Touch T5 (not modeled).-
66ADC1_CH5. PWM. Touch T6 (not modeled).-
77ADC1_CH6. PWM. Touch T7 (not modeled).-
1515PWM. ADC2_CH4 on the chip (not modeled).-
1616PWM. ADC2_CH5 on the chip (not modeled).-
1717PWM. ADC2_CH6 on the chip (not modeled).-
1818PWM. ADC2_CH7 on the chip (not modeled).-
88ADC1_CH7. PWM. I2C SDA (default). Touch T8 (not modeled).-
33ADC1_CH2. PWM. Touch T3 (not modeled).Strapping pin: leave it floating at power-on.
4646PWM.Strapping pin: keep it low at power-on.
99ADC1_CH8. PWM. I2C SCL (default). Touch T9 (not modeled).-
1010ADC1_CH9. PWM. SPI SS (default). Touch T10 (not modeled).-
1111PWM. SPI MOSI (default). ADC2_CH0 and touch T11 on the chip (not modeled).-
1212PWM. SPI SCK (default). ADC2_CH1 and touch T12 on the chip (not modeled).-
1313PWM. SPI MISO (default). ADC2_CH2 and touch T13 on the chip (not modeled).-
1414PWM. ADC2_CH3 and touch T14 on the chip (not modeled).-
5V-The USB 5 V rail; put 5 V here to run the board without a cable.Not a GPIO.
G-Ground. Four holes.-
TX43UART0 TX: Serial, through the "UART" socket.Leave free, or uploads and the serial monitor break.
RX44UART0 RX: Serial, through the "UART" socket.Leave free, or uploads and the serial monitor break.
11ADC1_CH0. PWM. Touch T1 (not modeled).-
22ADC1_CH1. PWM. Touch T2 (not modeled).-
4242PWM. JTAG MTMS.Only matters if you debug over JTAG.
4141PWM. JTAG MTDI.Only matters if you debug over JTAG.
4040PWM. JTAG MTDO.Only matters if you debug over JTAG.
3939PWM. JTAG MTCK.Only matters if you debug over JTAG.
3838PWM. The RGB LED on a v1.1 board.-
3737PWM.The PSRAM on octal-PSRAM boards (N8R8): do not use.
3636PWM.The PSRAM on octal-PSRAM boards (N8R8): do not use.
3535PWM.The PSRAM on octal-PSRAM boards (N8R8): do not use.
00PWM. The BOOT button.Strapping pin: low at reset waits for an upload.
4545PWM.Strapping pin: high at reset sets the flash to 1.8 V. Keep it low.
4848PWM. The RGB LED on a v1.0 board.-
4747PWM.-
2121PWM.A safe all-rounder.
2020PWM. USB D+. ADC2_CH9 on the chip (not modeled).Drive it and the "USB" socket stops working.
1919PWM. USB D-. ADC2_CH8 on the chip (not modeled).Drive it and the "USB" socket stops working.

Strapping pins: 0, 3, 45 and 46

Four pins are read as the chip comes out of reset. GPIO 0 is the BOOT button: low at reset and the chip waits for an upload instead of running your program. GPIO 46 must not be high while GPIO 0 is low, and GPIO 45 high tells the chip its flash runs at 1.8 V, which the module’s flash does not, so the board will not start. GPIO 3 picks where the JTAG signals come from. Leave all four free of pull-ups and pull-downs of your own at power-on.

Mokxi does not model strapping. The simulated board starts whatever is wired to those pins, so check them before you build a circuit from here on a desk.

USB, PSRAM and flash pins to avoid

The board has two USB sockets. "UART" goes through a USB-to-serial chip to UART0 on TX and RX, and that is Serial by default. "USB" is the chip’s own USB on GPIO 19 and 20; drive either pin and that socket stops working. Mokxi’s serial monitor listens to both at once and keeps going if you drive 19 or 20, which is kinder than the silicon.

On the boards with octal PSRAM, the N8R8 most people buy, GPIO 35, 36 and 37 belong to the PSRAM and must not be used. Mokxi has no PSRAM, so here they work, which a desk might not. The flash pins, GPIO 26 to 32, are not on the header.

The RGB LED, and power

There is no plain LED on this board. There is an addressable RGB LED, a WS2812-type part, on GPIO 48 on the first boards and on GPIO 38 on v1.1. rgbLedWrite(RGB_BUILTIN, red, green, blue) sets its color, and digitalWrite(LED_BUILTIN, HIGH) lights it white. Mokxi’s board has a revision property that picks which pin it is on. The other LED is the power light.

5V is the USB rail and the input when there is no cable. 3V3, on two holes, is the regulator’s output, for the S3 and small sensors. The four G holes are ground. Every GPIO is 3.3 V and none is 5 V tolerant; keep each pin to an LED’s worth of current.

Analog, PWM, I2C and SPI

ADC1 is on GPIO 1 to 10: channel n is GPIO n plus 1. Twelve bits, and at the default attenuation the measuring range ends at about 2.9 V, so Mokxi reads 4095 from there up and a pot across 3.3 V tops out early. ADC2 is on GPIO 11 to 20, is shared with WiFi on a real S3, and is not modeled.

Any GPIO can do PWM through LEDC, eight channels, eight bits at 1 kHz by default. Wire.begin() puts I2C on GPIO 8 for SDA and 9 for SCL, and SPI is 12, 13, 11 and 10 for SCK, MISO, MOSI and SS. In Mokxi both buses run in software on those pins, because the S3’s I2C and SPI controllers are not modeled.

Questions

Which ESP32-S3 pin should I use for a button?

GPIO 4 to 7, 15 to 18 or 21, with `INPUT_PULLUP` and the button to ground. Avoid 0, 3, 45 and 46 at power-on, 19 and 20 if you use the USB socket, and 35 to 37 on a PSRAM board.

What are the ESP32-S3 SDA and SCL pins?

SDA is GPIO 8 and SCL is GPIO 9, the defaults `Wire.begin()` uses. `Wire.begin(sda, scl)` moves the bus to any two other pins.

Which ESP32-S3 pins are analog?

ADC1 is GPIO 1 to 10 and keeps working with WiFi on. ADC2 is GPIO 11 to 20 and does not, on a real board.

Which ESP32-S3 pin should I use for a servo or an LED?

Any free GPIO that is not a strapping, USB or PSRAM pin: 4 to 7, 15 to 18, 21 or 47 are good choices. LEDC makes PWM on any of them.

Why is the ESP32-S3 RGB LED dark?

On a v1.1 board it is on GPIO 38, and a sketch built for GPIO 48, as the Arduino core’s board definition is, leaves it dark. Check the version printed on your board.

Is the ESP32-S3 DevKitC-1 pinout the same as the classic ESP32 DevKit?

No. The numbers mean different things on the two chips: the S3 has no input-only pins, its ADC1 is on GPIO 1 to 10, and its strapping pins are 0, 3, 45 and 46.

What is the ESP32-S3 N16R8 pinout?

The same header as on this page. N16R8 names the module inside: 16 MB of flash and 8 MB of octal PSRAM. Octal PSRAM takes GPIO 35, 36 and 37, as on the N8R8, so leave those three free. SDA and SCL are still GPIO 8 and 9.

Is the XIAO ESP32-S3 pinout the same?

No. The XIAO ESP32-S3 has fourteen pads named D0 to D10, and its I2C is on D4 (GPIO 5) for SDA and D5 (GPIO 6) for SCL, not 8 and 9. Its board page lists every pad.

Build this for real

Open the editor, change a value and watch the number move with it. Nothing to install, and no account needed.