The ESP32 is a family of system-on-chip microcontrollers from Espressif, which integrate Wi-Fi and Bluetooth on the chip and offer far more power and memory than a classic Arduino. They are programmed with the same framework as the Arduino (the Arduino core) or with ESP-IDF, Espressif’s native environment. This page is the hub that gathers the tutorials related to the ESP32: why this family, its variants, its ecosystem, and the tutorials sorted by difficulty. The general overview of microcontroller families and the selection guide stay with microcontroller.

Why ESP32?

Where the Arduino aims at accessibility, the ESP32 aims at connectivity and performance:

  • built-in Wi-Fi and Bluetooth — the deciding argument: a connected object with no external radio module;
  • power — one or two cores up to 240 MHz, far more RAM and Flash, and a native RTOS (FreeRTOS) for multitasking;
  • battery life — a very frugal deep sleep mode, suited to battery-powered operation.

In exchange, the ESP32 is less forgiving: it runs at 3.3 V (see the warning below), needs a carefully designed power supply (current surges when the radio transmits), and its richness makes it harder to start with. The choice is settled with the selection guide on the microcontroller hub: for learning, or for simple prototyping without connectivity, the Arduino stays gentler. As soon as wireless, battery life or compute power is needed, the ESP32 is the answer.

Variant overview

The family has branched out, but a handful of variants cover most needs.

VariantCore(s)RadioNotable feature
ESP32 (original)2× Xtensa LX6, 240 MHzWi-Fi + Bluetooth Classic + BLEthe all-rounder, the most widespread
ESP32-S21× Xtensa LX7Wi-Fi onlynative USB, no Bluetooth
ESP32-S32× Xtensa LX7Wi-Fi + BLE 5native USB, AI instructions
ESP32-C31× RISC-VWi-Fi + BLE 5compact package
ESP32-C61× RISC-VWi-Fi 6 + BLE 5 + 802.15.4Thread / Zigbee for home automation
ESP32-C51× RISC-Vdual-band Wi-Fi 6 (2.4 + 5 GHz) + BLE 5 + 802.15.4the only 5 GHz variant
ESP32-H21× RISC-VBLE 5 + 802.15.4, no Wi-FiThread / Zigbee, without Wi-Fi
ESP32-P42× high-performance RISC-Vnone (pairs with a wireless chip)compute / multimedia / HMI

These chips are met on modules (WROOM, WROVER), themselves mounted on development boards (DevKitC, plus Feather and LOLIN variants…). For a project, an original ESP32 DevKit board is the safe entry point.

Underlying trend: the original ESP32 and the S series rest on Xtensa cores, while the recent variants (C, H and P series) move to RISC-V. The S3 is the last big Xtensa. For a new project, RISC-V is the direction the ecosystem is taking.

Positioning map of the ESP32 variants by wireless connectivity and compute power|640

Placing the variants by connectivity and power. The table above gives the detail.

Ecosystem

Two programming paths coexist:

  • Arduino core for ESP32 — the same API as the Arduino (setup(), loop(), digitalWrite…), through the ESP32 core installed in the Arduino IDE. This is the gentlest migration from the Arduino, and the recommended path to start with.
  • ESP-IDF — Espressif’s native framework, built on FreeRTOS, which gives full control (multitasking, fine-grained power management, network stack). More demanding, it earns its place on mature projects.

PlatformIO handles both. How the code is structured (loop, tasks, states, RTOS) belongs to firmware, whichever path is chosen.

Watch the voltage

Warning

The ESP32 pins run at 3.3 V and do not tolerate 5 V. Wiring a 5 V sensor or module straight onto an ESP32 input can destroy the pin. This is the trickiest difference with the Arduino, which is 5 V tolerant. Any interface with a 5 V signal goes through level shifting (see logic levels).

Tutorials

The tutorials of the ESP32 module, sorted by increasing difficulty. As with the Arduino, the entries marked (cross-cutting) are shared pages of the skeleton (valid for every family), the rest is specific to the ESP32.

Getting started

Learning the basics

Advanced topics

Engineer level

More tutorials will fill in these levels as projects come along.

See also