Libraries
Here is where the Libraries API’s descriptions are located:
Supported Peripherals
Currently, the Arduino ESP32 supports the following peripherals with Arduino APIs.
Peripheral | ESP32 | C3 | C6 | H2 | P4 | S2 | S3 | Notes |
---|---|---|---|---|---|---|---|---|
ADC | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |
BT Classic | Yes | N/A | N/A | N/A | N/A | N/A | N/A | |
BLE | Yes | Yes | Yes | Yes | No | N/A | Yes | |
DAC | Yes | N/A | N/A | N/A | Yes | Yes | N/A | |
Ethernet | Yes | N/A | N/A | N/A | Yes | N/A | N/A | |
GPIO | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |
Hall Sensor | N/A | N/A | N/A | N/A | N/A | N/A | N/A | |
I2C | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |
I2S | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |
LEDC | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |
MIPI | N/A | N/A | N/A | N/A | No | N/A | N/A | |
Motor PWM | No | N/A | N/A | N/A | N/A | N/A | N/A | |
MSPI | N/A | N/A | N/A | N/A | No | N/A | N/A | |
Pulse Counter | No | No | No | No | No | No | No | |
RMT | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |
SDIO | No | No | No | No | No | No | No | |
SDMMC | Yes | N/A | N/A | N/A | N/A | N/A | Yes | |
Timer | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |
Temp. Sensor | N/A | Yes | Yes | Yes | Yes | Yes | Yes | |
Touch | Yes | N/A | N/A | N/A | Yes | Yes | Yes | |
TWAI | No | No | No | No | No | No | No | |
UART | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |
USB | N/A | Yes | Yes | Yes | Yes | Yes | Yes | |
Wi-Fi | Yes | Yes | Yes | N/A | Yes | Yes | Yes |
Notes
ESP32-P4 calibration schemes not supported yet in IDF and ADC Continuous also lacks IDF support.
SPI Ethernet is supported by all ESP32 families and RMII only for ESP32 and ESP32-P4.
ESP32-C3, C6, H2 only support USB CDC/JTAG
ESP32-P4 only supports Wi-Fi through another SoC by using
esp_hosted
.
Datasheet
APIs
The Arduino ESP32 offers some unique APIs, described in this section: