Espressif ESP32-S2-DevKitM-1

Compact official ESP32-S2 board with secure boot - great for secure IoT prototyping and embedded dev.

Micro-USB
Espressif ESP32-S2-DevKitM-1 board
54 × 25.4 mm
ESP32-S2
MCU
240MHz
clock
4MB
flash
320KB
SRAM
37· 20 ADC
GPIO
Wi-Fi
radio
On this page

Pinout

42 pins · 2.54 mm pitch
View:
Espressif ESP32-S2-DevKitM-1 pinout diagram
PinGPIOLabelsStatusCapabilitiesNotes
1-3V33.3Vpower-3.3V regulated output
20IO0strappingpwmBOOT button; RTC
31IO1A0T1safeadc · touch · pwmADC1_CH0; Touch1; RTC
42IO2A1T2safeadc · touch · pwmADC1_CH1; Touch2; RTC
53IO3A2T3safeadc · touch · pwmADC1_CH2; Touch3; RTC
64IO4A3T4safeadc · touch · pwmADC1_CH3; Touch4; RTC
75IO5A4T5safeadc · touch · pwmADC1_CH4; Touch5; RTC
86IO6A5T6safeadc · touch · pwmADC1_CH5; Touch6; RTC
97IO7A6T7safeadc · touch · pwmADC1_CH6; Touch7; RTC
108IO8A7T8SDAsafeadc · touch · i2c · pwmDefault I2C SDA; ADC1_CH7; Touch8
119IO9A8T9SCLstrappingadc · touch · i2c · pwmDefault I2C SCL; ADC1_CH8; Touch9; FSPIHD
1210IO10A9T10strappingadc · touch · pwmADC1_CH9; Touch10; FSPICS0
1311IO11A10T11strappingadc · touch · pwmADC2_CH0; Touch11; FSPID
1412IO12A11T12strappingadc · touch · pwmADC2_CH1; Touch12; FSPICLK
1513IO13A12T13strappingadc · touch · pwmADC2_CH2; Touch13; FSPIQ
1614IO14A13T14strappingadc · touch · pwmADC2_CH3; Touch14; FSPIWP
1715IO15A14strappingadc · pwmADC2_CH4; U0RTS; XTAL_32K_P
1816IO16A15strappingadc · pwmADC2_CH5; U0CTS; XTAL_32K_N
1917IO17A16DAC1safeadc · dac · pwmDAC1; ADC2_CH6; U1TXD
20-5Vpower-5V input (from USB) / output
21-GNDground-Ground
22-GNDground-Ground
23-RSTENcontrol-Chip reset (active low)
2446IO46strapping-Input-only GPIO
2545IO45strappingpwmGeneral-purpose GPIO
2644IO44RXuartuart · pwmUART0 RX (default Serial); CLK_OUT2
2743IO43TXuartuart · pwmUART0 TX (default Serial); CLK_OUT1
2842IO42strappingpwmJTAG MTMS
2941IO41strappingpwmJTAG MTDI; CLK_OUT1
3040IO40strappingpwmJTAG MTDO; CLK_OUT2
3139IO39strappingpwmJTAG MTCK; CLK_OUT3
3238IO38strappingpwmFSPIWP
3337IO37MISOstrappingspi · pwmDefault SPI MISO; FSPIQ; SPIDQS
3436IO36SCKstrappingspi · pwmDefault SPI SCK; FSPICLK; SPIIO7
3535IO35MOSIstrappingspi · pwmDefault SPI MOSI; FSPID; SPIIO6
3634IO34SSstrappingspi · pwmDefault SPI SS; FSPICS0; SPIIO5
3733IO33strappingpwmFSPIHD; SPIIO4
3826IO26strappingpwmGeneral-purpose GPIO
3921IO21safepwmGeneral-purpose GPIO; RTC
4020IO20A19uartadc · pwmNative USB D+; ADC2_CH9; U1CTS; RTC
4119IO19A18uartadc · pwmNative USB D-; ADC2_CH8; U1RTS; RTC
4218IO18A17DAC2safeadc · dac · pwmOnboard RGB LED; DAC2; ADC2_CH7; U1RXD

Start with these

13 pins with no boot or system involvement
IO1A0IO2A1IO3A2IO4A3IO5A4IO6A5IO7A6IO8A7IO17A16IO44RXIO43TXIO21IO18A17

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
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
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
IO45GPIO45Must be set correctly at boot (usually low for 3.3 V); improper level can cause boot failure or flash malfunction.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

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
IO26SPICS1Used to connect external PSRAM (or second SPI memory); should be avoided as GPIO if such memory is present.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 Across 42 pins (2.54 mm pitch), the Espressif ESP32-S2-DevKitM-1 exposes 37 GPIO plus 3V3 , 5V and GND for power. For peripherals, I²C is mapped to SDA on…

Across 42 pins (2.54 mm pitch), the Espressif ESP32-S2-DevKitM-1 exposes 37 GPIO plus 3V3, 5V and GND for power.

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 36 pins, 14 capacitive-touch inputs and 2 true DAC outputs.

If you want zero surprises, IO1, IO2, IO3, IO4 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 (IO0, IO15, IO16 and 6 more).

Getting started

flash your first firmware in ~2 minutes
Tool:
1
Connect over USB
Serial chip: CP2102N. Not detected? Hold BOOT while plugging in.
2
Flash with your tool
Arduino IDE, PlatformIO, ESPHome or esptool - copy the settings on the right.
3
Verify it runs
The blink example uses GPIO1 - swap for your board's LED pin if different.
Tools → Board settings Copy
Board:            Esp32 S2 Devkitm 1
Flash Size:       4MB · DIO
Upload Speed:     921600

// blink
pinMode(1, OUTPUT);
digitalWrite(1, LOW);   // on (often inverted)
platformio.ini Copy
[env:esp32-s2-devkitm-1]
platform = espressif32
board = esp32-s2-saola-1
framework = arduino
monitor_speed = 115200
upload_speed = 921600
device.yaml Copy
esp32:
  board: esp32-s2-saola-1
  variant: esp32_s2_devkitm_1
  framework:
    type: esp-idf

# blink - GPIO1
output:
  - platform: gpio
    pin: 1
    id: led_out
light:
  - platform: binary
    name: "LED"
    output: led_out
shell Copy
esptool.py --chip esp32s2 --port /dev/ttyACM0 \
  write_flash 0x0 firmware.bin
Build details: sketch space 2097152 B · data 327680 B · DIO

Specifications

ESP32-S2 · 54 × 25.4 mm
Compute
MCU
ESP32-S2
Clock
240 MHz
SRAM · Flash
320 KB · 4MB
Radio
Wi-Fi
802.11 b/g/n 2.4 GHz
Bluetooth
-
Antenna
PCB
I/O
GPIO · ADC
37 · 20
UART · I²C · SPI
2 · 1 · 4
PWM
8 channels
Power
USB
Micro-USB
Serial
CP2102N
Boot address
0x1000
Flashing
Upload · OTA
esptool_py · esp_ota
Flash · Boot mode
DIO · DIO
Sketch · Data
2 MB · 320 KB
25.4 mm54 mm
54 × 25.4 mm · pin pitch 2.54 mm
The Espressif ESP32-S2-DevKitM-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.

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

Onboard you'll find an addressable RGB LED (GPIO18) and Boot/Reset buttons.

Where to buy

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

Resources

Similar boards