Which ESP32 chip should you use? Currently, Espressif lists 14 chips in the ESP32 family. Eleven are in mass production (ESP32, S2, S3, C2, C3, C5, C6, C61, H2, P4, and the recently launched S31). With so many chips, it can be overwhelming to choose which one to use in your project.

In this guide, we’ll walk you through each ESP32 chip that’s currently on the market and compare their features to make it easier to choose the right one for your project.
Our list of chips and corresponding data has been compiled from Espressif’s datasheets and product pages, in addition to the current Arduino Core, ESP-IDF, MicroPython, CircuitPython, Tasmota, and ESPHome project documentation.
Table of Contents
In this guide, we’ll cover the following subjects:
- 1. Core Chip Comparison: Key Specifications
- 2. Supported Protocols: Wi-Fi, Bluetooth, Zigbee, Thread, Matter & Others
- 3. Supported Firmware / SDKs per Chip
- 4. ESP32 Chips: GPIO Availability by Functionality
- Which ESP32 Chip Should You Pick?
- The Best ESP32 Chip For Different Applications
1. Core Chip Comparison: Key Specifications
The following table compares the top level key specifications of each chip: CPU architecture, clock speed, on-chip memory, and more.
| Chip | CPU | Max clock | Co-processor / LP core | SRAM | Flash | PSRAM | Package | Date | Datasheet |
|---|---|---|---|---|---|---|---|---|---|
| ESP32 | 2× Xtensa LX6 | 240 MHz | ULP FSM | 520 KB | 4 MB in-pkg typical (up to 16 MB ext.) | 2 MB in-pkg (up to 8 MB ext.) | QFN48, 5×5/6×6 mm | 2016 | |
| ESP32-S2 | 1× Xtensa LX7 | 240 MHz | ULP FSM | 320 KB | Module dependent (commonly 4 MB) | None in base chip (add up to 2 MB) | QFN56, 7×7 mm | 2020 | |
| ESP32-S3 | 2× Xtensa LX7 | 240 MHz | ULP RISC-V + FSM | 512 KB | 4/8 MB in-pkg; large external via QSPI/Octal | 2/8/16 MB in-pkg | QFN56, 7×7 mm | 2021 | |
| ESP32-S31 (new) | 2× RISC-V | 320 MHz | Not published | 512 KB | Not published | Not published | QFN80, 8×8 mm | Jul 2026 | No datasheet yet |
| ESP32-C2 (ESP8684) | 1× RISC-V (RV32IMC) | 120 MHz | No | 272 KB | 1-4 MB in-pkg only | No | QFN24, 4×4 mm | 2022 | |
| ESP32-C3 | 1× RISC-V (RV32IMC) | 160 MHz | No | 400 KB | 4/8 MB in-pkg (up to 16 MB ext.) | No | QFN32, 5×5 mm | 2021 | |
| ESP32-C5 | 1× RISC-V + LP core | 240 MHz | LP RISC-V, up to 40 MHz | 384 KB | In-pkg/external options | In-pkg options available | QFN48, 6×6 mm | Apr 2025 | |
| ESP32-C6 | 1× RISC-V + LP core | 160 MHz | LP RISC-V, 20 MHz | 512 KB | 4/8 MB in-pkg (up to 16 MB ext.) | No | QFN40 (bare) / QFN32 (flash-in-pkg module), 5×5 mm | 2023 | |
| ESP32-C61 | 1× RISC-V | 160 MHz | No | 320 KB | In-pkg/external | External PSRAM supported | QFN40/LGA40, 5×5 mm | Jun 2025 | |
| ESP32-H2 | 1× RISC-V | 96 MHz | No | 320 KB | In-pkg | No | QFN32, 4×4 mm | 2023 | |
| ESP32-H4 (new) | 2× RISC-V | 96 MHz | Not published | 384 KB | Not published | Not published | Not published | Mar 2026 | No datasheet yet |
| ESP32-H21 (new) | 1× RISC-V | 96 MHz | Not published | 320 KB | Not published | Not published | Not published | Announced Mar 2026 | No datasheet yet |
| ESP32-P4 | 2× RISC-V (HP) + LP core | 400 MHz (v3.x silicon, since May 2026); 360 MHz on older v1.x boards | LP RISC-V; SIMD/DSP + single-precision FPU | 768 KB | External only (no wireless) | 16/32 MB in-pkg | QFN104, 10×10 mm | 2024 | |
| ESP32-E22 (new) | 2× RISC-V | 500 MHz | Not published | Not published | Not published | No PSRAM option | QFN, 9×9 mm, 100 pins | Announced Jan 2026 | No datasheet yet |
2. Supported Protocols: Wi-Fi, Bluetooth, Zigbee, Thread, Matter & Others
The following table shows the supported wireless protocols for each chip. Check this table first when a project has a specific connectivity requirement.
It stands out that there’s no Bluetooth on the ESP32-S2 and no Wi-Fi on the H-series.
| Chip | Wi-Fi | Bluetooth | ESP-NOW | Thread / Zigbee (802.15.4) | Matter path | Ethernet |
|---|---|---|---|---|---|---|
| ESP32 | Wi-Fi 4, 2.4 GHz | 4.2 Classic (BR/EDR) + LE (LE 5.0-certified, but no 2M PHY/long range/ext. advertising) | Yes | No | Wi-Fi or Ethernet | 10/100 MAC native (needs external PHY) |
| ESP32-S2 | Wi-Fi 4, 2.4 GHz | No | Yes | No | Wi-Fi (commissioning needs a workaround since there’s no BLE) | SPI-only (no native MAC) |
| ESP32-S3 | Wi-Fi 4, 2.4 GHz | LE 5 (5.4-certified) | Yes | No | Wi-Fi | No |
| ESP32-S31 | Wi-Fi 6, 2.4 GHz | LE 5.4 + Classic BR/EDR | Yes | Yes | Wi-Fi or Thread | Gigabit MAC (native) |
| ESP32-C2 | Wi-Fi 4, 2.4 GHz | LE 5 | Yes | No | Wi-Fi | No |
| ESP32-C3 | Wi-Fi 4, 2.4 GHz | LE 5 (5.4-certified) | Yes | No | Wi-Fi | No |
| ESP32-C5 | Wi-Fi 6, 2.4 and 5 GHz (only dual-band ESP32) | LE 5 (BT Core 6.0-certified) | Yes | Yes (Thread 1.4 / Zigbee 3.0) | Wi-Fi or Thread | No |
| ESP32-C6 | Wi-Fi 6, 2.4 GHz | LE 5 (5.3-certified) | Yes | Yes (Thread 1.3 / Zigbee 3.0) | Wi-Fi or Thread | No |
| ESP32-C61 | Wi-Fi 6, 2.4 GHz | LE 5 (BT Core 6.0-certified) | Yes | No | Wi-Fi | No |
| ESP32-H2 | No | LE 5 (5.3-certified) | No | Yes (Thread 1.4 / Zigbee 3.0) | Thread only | No |
| ESP32-H4 | No | LE 5.4 | No | Yes | Thread only | No |
| ESP32-H21 | No | LE 5 | No | Yes | Thread only | No |
| ESP32-P4 | No. Boards pair a companion ESP32-C6 over SDIO for Wi-Fi/BT/Thread | None on-chip | No on-chip (available on boards via the companion C6) | No | Via the companion radio chip | 10/100 MAC native (needs external PHY) |
| ESP32-E22 | Wi-Fi 6E tri-band: 2.4 + 5 + 6 GHz (160 MHz channels, 2×2 MU-MIMO, up to 2.4 Gbps) | BR/EDR Classic + LE 5.4 | Not documented | No | Wi-Fi transport only, via the host (E22 runs no application) | No |
Note: LoRa is not listed because you need an external transceiver. Every ESP32 LoRa board (like Heltec Wi-Fi LoRa 32, LILYGO T-Beam, etc.) comes with an ESP32 chip with a separate SX1262/SX1276 transceiver over SPI.
3. Supported Firmware / SDKs per Chip
The following table shows which frameworks and firmware projects are currently supported on each chip. Keep in mind that stable versions for new chips can take several months to be available.
| Chip | ESP-IDF | Arduino Core | MicroPython | CircuitPython | Tasmota | ESPHome | Zephyr RTOS |
|---|---|---|---|---|---|---|---|
| ESP32 | Yes | Yes | Yes | Beta | Yes | Yes (Arduino or IDF) | Yes |
| ESP32-S2 | Yes | Yes | Yes | Stable | Yes | Yes (Arduino or IDF) | Yes |
| ESP32-S3 | Yes | Yes | Yes | Stable | Yes | Yes (Arduino or IDF) | Yes |
| ESP32-S31 | Preview | No | No | No | No | No | No |
| ESP32-C2 | Yes | Component-only 1* | Yes | Alpha | Yes | Yes (IDF only) | Partial |
| ESP32-C3 | Yes | Yes | Yes | Beta | Yes | Yes (Arduino or IDF) | Yes |
| ESP32-C5 | Yes | Yes | Yes | Not yet | Not yet | Yes (IDF only) | Partial |
| ESP32-C6 | Yes | Yes | Yes | Alpha | Yes | Yes (IDF only) | Yes |
| ESP32-C61 | Yes | Component-only 1* | Not yet | Not yet | Not yet | Yes (IDF only) | Partial |
| ESP32-H2 | Yes | Yes | Yes | Alpha | Core supports it; Zigbee/Thread | Yes (IDF only) | Partial |
| ESP32-H4 | Preview | No | No | No | No | No | No |
| ESP32-H21 | Preview | No | No | No | No | No | No |
| ESP32-P4 | Yes | Yes | Early | Alpha | Early | Yes (IDF only) | Partial |
| ESP32-E22 | Not public yet | No | No | No | No | No | No |
Notes:
1* C2 and C61 are not easy to install through the regular Arduino IDE Boards Manager. It only works on ESP-IDF with Arduino-ESP32 via “Arduino as an ESP-IDF component” or by rebuilding the static libraries.
“ESPHome (IDF only)” means that chip needs the ESP-IDF framework in ESPHome . ESPHome’s Arduino Core framework option is limited to ESP32 (classic), S2, S3, and C3.
4. ESP32 Chips: GPIO Availability by Functionality
I2C, SPI, and UART are rarely pinned to fixed GPIOs on an ESP32. There’s a GPIO matrix that lets you route them to nearly any pin in software.
The real difference between the chips is related to the pins with fixed functions (ADC/touch/DAC, which are hardwired) and USB.
| Chip | Total GPIO | I2C | SPI | UART | I2S | LEDC/PWM | Input only pins | ADC channels | Touch pins | DAC channels | Native USB |
|---|---|---|---|---|---|---|---|---|---|---|---|
| ESP32 | 34 | 2 | (2 usable: HSPI/VSPI.SPI0/1 are dedicated to flash) | 3 | 2 | 16 ch | 6 (GPIO 34 to 39) | 18 ch, 12-bit (2 units. ADC2 is unusable while Wi-Fi is active.) | 10 | 2× 8-bit | No |
| ESP32-S2 | 43 | 2 | 4 | 2 | 1 | 8 ch | 0 | 20 ch, 13-bit (2 units) | 14 | 2× 8-bit | Native USB OTG |
| ESP32-S3 | 45 | 2 | 4 (2 usable. SPI0/1 dedicated to flash/PSRAM) | 3 | 2 | 8 ch | 0 | 20 ch, 12-bit (2 units) | 14 | No | Native USB OTG + separate USB Serial/JTAG |
| ESP32-S31 | 60 | Not published | Not published | Not published | Not published | Not published | 0 | Not published | Not published | Not published | Native (exact interface TBD) |
| ESP32-C2 | 14 | 1 (master-only) | 3 (1 usable. SPI0/1 dedicated to flash) | 2 | No | 6 ch | 0 | 5 ch, 12-bit | 0 | 0 | No |
| ESP32-C3 | 22 (only 16 on C3FH4X) | 1 | 3 (1 usable) | 2 | 1 | 6 ch | 0 | 6 ch, 12-bit | 0 | 0 | USB Serial/JTAG (program/debug; not a USB-host port) |
| ESP32-C5 | 29 | 1 (+ 1 LP-I2C) | 3 (1 usable) | 2 (+ 1 LP-UART) | 1 | 6 ch (higher-resolution LEDC | 0 | SAR ADC, similar channel count to the C6 | 0 | 0 | USB Serial/JTAG |
| ESP32-C6 | 30 bare chip (22 on the QFN32) | 1 (+ 1 LP-I2C) | 3 (1 usable) | 2 (+ 1 LP-UART) | 1 | 6 ch | 0 | 7 ch, 12-bit | 0 | 0 | USB Serial/JTAG |
| ESP32-C61 | 30 | 1 | 3 (1 usable) | 2 | 1 | 6 ch | 0 | Not published | 0 | 0 | USB Serial/JTAG |
| ESP32-H2 | 19 | 2 | 3 (1 usable) | 2 | 1 | 6 ch | 0 | Not published | 0 | 0 | USB Serial/JTAG |
| ESP32-H4 | 40 | Not published | Not published | Not published | Not published | Not published | 0 | Not published | Not published | Not published | Not published |
| ESP32-H21 | 19 | Not published | Not published | Not published | Not published | Not published | 0 | Not published | Not published | Not published | Not published |
| ESP32-P4 | 55 | 2 (+ 1 LP-I2C) | 2 usable general-purpose (+ dedicated flash/PSRAM) | 5 (+ 1 LP-UART) | 3 | 8 ch | 0 | SAR ADC present | LP-domain touch sensor | 0 | USB 2.0 High-Speed OTG |
| ESP32-E22 | 41 (M.2 exposes 20) | Not published | Not published | Not published | Not published | Not published | Not published | Not published | Not published | Not published | Not published |
A few pins on every chip are also strapping pins (they set the boot mode at power on). These can be used as normal GPIOs afterward, but it’s best to check your chip’s datasheet before driving them low/high at boot.
Which ESP32 Chip Should You Pick?
Overall, if you don’t need something specific like Zigbee or Thread, or super low power (months on a battery), the ESP32-S3 is the best pick of all currently available chips.
It’s the most balanced chip in the family: the biggest modern board ecosystem, native USB, room for a display and camera, and stable firmware support.
ESP32-S3 Advantages:
- Best all-around balance of compute, memory, and GPIO in the family with dual-core, 240 MHz, up to 45 GPIOs.
- Native USB OTG. No need for separate USB-serial bridge chip.
- Up to 16 MB in-package octal PSRAM, which means room for buffers, displays, ML models.
- Largest modern board ecosystem. Around 70 boards available, from $5 breakouts to camera/display boards.
- Most mature firmware support: stable on Arduino IDE, ESP-IDF, MicroPython, CircuitPython, Tasmota, ESPHome and Zephyr.
ESP32-S3 Disadvantages:
- No 802.15.4 radio: no Zigbee, Thread, or Matter-over-Thread.
- Wi-Fi 4 only, 2.4 GHz. It’s a generation behind the C5/C6/C61/S31’s Wi-Fi 6.
- No DAC. True analog audio-out needs an external chip.
- Higher deep-sleep current draw (7uA) than the RISC-V chips (C2/C3: 5uA). It’s not the best pick for a battery powered sensor.
- Costs and draws more than a project needs for most simple applications. For example, a basic Wi-Fi switch is cheaper built on a C3.
The Best ESP32 Chip For Different Applications
To help you choose the best chip for your project, we’ve put together the following table. Our “pick” refers to the bare chip. We’ll create a new tutorial referring to development boards built around those chips.
| You need… | Pick | Why |
|---|---|---|
| I want the best overall option for my IoT projects | ESP32-S3 | The most balanced chip in the ESP32 family for most IoT projects. |
| I just need Wi-Fi and Bluetooth cheaply | ESP32-C3 | Cheapest modern boards, single USB-C cable, broad firmware support. |
| I need Wi-Fi 6 / Matter / Zigbee for a smart home product | ESP32-C6 | The only mainstream chip combining Wi-Fi 6, BLE, and 802.15.4 (Zigbee/Thread). |
| I’m doing camera / AI / voice work | ESP32-S3 | It has camera/display interfaces, most PSRAM options, and the largest modern ecosystem. |
| I want a display heavy multimedia device | ESP32-P4 + ESP32-C6 combo | P4 brings MIPI-DSI/CSI, H.264, and the most raw compute; C6 supplies the wireless the P4 lacks. |
| I only need Zigbee/Thread, not Wi-Fi | ESP32-H2 | Purpose-built Thread/Zigbee device chip, lowest cost and power for that job. |
| I want the biggest ecosystem, Bluetooth Classic, or the cheapest dual-core | ESP32 (original) | 147 boards tracked, the only chip here with BT Classic (A2DP/SPP), ~$5 dual-core boards. |
| I’m designing a cost-sensitive product PCB | ESP32-C2 (ESP8684) | Smallest package and lowest cost of any Wi-Fi/BLE chip here; not meant for dev boards. |
| I need Wi-Fi 6 with the 5 GHz band | ESP32-C5 | The only chip in the family with dual-band (2.4 + 5 GHz) Wi-Fi 6. |
| I want Wi-Fi 6 power savings without paying for a Zigbee/Thread radio | ESP32-C61 | A cost-reduced C6 with the same Wi-Fi 6/BLE, no 802.15.4. |
| I want to test Espressif’s newest chip | ESP32-S31 | Just entered mass production (Jul 2026); Wi-Fi 6 + BLE Classic + Thread + gigabit Ethernet, but preview software only. |
Wrapping Up
In this guide, we’ve taken a look at the available ESP32 chips. Currently, there are 14 different ESP32 chips. They may differ in terms of key specs, supported wireless protocols, GPIOs, power consumption, and more.
Overall, if you’re just learning or getting started with the ESP32, we recommend the original ESP32 chip of the ESP32-S3. If you have a specific project in mind, other ESP32 chips might be better suited.
In this article, we’re referring to the ESP32 bare chips. We’ll create a similar guide for the most popular ESP32 development boards.
We hope this guide is helpful.
To learn more about the ESP32, check out our resources:




Hi,
I have not commented in (quite) a while. but this guide is great. I will be bookmarking this for future reference!
Thank you!
Bob
Wow ! That’s really useful !
Thanks…