Libraries

Arduino libraries help you use the features of the ESP32 family of chips with the familiar Arduino API.

Supported Features and Peripherals

Currently, the Arduino ESP32 supports almost everything available on the ESP32 family with an Arduino-like API.

Not all features are available on all SoCs. Please check theProduct Selector pagefor more details.

Here is a matrix of the library support status for the main features and peripherals per SoC:

  • ✅ Supported through the Arduino Core

  • ❌ Not supported through the Arduino Core. It can still be used through the ESP-IDF API, but might require rebuilding the static libraries.

  • ➖ Not available on the SoC

Feature

ESP32

C2

C3

C5

C6

C61

H2

P4

S2

S3

ADC[1]

BT Classic

BLE[2]

DAC

ESP-NOW[3]

Ethernet[4]

GPIO

Hall Sensor

I2C

I2S

I3C

LEDC

Matter (Thread)[6]

Matter (Wi-Fi)

MIPI CSI

MIPI DSI

Motor PWM

MSPI

Pulse Counter

RMT

SDIO

SDMMC

PSRAM

Temp. Sensor

Thread

Timer

Touch

TWAI/CAN-FD

UART

USB OTG

USB Serial

Wi-Fi[2]

Zigbee[5]

[1]

ESP32-P4 calibration schemes not supported yet in IDF and ADC Continuous also lacks IDF support.

[2](1,2)

ESP32-P4 only supports Wi-Fi and BLE through another SoC by usingESP-Hosted.

[3]

ESP-NOW is not supported throughESP-Hosted.

[4]

SPI Ethernet is supported by all ESP32 families and RMII only for ESP32 and ESP32-P4.

[5]

Non-native Zigbee SoCs can also run Zigbee, but must use another SoC (with Zigbee radio) as a RCP connected by UART/SPI.Check theGateway example for more details.

[6]

Matter over Thread is supported by our library but is not included in the pre-compiled libraries for ESP32-C6 and ESP32-C5.In order to use Matter over Thread, you need to use Arduino as an ESP-IDF component or rebuild the static libraries.Check theArduino_ESP_Matter_over_OpenThread example for more details.

Note

The ESP32-C2 and ESP32-C61 are only supported using Arduino as an ESP-IDF component or by rebuilding the static libraries.

Datasheet

APIs

The Arduino ESP32 offers some unique APIs, described in this section:

Note

Please be advised that we cannot ensure continuous compatibility between the Arduino Core ESP32 APIs and ESP8266 APIs, as well as Arduino-Core APIs (Arduino.cc).While our aim is to maintain harmony, the addition of new features may result in occasional divergence. We strive to achieve the best possible integration but acknowledgethat perfect compatibility might not always be feasible. Please refer to the documentation for any specific considerations.

Matter APIs

OpenThread APIs

Zigbee APIs