ESP32-S3

The ESP32-S3 is what you'd build if you took the original ESP32 and modernized everything: dual Xtensa LX7 cores at 240 MHz, native USB-OTG, WiFi + BLE 5, AI vector instructions, more PSRAM, more GPIOs. For most new CONDUYT projects, S3 is the right ESP-family pick.

Specs

PropertyValue
MCUXtensa LX7 dual-core, 240 MHz
Flash4–32 MB (module-dependent)
RAM512 KB SRAM
PSRAMup to 32 MB
GPIO45 user pins (some reserved)
ADCADC1 (GPIO 1–10), ADC2 (11–20)
PWMLEDC routable to any output GPIO
I2C2 buses
SPI4 user buses (one reserved for flash/PSRAM)
UART3 ports
WiFi802.11 b/g/n
BLE5.0, BLE Mesh
Native USBYes — CDC, JTAG, MSC, HID
OTASupported

Flashing

Same flow as the rest of the ESP family. USB-CDC native on most dev-kits — plug in and the Playground handles it via esp-web-tools. After first flash, OTA over WiFi is the easy path.

Notes

  • The S3 is BLE 5.0 (not 4.x like the original ESP32). LE Audio and 2M PHY are supported in firmware.
  • Dual-core means CONDUYT polling can live on core 1 while WiFi/IP runs on core 0. The Arduino core defaults to running loop() on core 1, which is what you want.
  • PSRAM-equipped variants transparently spill large allocations off-chip. For module buffers (NeoPixel, OLED bitmaps) this means much higher per-module pixel/byte budgets than non-PSRAM ESP32s.

Compile flag

[env:esp32s3]
platform = espressif32
board = esp32-s3-devkitc-1
framework = arduino