Compare the ESP32 chips
Which chip to pick: the classic ESP32 for Bluetooth Classic and the most libraries, the S3 for cameras, displays and USB, the C3 for small and cheap, the C6 for Wi-Fi 6, Thread and Zigbee, and the S2 for USB without Bluetooth. Figures come from each chip's Espressif datasheet.
| Feature | ESP32 | ESP32-S2 | ESP32-S3 | ESP32-C3 | ESP32-C6 |
|---|---|---|---|---|---|
| CPU | Dual-core Xtensa LX6, up to 240 MHz | Single-core Xtensa LX7, up to 240 MHz | Dual-core Xtensa LX7, up to 240 MHz, with vector instructions | Single-core RISC-V, up to 160 MHz | RISC-V at up to 160 MHz, plus a 20 MHz low-power RISC-V core |
| Radio | Wi-Fi 4 (2.4 GHz), Bluetooth Classic and Bluetooth LE 4.2 | Wi-Fi 4 (2.4 GHz). No Bluetooth | Wi-Fi 4 (2.4 GHz) and Bluetooth LE 5 | Wi-Fi 4 (2.4 GHz) and Bluetooth LE 5 | Wi-Fi 6 (2.4 GHz), Bluetooth LE 5 and IEEE 802.15.4 (Thread and Zigbee) |
| GPIOs | 34 (GPIO 34 to 39 are input only) | 43 (GPIO 46 is input only) | 45 | 22 | 30 on the QFN40 package used by the DevKitC-1 |
| Analog in | 18 channels on two 12-bit ADCs | 20 channels on two 13-bit ADCs | 20 channels on two 12-bit ADCs | 6 channels: ADC1 on GPIO 0 to 4, ADC2 on GPIO 5 | 7 channels on one 12-bit ADC (GPIO 0 to 6) |
| ADC2 and Wi-Fi | Wi-Fi uses ADC2. While Wi-Fi is on, analogRead() on ADC2 pins fails, so use ADC1 pins (GPIO 32 to 39) for anything you read with Wi-Fi running. | Wi-Fi also uses ADC2. The driver arbitrates, but a read can fail while Wi-Fi is busy, so prefer ADC1 pins (GPIO 1 to 10). | Wi-Fi also uses ADC2. The driver arbitrates, but a read can fail while Wi-Fi is busy, so prefer ADC1 pins (GPIO 1 to 10). | ADC2 (GPIO 5) gives unstable readings because of a chip erratum, and ESP-IDF no longer supports it in oneshot mode. Use GPIO 0 to 4 for analog. | There is no ADC2, so analog reads are not affected by Wi-Fi. |
| Touch | 10 channels | 14 channels | 14 channels | None | None |
| Analog out | 2 channels, 8-bit (GPIO 25 and 26) | 2 channels, 8-bit (GPIO 17 and 18) | None | None | None |
| USB | None. Boards use a USB-to-UART bridge chip | Native USB 1.1 OTG on GPIO 19 and 20 | Native USB 1.1 OTG and a USB serial/JTAG port on GPIO 19 and 20 | USB serial/JTAG port on GPIO 18 and 19 | USB serial/JTAG port on GPIO 12 and 13 |
| SRAM | 520 KB | 320 KB | 512 KB | 400 KB | 512 KB, plus 16 KB of low-power SRAM |
| Boards here | ESP32-DevKitC V4, 38 pin, AI-Thinker ESP32-CAM | ESP32-S2-DevKitC-1, 44 pin | ESP32-S3-DevKitC-1, 44 pin, Seeed Studio XIAO ESP32S3 | ESP32-C3-DevKitM-1, 30 pin, Seeed Studio XIAO ESP32C3 | ESP32-C6-DevKitC-1, 32 pin |
| Datasheet | ESP32 datasheet | ESP32-S2 datasheet | ESP32-S3 datasheet | ESP32-C3 datasheet | ESP32-C6 datasheet |