ESP32-S2

The ESP32-S2 is the single-core sibling of the original ESP32: same Xtensa LX7 architecture but only one core, no Bluetooth, and native USB (no on-board USB-serial bridge needed). 43 GPIOs and a built-in temperature sensor make it a solid choice when you need lots of pins and WiFi but don't need BLE.

Specs

PropertyValue
MCUXtensa LX7 single-core, 240 MHz
Flash4 MB (varies by module)
RAM320 KB SRAM
PSRAMoptional 2 MB
GPIO43 user pins (some reserved for strap / flash)
ADCADC1 (GPIO 1–10), ADC2 (11–20)
PWMLEDC routable to any output GPIO
I2C2 buses
SPI3 user buses (FSPI / HSPI / VSPI; one pair reserved for flash)
UART2 user UARTs
WiFi802.11 b/g/n
BLENo (S2 is WiFi-only)
Native USBYes — CDC, JTAG, MSC, etc.
OTASupported

Flashing

USB-OTG native or via UART. The Playground flashes via esp-web-tools, same flow as ESP32. After first flash, OTA over WiFi works.

Notes

  • No Bluetooth. If you need wireless pairing, look at the ESP32, ESP32-S3, or ESP32-C3 — all of those have BLE.
  • Single core means there's no second core for the WiFi/IP stack to live on. Heavy CONDUYT polling + WiFi traffic share the core. Use FreeRTOS task priorities.
  • GPIO 26 / 27 / 32 / 33 are commonly the strapping/flash pins on common modules — check your specific dev-board pinout before assuming a pin is free.

Compile flag

[env:esp32s2]
platform = espressif32
board = esp32-s2-saola-1
framework = arduino