Skip to content

ESP32 SoC Family Hardware Comparison

Source Reference: Official Espressif Technical Reference Manuals & Datasheets (ESP32, ESP32-S2, ESP32-S3, ESP32-C3, ESP32-C6).

Feature ESP32 (Original) ESP32-S2 ESP32-S3 ESP32-C3 ESP32-C6
CPU Architecture Xtensa LX6 (Dual-Core) Xtensa LX7 (Single-Core) Xtensa LX7 (Dual-Core + AI Vector) 32-bit RISC-V (Single-Core) 32-bit RISC-V (HP Core + LP Core)
Max CPU Clock 240 MHz 240 MHz 240 MHz 160 MHz 160 MHz (HP) / 20 MHz (LP)
Internal SRAM 520 KB 320 KB 512 KB 400 KB 512 KB (HP) + 16 KB (LP)
Wi-Fi Standard 802.11 b/g/n (2.4 GHz) 802.11 b/g/n (2.4 GHz) 802.11 b/g/n (2.4 GHz) 802.11 b/g/n (2.4 GHz) Wi-Fi 6 (802.11ax, 2.4 GHz)
Bluetooth / 802.15.4 BT 4.2 BR/EDR + BLE None BLE 5.0 (Long Range + 2 Mbps) BLE 5.0 BLE 5.3 + Zigbee 3.0 / Thread (802.15.4)
Native USB Controller No (Requires external UART bridge) Yes (USB OTG 1.1) Yes (USB OTG 1.1 + Serial/JTAG) USB Serial/JTAG Controller USB Serial/JTAG Controller
Total SoC GPIO Pads 34 pads 43 pads 45 pads 22 pads 30 pads (QFN40) / 22 pads (QFN32)
Usable GPIOs (Std Module) ~22 I/O + 4 Input-Only (GPIO 6–11 used by Flash) Up to 36 (GPIO 46 is Input-Only; 26–32 used by Flash) Up to 36 (GPIO 26–32 used by Flash/PSRAM) Up to 16 (GPIO 12–17 used by Flash) Up to 23 (GPIO 24–30 used by Flash)

Hardware Native USB D- / D+ Pins (Direct Flashing & JTAG Without CH340/CP2102)

When routing a custom PCB with native USB support, connect the USB Type-C D- and D+ differential pair directly to these pins (add 22 Ω series damping resistors only if required by specific hardware design guidelines, though S3/C3/C6 integrate internal series termination):

  • ESP32-S2 / ESP32-S3: GPIO 19 (USB_D-), GPIO 20 (USB_D+)
  • ESP32-C3: GPIO 18 (USB_D-), GPIO 19 (USB_D+)
  • ESP32-C6: GPIO 12 (USB_D-), GPIO 13 (USB_D+)

⚠️ Hardware Design Note for Native USB: On ESP32-S3, C3, and C6, the internal USB Serial/JTAG controller enumerates automatically as a CDC-ACM serial port and a JTAG debug probe—allowing step-by-step OpenOCD/GDB debugging over a single USB cable without an external FT2232H or ESP-Prog adapter. Avoid reconfiguring the USB D-/D+ pins as general-purpose GPIOs in firmware if you rely on USB DFU/Serial re-flashing!