Espressif ESP32-S2-DevKitC-1

Full-featured official ESP32-S2 dev board - ideal for development with USB, Wi-Fi, and secure features.

2× Micro-USB Native USB
Espressif ESP32-S2-DevKitC-1 board
62.74 × 25.4 mm
ESP32-S2
MCU
240MHz
clock
8MB
flash
320KB
SRAM
36· 20 ADC
GPIO
Wi-Fi
radio
On this page

Pinout

44 pins · 2.54 mm pitch
View:
Espressif ESP32-S2-DevKitC-1 pinout diagram
PinGPIOLabelsStatusCapabilitiesNotes
1-3V33.3Vpower-3.3V regulated output
2-3V33.3Vpower-3.3V regulated output
3-RSTENcontrol-Chip reset (active low)
44IO4A3T4safeadc · touch · pwmADC1_CH3; touch T4; RTC
55IO5A4T5safeadc · touch · pwmADC1_CH4; touch T5; RTC
66IO6A5T6safeadc · touch · pwmADC1_CH5; touch T6; RTC
77IO7A6T7safeadc · touch · pwmADC1_CH6; touch T7; RTC
815IO15A14strappingadc · uart · pwmADC2_CH4; U0RTS; XTAL_32K_P; RTC
916IO16A15strappingadc · uart · pwmADC2_CH5; U0CTS; XTAL_32K_N; RTC
1017IO17A16DAC1uartadc · dac · uart · pwmDAC1; ADC2_CH6; U1 TX; RTC
1118IO18A17DAC2uartadc · dac · uart · pwmDAC2; onboard RGB LED; ADC2_CH7; U1 RX; RTC
128IO8A7T8SDAsafeadc · touch · i2c · pwmADC1_CH7; touch T8; default I2C SDA; RTC
133IO3A2T3safeadc · touch · pwmADC1_CH2; touch T3; RTC
1446IO46strapping-Input only; boot log output
159IO9A8T9SCLstrappingadc · touch · i2c · spi · pwmADC1_CH8; touch T9; default I2C SCL; FSPIHD; RTC
1610IO10A9T10strappingadc · touch · spi · pwmADC1_CH9; touch T10; FSPICS0; RTC
1711IO11A10T11strappingadc · touch · spi · pwmADC2_CH0; touch T11; FSPID (MOSI); RTC
1812IO12A11T12strappingadc · touch · spi · pwmADC2_CH1; touch T12; FSPICLK (SCK); RTC
1913IO13A12T13strappingadc · touch · spi · pwmADC2_CH2; touch T13; FSPIQ (MISO); RTC
2014IO14A13T14strappingadc · touch · spi · pwmADC2_CH3; touch T14; FSPIWP; RTC
21-5Vpower-5V input (from USB) / output
22-GNDground-Ground
23-GNDground-Ground
2443IO43TXuartuart · pwmUART0 TX
2544IO44RXuartuart · pwmUART0 RX
261IO1A0T1safeadc · touch · pwmADC1_CH0; touch T1; RTC
272IO2A1T2safeadc · touch · pwmADC1_CH1; touch T2; RTC
2842IO42strappingpwmJTAG MTMS
2941IO41strappingpwmJTAG MTDI
3040IO40strappingpwmJTAG MTDO
3139IO39strappingpwmJTAG MTCK
3238IO38strappingspi · pwmFSPIWP
3337IO37MISOstrappingspi · pwmDefault SPI MISO (FSPIQ)
3436IO36SCKstrappingspi · pwmDefault SPI SCK (FSPICLK)
3535IO35MOSIstrappingspi · pwmDefault SPI MOSI (FSPID)
360IO0BOOTstrappingpwmBOOT button; RTC
3745IO45strappingpwmGeneral-purpose GPIO
3834IO34SSstrappingspi · pwmDefault SPI SS (FSPICS0)
3933IO33strappingspi · pwmFSPIHD
4021IO21safepwmGeneral-purpose GPIO; RTC
4120IO20A19uartadc · uart · pwmUSB D+ (native USB); ADC2_CH9; U1CTS; RTC
4219IO19A18uartadc · uart · pwmUSB D- (native USB); ADC2_CH8; U1RTS; RTC
43-GNDground-Ground
44-GNDground-Ground

Start with these

13 pins with no boot or system involvement
IO4A3IO5A4IO6A5IO7A6IO17A16IO18A17IO8A7IO3A2IO43TXIO44RXIO1A0IO2A1IO21

