esp32.diy

arduino-esp32: Arduino Core for the ESP32 Family of SoCs

Oct 11, 2026 · 5 min read

Beginner 17.5k stars 7.9k forks C++ LGPL-2.1 Updated 2026-10-11
TL;DR arduino-esp32 is the official Espressif Arduino core that lets you write standard Arduino sketches for the entire ESP32 SoC family. It bridges the familiar Arduino API with Espressif's ESP-IDF, giving you access to Wi-Fi, Bluetooth, and all on-chip peripherals through a beginner-friendly workflow.
What you need
  • ESP32
  • ESP32-C3
  • ESP32-C5
  • ESP32-C6
  • ESP32-H2
  • ESP32-P4
  • ESP32-S2
  • ESP32-S3
  • ESP32-C2
  • ESP32-C61
Board FamilyESP32 (8 SoCs supported)
FrameworkArduino / ESP-IDF
LanguageC++
LicenseLGPL-2.1
Latest Release3.3.12 (2026-09-18)
DifficultyBeginner

What You Will Build and Why It Matters

arduino-esp32 is the official Arduino core maintained by Espressif for the entire ESP32 SoC family. Instead of writing firmware in Espressif's lower-level ESP-IDF framework, you write standard Arduino sketches — setup(), loop(), and the libraries you already know — and the core handles all the translation to the underlying hardware.

This matters because the ESP32 family covers an enormous range of capabilities: the original dual-core ESP32 with Bluetooth Classic and Wi-Fi, the compact single-core ESP32-C3, the AI-ready ESP32-S3 with its vector instructions, the ultra-low-power ESP32-H2 with 802.15.4 (Zigbee/Thread), and the high-performance ESP32-P4. With arduino-esp32 you can target any of these chips using the same IDE and the same sketch structure.

With over 17,500 stars and nearly 8,000 forks on GitHub, this is the most widely used ESP32 Arduino integration in existence, backed directly by Espressif. If you are prototyping a connected gadget, an AI inference device, or a battery-powered sensor node, this core is the fastest path from idea to running firmware.

What You Need

Hardware

Any development board based on one of the supported SoCs will work:

You will also need a USB cable to connect the board to your computer and, depending on the board, a separate USB-to-serial adapter.

Software

Full installation instructions for all operating systems are available in the official documentation.

Typical use cases

Edge AI Inference

Use Arduino sketches to prototype TensorFlow Lite or similar models on ESP32-S3 or ESP32-P4 hardware, then iterate quickly without leaving the Arduino IDE.

Wi-Fi and Bluetooth Connected Devices

Build IoT sensors, smart home nodes, or BLE peripherals on any Wi-Fi or Bluetooth-capable ESP32 SoC using familiar Arduino networking libraries.

Low-Power Mesh Networks

Target ESP32-H2 or ESP32-C6 for Zigbee or Thread mesh deployments, combining the 802.15.4 radio with Arduino's rapid prototyping workflow.

ESP-IDF Component Integration

Embed the Arduino core inside a full ESP-IDF project to combine Arduino library convenience with fine-grained IDF configuration and custom partitioning.

How It Works

arduino-esp32 sits as a layer between your Arduino sketch and Espressif's ESP-IDF. When you click Upload in the Arduino IDE, the toolchain compiles your sketch together with the core's C++ wrappers, which translate Arduino API calls — digitalWrite, Serial.begin, WiFi.begin, and so on — into the corresponding ESP-IDF calls.

The core ships pre-built static libraries for each supported chip variant, which keeps compile times short for the common case. If you need to target ESP32-C2 or ESP32-C61, or if you need to customise the underlying IDF configuration, you can use the Lib Builder to rebuild those libraries yourself, or embed the whole Arduino core as a component inside a native ESP-IDF project.

The project uses GitHub Actions for continuous integration: every push triggers compilation tests across all supported SoCs, and a scheduled job runs a broader test suite including external libraries. A public roadmap tracks planned features, and monthly community meetings keep contributors aligned.

Installation and First Sketch

Because the install commands live in the official documentation rather than the README, the steps below describe the process without reproducing commands that are not in the source README. Follow the Installing guide for the exact Board Manager URL and any IDE-specific steps.

  1. Open the Arduino IDE and navigate to Preferences (or Settings).
  2. Add the ESP32 Board Manager URL — the exact URL is listed on the Installing page for your operating system.
  3. Open the Board Manager, search for esp32 by Espressif Systems, and install the package. This downloads the pre-built toolchain and libraries for all supported chips.
  4. Select your board from Tools → Board → ESP32 Arduino. Pick the entry that matches your specific module (for example, ESP32-S3 Dev Module or ESP32-C6 Dev Module).
  5. Select the correct port under Tools → Port.
  6. Open a built-in example from File → Examples → (any ESP32 category) and click Upload.

If you are migrating an existing project from the 2.x release series, consult the 2.x to 3.x migration guide before upgrading, as there are API-level changes.

Decoding crash logs: If your firmware crashes and prints a register dump to the serial monitor, use EspExceptionDecoder to turn the raw addresses into a readable call stack.

Ideas to Extend It and Known Limitations

Ways to go further

Limitations to keep in mind

Verdict

arduino-esp32 is the definitive starting point for anyone writing firmware for the ESP32 family: it is officially maintained by Espressif, covers eight SoC variants in stable release, and integrates smoothly with both the Arduino IDE and ESP-IDF. Beginners get a gentle on-ramp through the standard Arduino workflow, while experienced developers can drop into ESP-IDF component mode for full control. The active community, public roadmap, and continuous integration against external libraries make it a dependable foundation for projects ranging from simple sensor nodes to edge AI gadgets.

Sources

github.comespressif/arduino-esp32 — repository & README

Facts in this article come from the project's public README and GitHub metadata at the time of writing. Images belong to their respective owners and link back to the original source.