OSS Tanbou

develop for the ESP32 SoC family with the official Arduino core, libraries, board definitions, and integrated Espressif toolchains

About these scores

OSS scale score is an unbounded metric that log-compresses and weights Stars, Watchers, Forks, and Contributors. Discovery score is the current OSS scale score minus the score at discovery. Update pace is commits in the last 30 days, growth momentum is the OSS scale score difference within the recent observation window, and OSS health is a 0–100 rating based on available recency, Community Health, and release data.

Stars
17,463
Primary language
C++
License
LGPL-2.1
Repository last updated
Oct 4, 2026
On this page

Overview

Arduino-ESP32 is Espressif's official Arduino core for the ESP32 family. It brings the Arduino programming model to ESP32, C3, C5, C6, H2, P4, S2, and S3 targets and integrates libraries and tooling for Wi-Fi, BLE, GPIO, serial, filesystems, networking, OTA, and other device capabilities.

Features and best fit

Based on official documentation; not hands-on tested · Content checked:

Key features

Target multiple ESP32-family SoCs through the Arduino workflow

The 3.3.12 README lists ESP32, C3, C5, C6, H2, P4, S2, and S3 as stable targets, selected through board definitions and FQBNs.

Sources: [1]

Use Arduino APIs on top of an integrated ESP-IDF toolchain

Version 3.3.12 is based on ESP-IDF v5.5.5 and integrates Espressif compilers, libraries, partitions, bootloader generation, and related build steps into Arduino recipes.

Sources: [4][3]

Pin the core version for headless Arduino CLI builds

As a Board Manager core, Arduino-ESP32 can be installed at an explicit version and compiled by FQBN in CI without flashing a physical device.

Sources: [1][2]

Best fit

Fits ESP32 firmware that wants Arduino productivity plus Espressif-specific capabilities

It is useful when firmware teams want Arduino-style APIs and community libraries while still using ESP32-family networking and device features such as Wi-Fi, BLE, Matter, or Zigbee.

Sources: [1][4]

Before adoption

Review the 2.x-to-3.x migration guide before upgrading existing firmware

The README explicitly links a 2.x-to-3.x migration guide because APIs and the underlying ESP-IDF changed. Existing firmware needs runtime validation in addition to a successful compile.

Sources: [1]

Validate the selected board and peripherals on actual hardware

USB mode, flash partitions, clocks, BLE/Wi-Fi behavior, and peripheral pin mappings vary by board. A generic ESP32 compile does not prove compatibility with the target device.

Sources: [3][1]

3.3.12 includes security and reliability fixes across network-facing features

The release includes WebServer hardening, BLE bounds fixes, OTA checksum improvements, HTTP client/socket fixes, and other changes, so connected firmware should keep pace with stable patch releases.

Sources: [4]

Official sources

  1. [1]Arduino-ESP32 3.3.12 README(2026-10-04)
  2. [2]Arduino-ESP32 3.3.12 package metadata(2026-10-04)
  3. [3]Arduino-ESP32 3.3.12 platform configuration(2026-10-04)
  4. [4]Arduino-ESP32 3.3.12 release(2026-10-04)
  5. [5]Arduino-ESP32 LGPL license(2026-10-04)
Supplemental curator note

Version 3.3.12 is based on ESP-IDF v5.5.5. The 2.x-to-3.x transition includes API compatibility changes, so review the migration guide and test the actual board/FQBN, partitions, USB, BLE/Wi-Fi, peripherals, and power conditions. A successful core install and compile does not validate device behavior.

Try it in 3 steps

  1. 1

    Install ESP32 core 3.3.12 with Arduino CLI

    Install stable 3.3.12 from the official Board Manager index. The toolchain download is large, so check disk and network capacity first.

    arduino-cli core update-index --additional-urls https://espressif.github.io/arduino-esp32/package_esp32_index.json && arduino-cli core install esp32:esp32@3.3.12 --additional-urls https://espressif.github.io/arduino-esp32/package_esp32_index.json
  2. 2

    Create a minimal hardware-independent sketch

    Use a minimal Arduino sketch that does not access GPIO or networking.

    mkdir -p Esp32Demo && printf 'void setup() {}\nvoid loop() {}\n' > Esp32Demo/Esp32Demo.ino
  3. 3

    Compile for the generic ESP32 FQBN

    Compile with the 3.3.12 toolchain without flashing a device. Replace the generic FQBN with the exact board for real hardware.

    arduino-cli compile --fqbn esp32:esp32:esp32 Esp32Demo
Check the official README

Growth

Growth trends · Last 30 days

17,463 Stars

Trend data is still being collected.

Development activity

Last 90 days · weekly

Commits (last 30 days)
36
Open PRs
25

Development activity is still being collected.

Built with

Categories and tags

Categories

GitHub data

GitHub dataView detailed GitHub data

GitHub Topics

  • arduino
  • esp-idf
  • esp32
Stars
17,463
Forks
7,914
Watchers
496
Open issues
88
Contributors
443
Owner type
Organization
Primary language
C++
License
LGPL-2.1
Repository last updated
Oct 4, 2026
Write a related article

Share a guide or use case for this OSS in Markdown. Articles are published after administrator approval.

Report incorrect information

Tell us if any listing information is incorrect or outdated.

After reading this page, do you know what to do next?