Freely assignable - no strapping, flash, USB or JTAG duties. Ideal first picks for buttons, sensors and LEDs.

Fine - with a little care

sampled at boot or shared with debug/serial
PinLabelWhat to knowRole
IO15XTAL_32K_PIf an external 32 kHz crystal is used for RTC, this pin is dedicated to the crystal and cannot be used as GPIO.Other
IO16XTAL_32K_NIf using an external 32 kHz crystal, this pin is connected to the crystal and should not be used as general I/O.Other
IO46GPIO46If pulled high during boot, it can disable bootloader log output (depending on eFuse settings). Cannot drive output (input-only pin).Strapping
IO42MTMSJTAG TMS pin; should not be repurposed if JTAG debugging or programming via JTAG is required.Other
IO41MTDIPart of JTAG interface (TDI); avoid using as GPIO to retain ability for JTAG debug.Other
IO40MTDOPart of JTAG interface (TDO); should be avoided as GPIO if JTAG debugging is needed.Other
IO39MTCKUsed for JTAG debugging interface; using this pin for other purposes will disable JTAG clock input.Other
IO0GPIO0Must be pulled high for normal boot; pulling low at reset enters bootloader (download mode). Also serves as SPI flash data-in (SPID) line when using external flash memory.Strapping
IO45GPIO45Must be set correctly at boot (usually low for 3.3 V); improper level can cause boot failure or flash malfunction.Strapping

Only if you know the tricks

wired to flash or USB - expect a fight
PinLabelWhat to knowRole
IO9FSPIHDTypically used as flash/PSRAM IO line in certain configurations; avoid using as GPIO if flash or PSRAM is present.Flash
IO10FSPICS0Often used as flash chip select in some designs; not available for GPIO when controlling flash.Flash
IO11FSPIDUsed for flash data transfer in certain configurations; should be avoided for general use if flash is connected.Flash
IO12FSPICLKUsed as flash clock line in some boards; not free for GPIO if driving flash.Flash
IO13FSPIQUsed for flash data output in certain configurations; avoid using as GPIO if connected to flash.Flash
IO14FSPIWPUsed as flash write-protect/data line on some modules; not recommended for other usage.Flash
IO38FSPIWPReserved for flash/PSRAM in ESP32-S2 modules with internal memory; not recommended for general I/O.Flash
IO37FSPIQUsed for internal flash/PSRAM data in some models; should not be repurposed for GPIO.Flash
IO36FSPICLKMay be connected to internal flash or used for high-speed SPI; not intended for general GPIO use.Flash
IO35FSPIDUsed by internal flash/PSRAM on some ESP32-S2 variants; avoid using as GPIO to prevent conflicts.Flash
IO34SPIWPConnected to SPI flash (write-protect/data line); not recommended for other use.Flash
IO33SPIHDConnected to SPI flash (hold/data line); not available for general-purpose use.Flash
IO20USB_D+Dedicated to USB interface; repurposing as GPIO may disrupt USB connectivity.USB
IO19USB_D-Used for USB communication; using this pin as general GPIO can interfere with USB functionality.USB
These are recommendations, not hard rules - with the right pull-ups, timing and boot-state awareness most pins can be made to work. When in doubt, start green.
Pinout notes The Espressif ESP32-S2-DevKitC-1 pinout brings out 44 pins at a 2.54 mm pitch - 36 usable GPIO alongside the 3V3 , 5V and GND power rails. For peripherals, I²C…

The Espressif ESP32-S2-DevKitC-1 pinout brings out 44 pins at a 2.54 mm pitch - 36 usable GPIO alongside the 3V3, 5V and GND power rails.

For peripherals, I²C is mapped to SDA on GPIO8 and SCL on GPIO9; the SPI bus (MOSI, MISO, SCK, SS) is broken out in full; TX/RX on GPIO43 and GPIO44 cover serial logging and flashing.

On the analog side there are 20 ADC-capable pins for sensors and battery monitoring, PWM on 35 pins, 14 capacitive-touch inputs and 2 true DAC outputs.

If you want zero surprises, IO4, IO5, IO6, IO7 and 9 more are free of any such role - the safest first picks. 9 of the exposed pins carry boot-time or system duties on the ESP32-S2 (IO15, IO16, IO46 and 6 more).

Getting started

