Specifications

The detail that comparison charts flatten: what "USB" actually means on each part, real bus clocks, RMT channel architecture, deep-sleep behaviour, and which security ticks are the same tick.

Full comparison

VariantISACoresClockSRAMRadiosGPIOUSBSleepStatusFrom
ESP32Xtensa2 + LP240 MHz520 KBWi-Fi 4 + BT Classic/LE34~10 µAProduction$1.50
ESP32-S2Xtensa1 + LP240 MHz320 KB + 16 KB RTCWi-Fi 4 only43OTG Full Speed~5–7 µAProduction$1.25
ESP32-S3Xtensa2 + LP240 MHz512 KB + 16 KB RTCWi-Fi 4 + BLE 545OTG Full Speed~7 µAProduction$1.85
ESP32-S31RISC-V2 + LP320 MHz512 KBWi-Fi 6 + BT 5.4 + 802.15.4 + 1 GbE60OTGNot yet publishedProduction$3.80
ESP32-C2RISC-V1120 MHz272 KBWi-Fi 4 + BLE 514Serial/JTAG<8 µAProduction$1.00
ESP32-C3RISC-V1160 MHz400 KBWi-Fi 4 + BLE 522Serial/JTAG~5 µAProduction$1.00
ESP32-C5RISC-V1 + LP240 MHz384 KB + 16 KB LPDual-band Wi-Fi 6 + BLE 5 + 802.15.429Serial/JTAG~12 µAProduction$2.50
ESP32-C6RISC-V1 + LP160 MHz512 KB + 16 KB LPWi-Fi 6 + BLE 5.3 + 802.15.430Serial/JTAG7 µAProduction$1.85
ESP32-C61RISC-V1 + LP160 MHz320 KB + 4 KB LPWi-Fi 6 + BLE 530Serial/JTAG~10 µAProduction$1.46
ESP32-H2RISC-V1 + LP96 MHz320 KB + 4 KB LPBLE 5 + 802.15.4 (no Wi-Fi)19Serial/JTAG7 µAProduction$1.39
ESP32-H21RISC-V1 + LP96 MHz320 KB + 128 KB ROMBLE 5 + 802.15.4 (no Wi-Fi)19Serial/JTAG5 µASampling
ESP32-H4RISC-V2 + LP96 MHz384 KB (expandable PSRAM)BLE 5.4 + 802.15.4 (no Wi-Fi)35OTG~7 µASampling
ESP32-P4RISC-V2 + LP400 MHz768 KB L2MEM + 32 KB LPNone (wired / companion radio)55OTG High Speed~25 µAProduction$4.00
ESP32-E22RISC-V2 + LP500 MHz1 MBTri-band Wi-Fi 6E + BT Classic/LE 5.430HostHost-managedCo-processor

Cores counts high-performance cores; “+ LP” means a separate low-power core or ULP coprocessor is also present. USB distinguishes real OTG (which can implement USB device classes) from a Serial/JTAG peripheral (which cannot) — see Specifications. From is Espressif's published reference sample price for the cheapest orderable part number in the series and excludes flash and PSRAM options. Sleep currents are typical values, some estimated rather than characterised.

CPU and memory architecture

Instruction sets

Three CPU architectures appear across the family, and the split is chronological rather than functional.

ISAChipsNotes
Xtensa LX6ESP32Dual-core, the original
Xtensa LX7ESP32-S2, ESP32-S3S3 adds 128-bit SIMD vector instructions
RISC-VC2, C3, C5, C6, C61, H2, H21, H4, P4, E22, S31Everything designed after the S3

For application code written against ESP-IDF, the ISA is mostly invisible. It matters in four places: hand-written assembly and intrinsics, third-party runtime availability (RISC-V generally has broader support in newer toolchains), debugging with external probes, and the fact that the RISC-V parts can carry small low-power RISC-V coprocessors that share the same toolchain as the main core.

Cores and coprocessors

The distinction between an ULP coprocessor and an LP core is worth understanding because it determines what your device can do while it is asleep.

