The ESP32 Family Explained: S3, C3, C6, H2, and P4 Compared

Espressif’s lineup has grown far beyond the original ESP32. Each variant targets a different job: AI vision, cheap Wi-Fi nodes, Wi-Fi 6, Thread/Zigbee, or high-performance multimedia. Choosing the wrong one costs you pins, power budget, or a missing radio. This guide compares the ESP32-S3, ESP32-C3, ESP32-C6, ESP32-H2, and ESP32-P4 by architecture, connectivity, peripherals, and real-world fit, with working firmware to test each one.

Note: Specs below reflect Espressif’s published datasheets as of this writing. Verify clock speeds, SRAM sizes, and package options against the current datasheet before finalizing a PCB.

Quick Takeaways

  • ESP32-S3: Dual-core 240MHz Xtensa LX7 with vector instructions. Best for camera, voice, and edge AI projects.
  • ESP32-C3: Single-core 160MHz RISC-V with Wi-Fi 4 and BLE 5. Best low-cost replacement for the ESP8266.
  • ESP32-C6: Single-core 160MHz RISC-V with Wi-Fi 6, BLE 5, and 802.15.4 (Thread/Zigbee/Matter). Best for smart home nodes.
  • ESP32-H2: 96MHz RISC-V with BLE 5 and 802.15.4 only. No Wi-Fi. Best for battery-powered Thread/Zigbee end devices.
  • ESP32-P4: Dual-core 400MHz RISC-V with no built-in wireless. Best for displays, video, and HMI, paired with a companion radio chip.

Core Comparison Table

Feature ESP32-S3 ESP32-C3 ESP32-C6 ESP32-H2 ESP32-P4
CPU architecture Xtensa LX7 RISC-V RISC-V RISC-V RISC-V (HP + LP)
Cores 2 1 1 HP + 1 LP 1 2 HP + 1 LP
Max clock 240MHz 160MHz 160MHz 96MHz 400MHz
Wi-Fi Wi-Fi 4 (2.4GHz) Wi-Fi 4 Wi-Fi 6 None None
Bluetooth BLE 5 BLE 5 BLE 5 BLE 5 None
802.15.4 No No Yes Yes No
USB OTG (FS) Serial/JTAG Serial/JTAG Serial/JTAG HS + FS OTG
Typical cost Medium Lowest Low-medium Low Highest
Best for AI, camera Cheap IoT Matter/Thread Zigbee sensors HMI, video

ESP32-S3: The AI and Camera Workhorse

The ESP32-S3 uses two Xtensa LX7 cores at up to 240MHz. Its standout feature is the set of vector instructions that accelerate neural network inference and DSP math. It supports Wi-Fi 4 and BLE 5 (including Long Range).

Key Hardware Features

  • 45 programmable GPIOs on the bare chip (fewer on modules)
  • 512KB SRAM on-chip, with external PSRAM support up to octal SPI
  • USB OTG for host/device modes, plus a USB Serial/JTAG controller
  • LCD and camera interface (DVP 8/16-bit)
  • Hardware AES, SHA, RSA, and secure boot/flash encryption

When to Choose the S3

Pick the S3 for face detection, keyword spotting, camera streaming, USB HID devices, or anything that needs PSRAM. Skip it if you only need to toggle a relay over Wi-Fi. You will pay for capability you never use.

ESP32-C3: The Budget RISC-V Replacement for ESP8266

The ESP32-C3 has one 32-bit RISC-V core at up to 160MHz and 400KB SRAM. It adds BLE 5 to the Wi-Fi radio. It is the cheapest modern Espressif option and fits the same footprint class as ESP8266 modules.

Key Hardware Features

  • 22 GPIOs on the chip (typically 15-18 usable on modules)
  • Built-in USB Serial/JTAG, so no external USB-UART bridge is needed on dev boards
  • No PSRAM support and no camera interface
  • Strong crypto accelerators and secure boot

When to Choose the C3

Use it for smart plugs, temperature loggers, Wi-Fi switches, and BLE beacons. Avoid it for heavy tasks. A single core means your Wi-Fi stack and application share one thread of execution.

ESP32-C6: Wi-Fi 6 Plus Thread, Zigbee, and Matter

The ESP32-C6 is the multi-protocol chip for modern smart homes. It combines Wi-Fi 6 (802.11ax), BLE 5, and an IEEE 802.15.4 radio in one die. That radio carries Thread and Zigbee.

Key Hardware Features

  • 160MHz high-performance RISC-V core plus a 20MHz low-power core for deep-sleep tasks
  • 512KB SRAM
  • 30 GPIOs on the chip (22 usable on typical modules)
  • Wi-Fi 6 features such as TWT (Target Wake Time) reduce power on compatible routers
  • Native fit for Matter over Wi-Fi or Thread