flash your first firmware in ~2 minutes
Tool:
1
Connect over USB
Native USB - shows up as a port right away, no driver needed. Not detected? Hold BOOT while plugging in.
2
Match & flash
Set the Tools options shown, then click Upload.
3
Verify it runs
The onboard LED on GPIO4 blinks - swap the pin if your board's LED differs.
Set these in Tools · leave everything else at default
Arduino IDE 2.x — Tools Copy
Board: "ESP32S2 Dev Module"
USB CDC On Boot: "Enabled"
Flash Size: "8MB (64Mb)"
Flash Mode: "DIO"
PSRAM: "QSPI PSRAM"
Partition Scheme: "8M with spiffs (3MB APP / 1.5MB SPIFFS)" (default)
Upload Speed: "921600"
▸ every other Tools option — leave at default
Board: ESP32S2 Dev Module
USB CDC On Boot: Enabled
Flash Size: 8MB (64Mb)
Flash Mode: DIO
PSRAM: QSPI PSRAM
Partition Scheme: 8M with spiffs (3MB APP / 1.5MB SPIFFS)
Upload Speed: 921600
Find it: Tools ▸ Board ▸ ESP32 Arduino ▸ ESP32S2 Dev Module
blink.ino Copy
// blink the onboard LED
void setup() {
  pinMode(4, OUTPUT);
}
void loop() {
  digitalWrite(4, HIGH); delay(500);
  digitalWrite(4, LOW);  delay(500);
}
board to selectesp32-s2-saola-1⧉ copy
platformio.ini Copy
[env:esp32-s2-devkitc-1]
platform = espressif32
board = esp32-s2-saola-1
framework = arduino
monitor_speed = 115200
upload_speed = 921600
board_build.arduino.memory_type = qio_qspi
build_flags = -DBOARD_HAS_PSRAM
Find it: PlatformIO Home ▸ Boards, search esp32-s2-saola-1 — or type it after board =.
board to selectesp32-s2-saola-1⧉ copy
device.yaml Copy
esp32:
  board: esp32-s2-saola-1
  variant: esp32_s2_devkitc_1
  framework:
    type: esp-idf
psram:
  mode: quad
  speed: 80MHz

# blink - GPIO4
output:
  - platform: gpio
    pin: 4
    id: led_out
light:
  - platform: binary
    name: "LED"
    output: led_out
Find it: search ESPHome's board list for esp32-s2-saola-1 (same ids as PlatformIO).
esptool doesn't pick board settings — a prebuilt .bin already has them baked in. This is just the raw flash command.
terminal Copy
esptool.py --chip esp32s2 --port /dev/ttyACM0 \
  --baud 921600 write_flash 0x0 firmware.bin
--port = your /dev/tty* (macOS/Linux) or COMx (Windows).
Build details: sketch space 2097152 B · data 327680 B · DIO

Specifications

ESP32-S2 · 62.74 × 25.4 mm
Compute
MCU
ESP32-S2
Clock
240 MHz
SRAM · Flash
320 KB · 8MB · 2MB (QSPI) PSRAM
Radio
Wi-Fi
802.11 b/g/n 2.4 GHz
Bluetooth
-
Antenna
PCB
I/O
GPIO · ADC
36 · 20
UART · I²C · SPI
2 · 1 · 4
PWM
8 channels
Power
USB
Micro-USB (UART) · Micro-USB (native)
Serial
-
Boot address
0x1000
Flashing
Upload · OTA
esptool_py · esp_ota
Flash · Boot mode
DIO · DIO
Sketch · Data
2 MB · 320 KB
25.4 mm62.74 mm
62.74 × 25.4 mm · pin pitch 2.54 mm
The Espressif ESP32-S2-DevKitC-1 uses esptool_py for firmware uploads, esp_ota for over-the-air (OTA) updates. Flash mode is DIO with DIO boot mode. The maximum sketch size is 2 MB with 320 KB available for data.

About this board

At its core is the ESP32-S2 - a single-core Xtensa with native USB-OTG and no Bluetooth.

Expect to pay about $8.00 - less than the ~$20 most ESP32-S2 boards go for.

36 GPIO are broken out - more than most ESP32-S2 boards, so the pin budget is rarely the constraint.

Onboard you'll find 2MB (QSPI) PSRAM, an addressable RGB LED (GPIO18) and Boot/Reset buttons.

  • 2 MB PSRAM (ESP32-S2-SOLO-2 module, N8R2 variant)
  • Sold in 8 MB and 4 MB flash variants
  • External u.FL antenna connector on -U variants

Where to buy

prices are typical street prices
Espressif ESP32-S2-DevKitC-1
Espressif ESP32-S2-DevKitC-1
$8.00per unit, typical
As an Amazon Associate, ESPboards earns from qualifying purchases.

Resources

Similar boards