ChipMain coresLow-power capabilityCan execute code in deep sleep?
ESP322 × Xtensa LX6 @ 240 MHzULP FSM @ 8 MHzLimited — FSM only, awkward to program
ESP32-S21 × Xtensa LX7 @ 240 MHzULP RISC-V + ULP FSM (not concurrent)Yes — RISC-V ULP is C-programmable
ESP32-S32 × Xtensa LX7 @ 240 MHzULP RISC-V + FSM @ 17.5 MHzYes
ESP32-S312 × RISC-V @ 320 MHz (MMU)LP RISC-V core @ 40 MHzYes
ESP32-C21 × RISC-V @ 120 MHzNoneNo — RTC memory retention only
ESP32-C31 × RISC-V @ 160 MHzNoneNo — RTC memory retention only
ESP32-C51 × RISC-V @ 240 MHzLP RISC-V core @ 20–48 MHzYes
ESP32-C61 × RISC-V @ 160 MHzLP RISC-V core @ 20 MHzYes
ESP32-C611 × RISC-V @ 160 MHzLP peripherals, 4 KB LP SRAMNo — storage and simple peripherals only
ESP32-H21 × RISC-V @ 96 MHzLP peripherals, 4 KB LP SRAMNo
ESP32-H211 × RISC-V @ 96 MHzLP peripherals, 4 KB LP SRAMNo
ESP32-H42 × RISC-V @ 96 MHzDedicated LP domainYes
ESP32-P42 × RISC-V @ 400 MHzLP RISC-V core @ 40 MHz, 32 KB LP SRAMYes
ESP32-E222 × RISC-V @ 500 MHzHost-managedN/A — co-processor

SRAM and external memory

On-chip SRAM is the number that constrains you, and the headline figure always overstates what you get: the Wi-Fi and Bluetooth stacks consume a substantial slice, and on several parts the memory is split into regions with different access rules.

ChipOn-chip SRAMMax in-package PSRAMMax external PSRAMMax flash
ESP32520 KB2 MB8 MB4 MB in-package / 16 MB ext
ESP32-S2320 KB + 16 KB RTC2 MBVery large4 MB / large
ESP32-S3512 KB + 16 KB RTC16 MB32 MB16 MB / 32 MB
ESP32-S31512 KB— (external only)64 MB @ 250 MHz 8-bit DDR64 MB Octal SPI
ESP32-C2272 KB8 MBExternal only, 16 MB
ESP32-C3400 KB8 MB4 MB / 16 MB
ESP32-C5384 KB + 16 KB LP8 MB32 MB4 MB / 32 MB
ESP32-C6512 KB + 16 KB LP— (external only)16 MB8 MB / 16 MB
ESP32-C61320 KB + 4 KB LP8 MB32 MB4 MB / 32 MB
ESP32-H2320 KB + 4 KB LP16 MB4 MB / 16 MB
ESP32-H21320 KB + 128 KB ROMExternalExternal SPI
ESP32-H4384 KB4 MB4 MBExternal
ESP32-P4768 KB L2 + 32 KB LP + 8 KB SPM32 MB64 MBExternal only, 64 MB
ESP32-E221 MBVia hostVia host

Two practical notes. PSRAM is not SRAM — it sits behind a cache over a serial bus, so access is slower and latency is less predictable; do not put interrupt-critical data there. And on some parts flash and PSRAM share a controller and contend for bandwidth; the S31 explicitly supports simultaneous access, which is a real advantage for display work.

Radios

Wi-Fi

ChipStandardBandsNotable
ESP32, S2, S3, C2, C3Wi-Fi 4 (802.11 b/g/n)2.4 GHzNo TWT, no OFDMA
ESP32-C6, C61, S31Wi-Fi 6 (802.11ax)2.4 GHzTWT, OFDMA, MU-MIMO; 20 MHz in ax mode
ESP32-C5Wi-Fi 6 (802.11ax)2.4 + 5 GHzBackward compatible to a/b/g/n/ac
ESP32-E22Wi-Fi 6E2.4 + 5 + 6 GHz160 MHz channels, 2×2 MU-MIMO, 1024-QAM, 2.4 Gbps
ESP32-H2, H21, H4, P4None

The Wi-Fi 6 benefit for IoT is Target Wake Time and OFDMA, not throughput. TWT lets a device negotiate long sleep windows with the access point instead of waking for every beacon; OFDMA lets the AP service many clients per transmission opportunity, which is what makes congested networks tolerable.

Bluetooth

ChipVersionLEClassic (BR/EDR)
ESP324.2YesYes
ESP32-S2NoNo
ESP32-S3, C2, C3, C5, C61, H2, H215 / 5.0YesNo
ESP32-C65.3 (+ Mesh)YesNo
ESP32-H45.4 (BT 6.0 certified)YesNo
ESP32-S315.4 (LE Audio, Mesh 1.1, Direction Finding)YesYes
ESP32-E225.4YesYes
ESP32-P4NoNo

Only three parts have Bluetooth Classic: the original ESP32, the S31 and the E22. If you need A2DP audio, HFP or SPP, those are your options. Everything else is LE only.

IEEE 802.15.4 — Thread and Zigbee

Present on: C5, C6, H2, H21, H4, S31. Absent from: ESP32, S2, S3, C2, C3, C61, P4, E22.

Having the radio is necessary but not sufficient. Thread and Zigbee are network layers above it, and Matter is an application layer above them. Espressif provides certified stacks via ESP-IDF and ESP-Matter; the C6 additionally holds Thread 1.4 interoperability certification.

Multi-radio coexistence