When to Choose the C6

Choose the C6 for Matter devices, Thread border-adjacent nodes, and sensors that must work on both Wi-Fi 6 networks and Zigbee meshes. The LP core can poll a sensor while the main core sleeps, which extends battery life.

ESP32-H2: Ultra-Low-Power 802.15.4 and BLE

The ESP32-H2 drops Wi-Fi entirely. It runs a 96MHz RISC-V core with BLE 5 and 802.15.4. That makes it a Thread/Zigbee end device or a BLE peripheral with a lean power profile.

Key Hardware Features

  • 320KB SRAM and integrated flash options in the H2-MINI modules
  • 19 GPIOs on the chip
  • Native Thread 1.3 and Zigbee 3.0 support
  • No Wi-Fi, so it cannot join your router directly

When to Choose the H2

Use it for coin-cell door sensors, Zigbee light switches, and Thread-based leak detectors. Pair it with a C6, an ESP32 gateway, or a commercial Thread border router for IP connectivity.

ESP32-P4: High-Performance MCU Without Radios

The ESP32-P4 is a different class of chip. It has dual-core RISC-V at 400MHz, a 40MHz LP core, and a graphics-capable peripheral set. It has no Wi-Fi or Bluetooth. Wireless comes from a companion chip such as an ESP32-C6 connected over SDIO (ESP-Hosted).

Key Hardware Features

  • MIPI-CSI camera input and MIPI-DSI display output
  • H.264 encoder and JPEG codec in hardware
  • Pixel Processing Accelerator (PPA) for scaling and rotation
  • Large on-chip SRAM plus external PSRAM support (commonly 16MB to 32MB on boards)
  • USB 2.0 High-Speed and Ethernet MAC
  • RISC-V vector-style AI extensions for ML workloads

When to Choose the P4

Pick the P4 for touchscreen HMIs, video doorbells, smart displays, and industrial panels. Skip it for simple sensor nodes. The cost, board size, and wireless-companion requirement are overkill.

Pinout and Peripheral Differences

Pin counts vary by module, so check your exact board before assigning signals.

Peripheral S3 C3 C6 H2 P4
ADC 2x SAR 1x SAR 1x SAR 1x SAR 2x SAR
I2C 2 1 1 (+1 LP) 2 2 (+LP)
SPI (general) 2 1 1 1 2
UART 3 2 2 (+1 LP) 2 5 (+LP)
I2S 2 1 1 1 3
Touch pads 14 None None None 14
Ethernet MAC No No No No Yes

Strapping pins: Every variant has boot-mode strapping pins (for example GPIO0 on S3, GPIO9 on C3, GPIO9 on C6 and H2 per datasheet). Do not pull these low at reset unless you want download mode.

Power Consumption Overview

Exact current draw depends on radio use, voltage, and firmware. These figures are typical ranges, not guarantees.

Mode S3 C3 C6 H2
Active CPU (no radio) ~30-45mA ~20-25mA ~20-25mA ~15-20mA
Modem sleep ~15-25mA ~15-20mA ~15-20mA N/A
Deep sleep ~7-10µA ~5µA ~7µA ~7µA

Measure on your own hardware with a current analyzer or Nordic PPK2. Dev boards with LEDs and USB bridges draw far more than the bare chip.

Firmware Setup: Detect Your Chip at Runtime

The same Arduino sketch runs across variants. This code prints the detected chip model, core count, and flash size over UART so you can confirm which silicon you hold.

// Chip identification sketch for ESP32 family
// Board package: esp32 by Espressif (Arduino-ESP32 3.x)
#include <Arduino.h>

void setup() {
  Serial.begin(115200);          // UART0 at 115200 baud
  delay(1500);                   // Allow USB CDC to enumerate

  Serial.println("--- ESP32 Chip Info ---");
  Serial.printf("Model: %s\n", ESP.getChipModel());      // e.g. ESP32-S3, ESP32-C6
  Serial.printf("Revision: %d\n", ESP.getChipRevision());
  Serial.printf("CPU cores: %d\n", ESP.getChipCores());
  Serial.printf("CPU freq: %d MHz\n", ESP.getCpuFreqMHz());
  Serial.printf("Flash size: %u MB\n", ESP.getFlashChipSize() / (1024 * 1024));
  Serial.printf("Free heap: %u bytes\n", ESP.getFreeHeap());
  Serial.printf("PSRAM: %u bytes\n", ESP.getPsramSize()); // 0 if absent or disabled
}

void loop() {
  // Nothing to do
}

