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
3238IO38safepwmFSPIWP
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

14 pins with no boot or system involvement
IO1A0IO2A1IO3A2IO4A3IO5A4IO6A5IO7A6IO8A7IO17A16IO44RXIO43TXIO38IO21IO18A17

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
IO9FSPIHDIO MUX pin of the general-purpose SPI2 (FSPI) bus, not of the in-package flash - that sits on GPIO26-32. The datasheet does not restrict it, so it is only taken if your board wires flash, an SD card or a display to FSPI.Other
IO10FSPICS0IO MUX pin of the general-purpose SPI2 (FSPI) bus, not of the in-package flash - that sits on GPIO26-32. The datasheet does not restrict it, so it is only taken if your board wires flash, an SD card or a display to FSPI.Other
IO11FSPIDIO MUX pin of the general-purpose SPI2 (FSPI) bus, not of the in-package flash - that sits on GPIO26-32. The datasheet does not restrict it, so it is only taken if your board wires flash, an SD card or a display to FSPI.Other
IO12FSPICLKIO MUX pin of the general-purpose SPI2 (FSPI) bus, not of the in-package flash - that sits on GPIO26-32. The datasheet does not restrict it, so it is only taken if your board wires flash, an SD card or a display to FSPI.Other
IO13FSPIQIO MUX pin of the general-purpose SPI2 (FSPI) bus, not of the in-package flash - that sits on GPIO26-32. The datasheet does not restrict it, so it is only taken if your board wires flash, an SD card or a display to FSPI.Other
IO14FSPIWPIO MUX pin of the general-purpose SPI2 (FSPI) bus, not of the in-package flash - that sits on GPIO26-32. The datasheet does not restrict it, so it is only taken if your board wires flash, an SD card or a display to FSPI.Other
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
IO37SPIDQS (GPIO37)The datasheet keeps GPIO33-37 for "the higher 4 bits data line interface and DQS interface for the SPI0/1 interface in 8-line SPI mode, and can be GPIO pins if the chip is not connected to flash or PSRAM in 8-line SPI mode". Quad-SPI parts leave it free.Flash
IO36SPIIO7 (GPIO36)The datasheet keeps GPIO33-37 for "the higher 4 bits data line interface and DQS interface for the SPI0/1 interface in 8-line SPI mode, and can be GPIO pins if the chip is not connected to flash or PSRAM in 8-line SPI mode". Quad-SPI parts leave it free.Flash
IO35SPIIO6 (GPIO35)The datasheet keeps GPIO33-37 for "the higher 4 bits data line interface and DQS interface for the SPI0/1 interface in 8-line SPI mode, and can be GPIO pins if the chip is not connected to flash or PSRAM in 8-line SPI mode". Quad-SPI parts leave it free.Flash
IO34SPIIO5 (GPIO34)The datasheet keeps GPIO33-37 for "the higher 4 bits data line interface and DQS interface for the SPI0/1 interface in 8-line SPI mode, and can be GPIO pins if the chip is not connected to flash or PSRAM in 8-line SPI mode". Quad-SPI parts leave it free.Flash
IO33SPIIO4 (GPIO33)The datasheet keeps GPIO33-37 for "the higher 4 bits data line interface and DQS interface for the SPI0/1 interface in 8-line SPI mode, and can be GPIO pins if the chip is not connected to flash or PSRAM in 8-line SPI mode". Quad-SPI parts leave it free.Flash
IO26SPICS1Part of the SPI0/1 bus that runs the in-package flash and PSRAM, listed by the datasheet as "already allocated or not recommended for use". Modules keep these lines internal, so the pin is not available as GPIO.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 GPIO8…

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 10 more are free of any such role - the safest first picks. 15 of the exposed pins carry boot-time or system duties on the ESP32-S2 (IO0, IO9, IO10 and 12 more).

Getting started

flash your first firmware in ~2 minutes
Tool:
1
Connect over USB
Install your USB-serial driver (CH340 / CP210x) if no port appears. Not detected? Hold BOOT while plugging in.
2
Match & flash
Set the Tools options shown, then click Upload.
3
Verify it runs
GPIO1 toggles - wire an LED and resistor to it, or change the pin to your board's own LED.
Set these in Tools · leave everything else at default
Arduino IDE 2.x - Tools Copy
Board: "ESP32S2 Dev Module"
Flash Size: "4MB (32Mb)"
Flash Mode: "DIO"
Partition Scheme: "Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS)" (default)
Upload Speed: "921600"
▸ every other Tools option - leave at default
Board: ESP32S2 Dev Module
Flash Size: 4MB (32Mb)
Flash Mode: DIO
Partition Scheme: Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS)
Upload Speed: 921600
Find it: Tools ▸ Board ▸ ESP32 Arduino ▸ ESP32S2 Dev Module
blink.ino Copy
// toggle GPIO1 - wire an LED and resistor to it
void setup() {
  pinMode(1, OUTPUT);
}
void loop() {
  digitalWrite(1, HIGH); delay(500);
  digitalWrite(1, LOW);  delay(500);
}
board to selectesp32-s2-saola-1⧉ copy
platformio.ini Copy
[env:esp32-s2-devkitm-1]
platform = espressif32
board = esp32-s2-saola-1
framework = arduino
monitor_speed = 115200
upload_speed = 921600
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: esp32s2
  framework:
    type: esp-idf

# blink - GPIO1
output:
  - platform: gpio
    pin: 1
    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 0x1000 firmware.bin
--port = your /dev/tty* (macOS/Linux) or COMx (Windows).
Build details: sketch space 2097152 B · data 327680 B · DIO

Specifications

ESP32-S2 · 54 × 25.4 mm · vs other ESP32 chips →
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 · 2 · 2
PWM
8 channels
Power
USB
Micro-USB
Serial
CP2102N
Boot address
0x1000
Electrical
Input
5V USB
Consumption
-
Regulator
SGM2212
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