On parts with more than one radio, the radios generally time-slice rather than operate genuinely concurrently. Wi-Fi, Bluetooth and 802.15.4 all share the 2.4 GHz front end on the C5, C6 and S31. This is managed transparently by ESP-IDF’s coexistence layer, but it caps aggregate throughput and adds latency jitter. A device acting as both a Wi-Fi station and a Thread router will not achieve the datasheet figures for both simultaneously.

Peripheral detail

USB — three different things called USB

This is the most commonly misread row in any ESP32 comparison table.

ClassSpeedChipsCan implement USB device classes?
USB 2.0 High Speed OTG480 MbpsESP32-P4 (plus a separate FS OTG and a Serial/JTAG unit — three controllers)Yes
USB 2.0 Full Speed OTG12 MbpsESP32-S2, ESP32-S3, ESP32-H4, ESP32-S31Yes
USB Serial/JTAG only12 MbpsC2, C3, C5, C6, C61, H2, H21No — flashing and debugging only
NoneESP32 (original)No — needs an external UART bridge
Host-managedUSB 2.0ESP32-E22N/A

A USB Serial/JTAG peripheral is genuinely useful — it lets you flash and debug over a single USB cable with no CP2102 or CH340 on the board — but it is a fixed-function device. You cannot use it to present a HID keyboard, a mass-storage volume or a MIDI interface. If your product needs to be a USB device, you need OTG, which means an S2, S3, H4, S31 or P4.

UART

All parts share a 5 MBaud maximum on their general-purpose UART controllers, limited by the APB clock and internal division. Hardware flow control (RTS/CTS) is available on all general-purpose controllers. IrDA is supported on the ESP32, S2, S3, C3, C6 and P4. LP-UART, which operates on RTC clock sources at lower baud rates while the main core sleeps, is available on the C5, C6 and P4.

I2C

ModeSpeedSupport
Standard100 kbit/sAll parts
Fast400 kbit/sAll parts
Fast Mode Plus1 Mbit/sS3, C3, C5, C6, H2, P4
High Speed (3.4 Mbit/s)Not supported natively on any part
I3Cup to 12.5 MHzESP32-P4 only
LP-I2ClowC5, C6, P4

Slave mode is available on all general-purpose controllers except the ESP32-C2, which is master-only. If your design needs the ESP32 to be addressed by another controller over I2C, rule out the C2.

SPI

Controllers split into flash/PSRAM-dedicated (SPI0/SPI1) and general-purpose (SPI2/SPI3).

ChipGeneral-purpose SPI maxModes
ESP3280 MHz master / 40 MHz slaveSingle, Dual, Quad
ESP32-S2 / S380 MHzSingle, Dual, Quad; Octal (OPI) on S3’s SPI3
C2 / C3 / C5 / C6 / H260–80 MHz master (clock-routing dependent), 40 MHz slaveQuad on C3, C5, C6
ESP32-C6180 MHzQuad
ESP32-P480–100 MHzSingle, Dual, Quad, Octal, plus LP-SPI
ESP32-S31Octal SPI for external memory

These are hardware controller maximums. Achievable clocks depend on whether the pins are routed through the GPIO matrix or use direct IO muxing (the matrix costs you speed), plus PCB layout and pull-up choices.

I2S — audio

ChipControllersMax clockCapabilities
ESP322~40 MHzI2S, PCM, PDM TX/RX, parallel LCD/camera mode
ESP32-S2140 MHzI2S, PDM
ESP32-S3240 MHzI2S, enhanced PDM microphone RX
C2 / C3 / H2140 MHzI2S, PDM (PDM on C3/H2)
C5 / C6 / C61140 MHzI2S, PDM
ESP32-P4250 MHzTDM up to 16 channels, PDM
ESP32-S312Hardware Bluetooth audio synchronisation

RMT — the addressable-LED peripheral

RMT was designed for infrared remote control, but its flexible pulse timing made it the standard way to drive WS2812/NeoPixel strips, one-wire sensors like the DS18B20, and any software-defined precision timing.

ChipChannelsArchitectureDMA
ESP328Flexible — any channel TX or RXNo
ESP32-S24FlexibleNo
ESP32-S38Dedicated (4 TX + 4 RX)Yes — the only chip in the family
ESP32-C34Dedicated (2 TX + 2 RX)No
ESP32-C54DedicatedNo
ESP32-C64Dedicated (2 TX + 2 RX)No
ESP32-H24Dedicated (2 TX + 2 RX)No
ESP32-P48
ESP32-C2None
ESP32-C61None

Three things follow from this table:

  1. The C2 and C61 have no RMT at all. No hardware IR, no clean NeoPixel driving, no DS18B20 without bit-banging. This is the single most under-advertised limitation of those two parts.
  2. Only the S3 has RMT DMA. This decouples LED transmission from interrupt latency. On every other chip, a long addressable-LED chain can visibly glitch when the Wi-Fi radio delays an interrupt. If you are building anything with more than a short LED strip, this is a real argument for the S3.
  3. Memory block size is 64 bytes per channel on the ESP32 and S2, 48 bytes on the S3/C3/C6/H2 generation, which caps how many RMT symbols fit before the driver borrows from an adjacent channel.