Tip: On ESP32-S3, C3, C6, and H2 boards that use the native USB port, enable USB CDC On Boot in the Arduino IDE Tools menu. Without it, Serial output will not appear.

Blink Test with Correct Pin Mapping

Onboard LED pins differ per board. Use the LED_BUILTIN macro where defined, and check your schematic when it is not.

// Portable blink: use board definition when available
#ifndef LED_BUILTIN
#define LED_BUILTIN 8   // Fallback: adjust to your board's LED GPIO
#endif

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);   // Configure GPIO as push-pull output
}

void loop() {
  digitalWrite(LED_BUILTIN, HIGH);
  delay(500);
  digitalWrite(LED_BUILTIN, LOW);
  delay(500);
}

Some boards use an addressable RGB LED (WS2812) instead of a plain LED. In that case, use neopixelWrite() instead of digitalWrite().

Real-World Project: Matter-Ready Temperature Sensor with ESP32-C6

This build shows why the C6 fits smart home work. It reads an I2C sensor and reports over Wi-Fi. The same hardware can later run a Thread-based Matter stack.

Bill of Materials

Part Value / Model Purpose
MCU board ESP32-C6-DevKitC-1 Main controller
Sensor BME280 (I2C) Temperature, humidity, pressure
Pull-ups 2x 4.7kΩ I2C bus (skip if the breakout includes them)
Decoupling 100nF ceramic Place near sensor VCC
Power 3.3V supply or USB Logic and sensor power

Wiring Guide

BME280 Pin ESP32-C6 Pin
VCC 3V3
GND GND
SDA GPIO6
SCL GPIO7

Warning: The BME280 is a 3.3V device. Never connect its VCC to 5V unless the breakout has an onboard regulator and level shifting.

Firmware

// BME280 over I2C on ESP32-C6, printing readings every 5 seconds
// Libraries: Adafruit BME280, Adafruit Unified Sensor
#include <Wire.h>
#include <Adafruit_BME280.h>

#define SDA_PIN 6
#define SCL_PIN 7

Adafruit_BME280 bme;

void setup() {
  Serial.begin(115200);
  Wire.begin(SDA_PIN, SCL_PIN);          // Custom I2C pins
  Wire.setClock(100000);                 // 100kHz standard mode

  if (!bme.begin(0x76, &Wire)) {         // Try 0x77 if this fails
    Serial.println("BME280 not found. Check wiring and I2C address.");
    while (true) delay(1000);
  }
}

void loop() {
  float tempC = bme.readTemperature();           // Degrees Celsius
  float humidity = bme.readHumidity();           // Percent RH
  float pressure = bme.readPressure() / 100.0F;  // Convert Pa to hPa

  Serial.printf("T: %.2f C | RH: %.1f %% | P: %.1f hPa\n",
                tempC, humidity, pressure);
  delay(5000);
}

Diagnostic Checklist if the Sensor Fails

  1. Run an I2C scanner sketch. A BME280 answers at 0x76 or 0x77.
  2. Confirm 3.3V at the sensor VCC pin with a multimeter.
  3. Check that SDA and SCL are not swapped.
  4. Add 4.7kΩ pull-ups if the module has none.
  5. Shorten wires. Long jumpers add capacitance and corrupt I2C signals above 100kHz.

Second Workflow: Protecting GPIOs from Voltage Spikes

All five chips use 3.3V logic and are not 5V tolerant. Industrial inputs, relays, and long cables can exceed that. Use an optocoupler to isolate the signal.

Basic input isolation circuit:

  1. Place a 330Ω to 1kΩ resistor in series with the optocoupler LED, sized for the source voltage and the LED forward current of about 5-10mA.
  2. Connect the PC817 output transistor collector to a GPIO configured with INPUT_PULLUP.
  3. Connect the emitter to GND.
  4. Read the pin. It reads LOW when the input signal is active.

For inductive loads such as relays, add a flyback diode (1N4007) across the coil to clamp voltage spikes.

Choosing the Right Chip: Decision Table

Your Project Needs Best Pick Why
Camera, voice, TinyML ESP32-S3 Vector instructions, PSRAM, camera interface
Lowest-cost Wi-Fi node ESP32-C3 Cheapest, simple, well supported
Matter, Thread, Zigbee plus Wi-Fi ESP32-C6 All three radios in one chip
Coin-cell Zigbee/Thread sensor ESP32-H2 Low power, no unused Wi-Fi radio
Touch display, video, HMI ESP32-P4 MIPI-DSI/CSI, H.264, high clock speed
USB host/device (keyboard, MIDI) ESP32-S3 USB OTG on a widely supported chip
Wired Ethernet gateway ESP32-P4 Built-in Ethernet MAC

