Which ESP32 should you choose?
Which ESP32 to pick: cores, radios, memory and AI features of the classic ESP32, S2, S3, C3, C5, C6, H2 and P4, with a comparison table.
Photo: Thorium / Unsplash
After reading this article you will be able to:
- Match a project's radio needs (Wi-Fi 6, 5 GHz, Bluetooth, Thread or Zigbee) to the right ESP32 variant
- Compare cores, on-chip memory and AI features across the family using the datasheet figures
- Tell when a newer part is worth it and when the classic ESP32 or a C3 is enough
On this page
Pick the ESP32 by radio first, then by compute. If the device only needs Wi-Fi and Bluetooth LE, an ESP32-C3 is the simple default; if it needs Thread or Zigbee as well, look at the ESP32-C6 or, for dual-band Wi-Fi 6, the ESP32-C5; a battery-powered Thread or Zigbee sensor with no Wi-Fi fits the ESP32-H2. Choose the ESP32-S3 when the job involves a camera, a display, audio or on-device machine learning, and the ESP32-P4 when it needs much more processing than any wireless ESP32 offers, accepting that the P4 has no radio of its own.
The name “ESP32” now covers a family of systems on chip from Espressif that share tools (ESP-IDF, the Arduino core) but differ in processor architecture, radios and memory. The original ESP32 is still sold and still common, which is why so many tutorials assume it. This guide compares the main variants using Espressif’s own datasheets and says which one fits which job. If you are still deciding whether a microcontroller is the right class of device at all, start with ESP32 vs Arduino vs Raspberry Pi.
What separates one ESP32 from another?
Three things matter most, in this order.
Radios. The family spans Wi-Fi 4 (802.11b/g/n) and Wi-Fi 6 (802.11ax), 2.4 GHz only or 2.4 plus 5 GHz, Bluetooth LE with or without Bluetooth Classic, and IEEE 802.15.4, the radio under Thread and Zigbee. The radio decides which ecosystems the device can join, so it is the first filter.
Cores. The older parts use Tensilica Xtensa cores (LX6 on the classic ESP32, LX7 on the S2 and S3). Every newer part uses RISC-V. For most application code the difference is invisible, because ESP-IDF and the Arduino core abstract it, but it matters for low-level optimization and for the vector instructions on the S3.
Memory and acceleration. On-chip SRAM ranges from 320 KB to 768 KB, and some parts take external PSRAM for camera frames, display buffers or neural network activations. Only the S3 and P4 have instruction extensions aimed at AI and signal processing.
How do the main variants compare?
The figures below come from each chip’s datasheet: ESP32, ESP32-S2, ESP32-S3, ESP32-C3, ESP32-C5, ESP32-C6, ESP32-H2 and ESP32-P4 (the P4 datasheet is still marked preliminary).
| Chip | CPU | On-chip SRAM | Radios | Stands out for |
|---|---|---|---|---|
| ESP32 | 2× Xtensa LX6, 240 MHz | 520 KB | Wi-Fi 4, Bluetooth Classic + LE 4.2 | Classic Bluetooth, the largest code base |
| ESP32-S2 | 1× Xtensa LX7, 240 MHz | 320 KB | Wi-Fi 4 only | USB OTG, no Bluetooth |
| ESP32-S3 | 2× Xtensa LX7, 240 MHz | 512 KB | Wi-Fi 4, Bluetooth 5 (LE) | Vector instructions, camera, PSRAM |
| ESP32-C3 | 1× RISC-V, 160 MHz | 400 KB | Wi-Fi 4, Bluetooth 5 (LE) | Low cost, simple connected devices |
| ESP32-C5 | 1× RISC-V, 240 MHz, plus LP core | 384 KB | Wi-Fi 6 at 2.4 and 5 GHz, Bluetooth LE, 802.15.4 | The dual-band part |
| ESP32-C6 | 1× RISC-V, 160 MHz, plus LP core | 512 KB | Wi-Fi 6 at 2.4 GHz, Bluetooth LE, 802.15.4 | Wi-Fi plus Thread or Zigbee |
| ESP32-H2 | 1× RISC-V, 96 MHz | 320 KB | Bluetooth LE, 802.15.4, no Wi-Fi | Thread and Zigbee end devices |
| ESP32-P4 | 2× RISC-V, 400 MHz, plus LP core | 768 KB | None | Displays, cameras, heavy compute |
Two details the table hides. The ESP32-S3 is sold in versions with PSRAM inside the package, up to 16 MB in the ESP32-S3R16V, which is what makes camera and voice projects practical on it. The ESP32-C6 datasheet lists Thread 1.3 support, while the C5 and H2 datasheets list Thread 1.4.
Which one fits which job?
A Wi-Fi sensor or relay on mains power. The ESP32-C3 has enough memory and speed for MQTT, TLS and a web configuration page, and its single RISC-V core keeps things simple. The classic ESP32 does the same job and wins only when you need its second core or existing code written for it.
Anything that must talk to Bluetooth Classic devices. Audio sinks, older serial-over-Bluetooth gadgets and some game controllers need BR/EDR, which in this table only the classic ESP32 supports.
A device that joins a Thread or Zigbee network. The ESP32-H2 is the battery-friendly choice because it has no Wi-Fi to power. The ESP32-C6 and C5 combine Wi-Fi with 802.15.4 on one chip, sharing one antenna by time-division coexistence, which is useful for bridges and for Matter devices that may sit on either network. For a Thread border router, which must serve both networks continuously, Espressif’s own reference board uses two chips: an ESP32-S3 for Wi-Fi and an ESP32-H2 as the 802.15.4 radio.
A crowded 2.4 GHz environment or a 5 GHz-only access point. The ESP32-C5 is the only part in the table with a 5 GHz radio. Both the C5 and C6 support Wi-Fi 6 target wake time (TWT), which lets a device negotiate when it wakes to receive traffic and helps battery designs that must stay associated.
Cameras, displays, voice and machine learning. The ESP32-S3 adds 128-bit vector operations that its datasheet describes as aimed at “AI and DSP” algorithms, plus a camera interface and USB OTG. ESP-NN, the kernel library behind Espressif’s port of TensorFlow Lite Micro, ships assembly versions written for those vector instructions, so the S3 is the usual starting point for TinyML on this family.
An HMI panel or a vision device. The ESP32-P4 runs at up to 400 MHz with MIPI camera and display interfaces and an H.264 encoder, which Espressif’s ESP32-P4 page rates at 1080p at 30 fps. It has no radio: the same page suggests pairing it with an ESP32-C or S-series chip as a wireless companion over SPI, SDIO or UART.
Is the original ESP32 obsolete?
No, but parts of it are aging. The current ESP32 datasheet still lists the ESP32-D0WD-V3 and ESP32-U4WDH as active, while several earlier variants are marked “Not Recommended for New Designs”. The classic chip remains a good choice when you rely on Bluetooth Classic or on a library that only targets it. For a new Wi-Fi plus BLE design without those constraints, the C3, C6 or S3 offer Bluetooth 5, newer security peripherals and better low-power options.
The same logic applies to the ESP8266. Espressif’s SoC overview recommends the ESP32-C2 (ESP8684) as its upgrade path, a single-core RISC-V part described as small and cost-effective for simple applications.
What about the newest parts?
Espressif’s SoC overview also lists several newer members: the ESP32-C61, a 160 MHz RISC-V chip with 2.4 GHz Wi-Fi 6 and Bluetooth LE positioned as affordable Wi-Fi 6; the ESP32-S31, a dual-core RISC-V part at up to 320 MHz with 2.4 GHz Wi-Fi 6, Bluetooth LE and Classic, and 802.15.4; the ESP32-H4, a dual-core 96 MHz chip with Bluetooth LE and 802.15.4 for battery devices; the ESP32-H21; and the ESP32-E22, a Wi-Fi 6E and dual-mode Bluetooth connectivity coprocessor. Their product pages do not state production status, and software support for some of them is described in the future tense. Treat them as parts to watch, and check the datasheet, module availability and ESP-IDF support before committing a design.
Chip, module or development board?
Few products use the bare chip. Most use a module, which puts the SoC together with flash, a crystal, an antenna or antenna connector and a shield on a small board that is usually already radio-certified, so the product avoids a large part of the RF design and certification effort. For prototypes, a development board adds USB, a voltage regulator and buttons to a module.
Software support follows the same family logic. The Arduino-ESP32 core lists the ESP32, S2, S3, C3, C5, C6, H2 and P4 as supported, and ESP-IDF covers all of them. Before choosing a newer variant, check that the specific libraries you need, such as a camera driver, a Matter stack or a display driver, already support it.
Where to go next
- ESP32 vs Arduino vs Raspberry Pi compares the ESP32 with the other common maker platforms.
- IoT connectivity overview compares Wi-Fi, BLE, Thread, Zigbee and the long-range options.
- Thread explained covers the 802.15.4 mesh that the C5, C6 and H2 can join.
- Types of IoT devices and the constraints that shape them places the ESP32 among other device classes.
Topics: ESP32, Espressif, microcontrollers, hardware, comparison