Other notable peripherals

FeatureAvailable on
Ethernet MACESP32 (10/100), ESP32-P4 (10/100 RMII), ESP32-S31 (1000 Mbps)
CAN FDESP32-C5 (2×), ESP32-H4
TWAI / CAN 2.0ESP32, S2, S3, C3, C6 (2×), C61, H2, P4 (3×), S31
Capacitive touchESP32 (10), S2 (14), S3 (14), H4 (14), P4 (14), S31 (14)
True DACESP32 (2 × 8-bit), ESP32-S2 (2 × 8-bit) — nothing newer
MIPI-DSI / CSIESP32-P4 only
H.264 encoderESP32-P4 only
JPEG codecESP32-P4, ESP32-S31
PPA (2D graphics)ESP32-P4, ESP32-S31
SD/MMCESP32 (SDIO host+slave), S3 (2 slots), P4, S31
PARLIOC5, C6, H2, P4
PCIe 2.1ESP32-E22 only

Power and sleep

ChipDeep sleep (typical)Retention while asleep
ESP32-H215 µA4 KB LP SRAM
ESP32-C3~5 µASmall RTC region (<8 KB)
ESP32-S2~5–7 µA16 KB RTC SRAM + ULP
ESP32-S3~7 µA16 KB RTC SRAM + ULP
ESP32-C67 µA16 KB LP SRAM + LP core
ESP32-H27 µA4 KB LP SRAM
ESP32-H4~7 µA (est.)16 KB LP SRAM + LP core
ESP32-C2<8 µASmall RTC region
ESP32-C61~10 µA (est.)4 KB LP SRAM
ESP32~10 µA~8 KB RTC domain + ULP FSM
ESP32-C5~12 µA16 KB LP SRAM + LP core
ESP32-P4~25 µA32 KB LP SRAM + LP core
ESP32-E22Host-managed
ESP32-S31Not yet publishedExpected LP SRAM

The ESP32-H21’s on-chip DC-DC converter is worth singling out, because it improves the term that usually matters most for mesh devices: receive current, quoted at around 8.2 mA. A Thread router that keeps its receiver on to relay neighbours’ traffic spends most of its life in RX, where a 2 µA difference in deep sleep is irrelevant.

Security and cryptography

Hardware accelerator matrix

FeatureESP32S2S3C2C3C5C6C61H2H21H4P4E22S31
AES
SHA
RSA
TRNG
ECC✓*
HMAC
Digital Signature (RSA)
Digital Signature (ECDSA)
APM / TEE
Key Manager
DPA protection
ECC-based Secure Boot
RAM-based PUF
PSA CertifiedL1L2

Two ticks that are not the same tick

Similarly, “Digital Signature (ECDSA)” means a dedicated ECDSA_DS peripheral with the private key held in an eFuse block, inaccessible to software. That is verified on the C5, C61, H2, H4, P4 and S31. The C6, despite similar marketing language, has only the RSA-flavoured Digital Signature peripheral.

The C6 and the post-quantum wrinkle

The C6’s ECC accelerator covers NIST curves only, not Curve25519. Measured X25519 point multiplication takes about 121 ms whether the accelerator is on or off. That has a direct consequence for the hybrid post-quantum key exchange that both NIST and BSI guidance recommend: on a C6, the classical X25519 half of an X25519 + ML-KEM hybrid can cost more time than the entire ML-KEM-1024 encapsulation. A scheme chosen for regulatory alignment can end up slower than the post-quantum-only alternative it was meant to hedge.

No current embedded MCU accelerates ML-KEM or ML-DSA in hardware. Post-quantum cryptography on ESP32 is a software exercise, available through wolfSSL/wolfCrypt, liboqs and similar libraries. The P4 is the best platform for it on raw performance (400 MHz, 768 KB SRAM, DPA-resistant AES); the C6 is the best on security architecture (PSA L2, ESP-TEE); the S31 may supersede both once characterised.

Known advisory

Longevity commitments

Espressif publishes availability commitments, which matter for products with long service lives:

ChipCommitted available from
ESP322016-01-01
ESP32-S2, S3, C32020-01-01
ESP32-H22021-01-01
ESP32-C22022-01-01
ESP32-C62023-01-01
ESP32-C5, C61, P42025-01-01
ESP32-S31, H4, H21, E22Not yet published

Note that several original ESP32 part numbers are marked NRND (not recommended for new designs) even though the family as a whole is committed. Always check the specific part number, not just the chip family, and read the errata sheet for your silicon revision.