"ESP32" is now a whole family of Espressif chips. Buying the wrong one is a common reason libraries don't work or features are missing. Here's a summary.
| Chip | Core | Wireless | Strengths |
|---|---|---|---|
| ESP32 (original) | Xtensa dual-core, 240MHz | WiFi 4 + Bluetooth Classic + BLE | Most common, plenty of docs, supports Bluetooth Classic |
| ESP32-S2 | Xtensa single-core | WiFi 4 | Native USB OTG, no Bluetooth |
| ESP32-S3 | Xtensa dual-core, 240MHz | WiFi 4 + BLE 5 | Vector instructions for AI, USB OTG, many GPIOs, good for cameras/displays |
| ESP32-C3 | RISC-V single-core, 160MHz | WiFi 4 + BLE 5 | Cheap, small, low power, an ESP8266 replacement |
| ESP32-C6 | RISC-V, 160MHz | WiFi 6 + BLE 5 + 802.15.4 (Zigbee/Thread) | Matter/Thread/Zigbee, WiFi 6 |
Choose by need
- Learning, basic IoT: an ESP32 DevKit (30/38 pin) or ESP32-S3 DevKitC. They have the most examples.
- Small, cheap, battery-powered sensors: ESP32-C3 (SuperMini style).
- Cameras, LCDs, voice/image recognition: ESP32-S3, preferably with PSRAM (for example N16R8: 16MB flash, 8MB PSRAM).
- Matter, Thread, Zigbee devices: ESP32-C6 (or ESP32-H2 if you only need 802.15.4 + BLE).
- Bluetooth A2DP audio (speakers, headphones): only the original ESP32 has Bluetooth Classic.
Buying tips
- Read the module name:
WROOM(no PSRAM),WROVER(with PSRAM), suffixN8R2= 8MB flash + 2MB PSRAM. - S3 boards with two USB ports (one UART, one native USB) cause confusion when flashing. Try both ports.
- Different USB-UART chips (CP2102, CH340) need their own drivers on Windows.
- Not every pin is equal. See GPIO pins to avoid.
- Check framework support: ESPHome, Arduino and ESP-IDF all cover this family, but some older libraries only target the original ESP32.
The specs above are a general summary; check the datasheet and product page of the exact module before you buy.