Development Framework Support

Framework S3 C3 C6 H2 P4
ESP-IDF Full Full Full Full Full
Arduino-ESP32 Full Full Full Full Check current release
MicroPython Yes Yes Yes Limited Check current release
ESP-Matter Wi-Fi only Wi-Fi only Wi-Fi + Thread Thread Via companion chip

Support evolves quickly, especially for newer silicon like the P4. Check the release notes for your framework version before committing to a design.

FAQ

Which ESP32 is best for beginners?

The ESP32-C3 or the classic ESP32-S3 DevKit suits most beginners. The C3 is cheap, has native USB programming, and has abundant tutorials. The S3 adds more GPIO and power headroom if you expect to grow.

Which ESP32 supports Zigbee and Thread?

The ESP32-C6 and ESP32-H2 both include an 802.15.4 radio for Zigbee and Thread. The C6 also has Wi-Fi 6, while the H2 does not have Wi-Fi.

Does the ESP32-P4 have Wi-Fi or Bluetooth?

No. The ESP32-P4 has no built-in wireless. Designers pair it with a companion chip, commonly an ESP32-C6, over SDIO using the ESP-Hosted solution.

Is ESP32-S3 better than ESP32-C3?

It depends on the job. The S3 has two cores, higher clock speed, PSRAM support, USB OTG, and AI acceleration. The C3 costs less and uses less power. Choose the S3 for performance and the C3 for simple, cost-sensitive nodes.

Hot this week

The State of Robotics in 2026: 10 Biggest Developments

The 10 biggest robotics developments of 2026: whole-body VLA models, humanoid safety, ROS 2 Lyrical Luth, and Jetson Thor. Get the data and code.

EU Machinery Regulation 2027: What Robot Builders Need to Know

Building robots for the EU? Regulation (EU) 2023/1230 applies from 20 Jan 2027. Get the cybersecurity, AI, and CE marking checklist now.

ISO 10218:2025 Explained: The New Industrial Robot Safety Standard

ISO 10218:2025 rewrites industrial robot safety: Class I/II robots, built-in cobot limits, cybersecurity. Get the checklist and ROS2 code. Read now.

NVIDIA Jetson Orin Nano, AGX Orin, and Thor: Which One for Your Robot?

Jetson Orin Nano vs AGX Orin vs Thor: compare TOPS, memory bandwidth, power, and price to pick the right robot compute. Read the guide.

ROS 2 Distributions Explained: Humble, Jazzy, Kilted, and Lyrical (Which to Use)

Compare ROS 2 Humble, Jazzy, Kilted, and Lyrical by EOL date, platform support, and features. Pick the right distro for your robot. Read the guide.

Topics

The State of Robotics in 2026: 10 Biggest Developments

The 10 biggest robotics developments of 2026: whole-body VLA models, humanoid safety, ROS 2 Lyrical Luth, and Jetson Thor. Get the data and code.

EU Machinery Regulation 2027: What Robot Builders Need to Know

Building robots for the EU? Regulation (EU) 2023/1230 applies from 20 Jan 2027. Get the cybersecurity, AI, and CE marking checklist now.

ISO 10218:2025 Explained: The New Industrial Robot Safety Standard

ISO 10218:2025 rewrites industrial robot safety: Class I/II robots, built-in cobot limits, cybersecurity. Get the checklist and ROS2 code. Read now.

NVIDIA Jetson Orin Nano, AGX Orin, and Thor: Which One for Your Robot?

Jetson Orin Nano vs AGX Orin vs Thor: compare TOPS, memory bandwidth, power, and price to pick the right robot compute. Read the guide.

ROS 2 Distributions Explained: Humble, Jazzy, Kilted, and Lyrical (Which to Use)

Compare ROS 2 Humble, Jazzy, Kilted, and Lyrical by EOL date, platform support, and features. Pick the right distro for your robot. Read the guide.

Build a Low-Cost AI Robot Arm With SO-101 and LeRobot

Build an SO-101 robot arm under $250, calibrate it, record demos, and train an ACT policy with LeRobot. Follow the full guide and start building.

Robot Foundation Models: GR00T, pi, Gemini Robotics, and Open Alternatives Compared

Compare robot foundation models: NVIDIA GR00T, Physical Intelligence π, Gemini Robotics 2, and open VLAs. Get latency math, code, and a pick guide.

How Much Does a Humanoid Robot Cost? Prices, Subscriptions, and Hidden Costs

Humanoid robot cost in 2026: prices from $4,900, $499/mo subscriptions, and hidden fees. See the full TCO breakdown and compare models now.

Related Articles

Popular Categories