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 the Product Selector page for 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] |
➖ |
➖ |
➖ |
✅ |
✅ |
➖ |
✅ |
➖ |
➖ |
➖ |
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 acknowledge that perfect compatibility might not always be feasible. Please refer to the documentation for any specific considerations.
Matter APIs
- Matter
- MatterEndPoint
- MatterColorLight
- MatterColorTemperatureLight
- MatterContactSensor
- MatterDimmableLight
- MatterDimmablePlugin
- MatterEnhancedColorLight
- MatterFan
- MatterGenericSwitch
- MatterHumiditySensor
- MatterOccupancySensor
- MatterOnOffLight
- MatterOnOffPlugin
- MatterPressureSensor
- MatterRainSensor
- MatterTemperatureControlledCabinet
- MatterTemperatureSensor
- MatterThermostat
- MatterWaterFreezeDetector
- MatterWaterLeakDetector
- MatterWindowCovering
OpenThread APIs
Zigbee APIs
- Zigbee
- ZigbeeCore
- ZigbeeEP
- ZigbeeAnalog
- ZigbeeBinary
- ZigbeeCarbonDioxideSensor
- ZigbeeColorDimmableLight
- ZigbeeColorDimmerSwitch
- ZigbeeContactSwitch
- ZigbeeDimmableLight
- ZigbeeDoorWindowHandle
- ZigbeeElectricalMeasurement
- ZigbeeFanControl
- ZigbeeFlowSensor
- ZigbeeGateway
- ZigbeeIlluminanceSensor
- ZigbeeLight
- ZigbeeMultistate
- ZigbeeOccupancySensor
- ZigbeePM25Sensor
- ZigbeePowerOutlet
- ZigbeePressureSensor
- ZigbeeRangeExtender
- ZigbeeSwitch
- ZigbeeTempSensor
- ZigbeeThermostat
- ZigbeeVibrationSensor
- ZigbeeWindSpeedSensor
- ZigbeeWindowCovering