Description
The table below enumerates all peripherals for each chip supported by esp-hal
. Support in this case does not mean a feature-complete and bug-free driver implementation, only that you are able to interact with the peripheral in some meaningful way.
If a cell contains am em dash (—) this means that the particular peripheral is not present for a chip. A check mark (✓) means that some driver implementation exists.
The table should be complete, though some minor naming changes have been made for consistency. If there are any missing peripherals or errors please comment below indicating such. Since adding support for additional devices it's possible some new peripherals have been introduced which aren't displayed below.
If you would like to contribute to this project, we ask that you please comment below "claiming" a peripheral, just to help ensure people are not stepping on each others' feet.
If you would like to request a feature for an existing peripheral driver, please open a separate issue to do so.
The following peripherals either have no drivers at all, or do not support all devices with that peripheral:
Peripheral | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S2 | ESP32-S3 |
---|---|---|---|---|---|---|---|
ATOMIC | — | — | — | — | — | — | |
DEDICATED_GPIO | — | — | — | — | — | — | |
DS | — | — | |||||
ECC | — | — | — | — | |||
EXTMEM | — | — | |||||
GPIOSD | — | — | |||||
HINF | — | — | — | — | — | ||
HMAC | — | — | |||||
HP_APM | — | — | — | — | — | ||
HP_SYS | — | — | — | — | — | ||
LCD_CAM | — | — | — | — | — | — | |
LP_ANA | — | — | — | — | — | ||
LP_AON | — | — | — | — | — | ||
LP_APM | — | — | — | — | — | ||
LP_APM0 | — | — | — | — | — | — | |
LP_CLKRST | — | — | — | — | — | ||
LP_I2C0 | — | — | — | — | — | — | |
LP_I2C_ANA_MST | — | — | — | — | — | — | |
LP_IO | — | — | — | — | — | — | |
LP_PERI | — | — | — | — | — | ||
LP_TEE | — | — | — | — | — | — | |
LP_TIMER | — | — | — | — | — | ||
LP_UART | — | — | — | — | — | — | |
LP_WDT | — | — | — | — | — | ||
MEM_MONITOR | — | — | — | — | — | ||
OTP_DEBUG | — | — | — | — | — | ||
PARL_IO | — | — | — | — | — | ||
PAU | — | — | — | — | — | ||
PERI_BACKUP | — | — | — | — | — | — | |
PMS | — | — | — | — | — | — | |
PMU | — | — | — | — | — | — | |
RTCIO | — | — | — | — | |||
RTC_CNTL | — | — | |||||
RTC_I2C | — | — | — | — | |||
SDMMC | — | — | — | — | — | ||
SENSITIVE | — | — | — | — | |||
SLC | — | — | — | — | — | ||
SLCHOST | — | — | — | — | |||
SOC_ETM | — | — | — | — | — | — | |
TEE | — | — | — | — | — | ||
TRACE | — | — | — | — | — | ||
TWAI0 1 | — | ✓ | ✓ | ||||
TWAI1 1 | — | — | — | — | — | — | |
UHCI0 | — | ||||||
UHCI1 | — | — | — | — | |||
WCL | — | — | — | — | — | — | |
XTS_AES | — | — | — |
1: #341
The following peripherals have some driver implementation for all supported chips, though the drivers may not be feature-complete:
Peripheral | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S2 | ESP32-S3 |
---|---|---|---|---|---|---|---|
AES | ✓ | — | ✓ | ✓ | ✓ | ✓ | ✓ |
ASSIST_DEBUG | — | ✓ | ✓ | ✓ | ✓ | — | ✓ |
DAC | ✓ | — | — | — | — | ✓ | — |
DMA | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
GPIO | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
I2C0 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
I2C1 | ✓ | — | — | — | ✓ | ✓ | ✓ |
I2S0 | ✓ | — | ✓ | ✓ | ✓ | ✓ | ✓ |
I2S1 | ✓ | — | — | — | — | — | ✓ |
LEDC | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
PCNT | ✓ | — | — | ✓ | ✓ | ✓ | ✓ |
PWM0 | ✓ | — | — | ✓ | ✓ | — | ✓ |
PWM1 | ✓ | — | — | — | — | — | ✓ |
RMT | ✓ | — | ✓ | ✓ | ✓ | ✓ | ✓ |
RNG | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
RSA | ✓ | — | ✓ | ✓ | ✓ | ✓ | ✓ |
SARADC | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
SHA | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
SPI2 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
SPI3 | ✓ | — | — | — | — | ✓ | ✓ |
SYSTIMER | — | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
TIMG0 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
TIMG1 | ✓ | — | ✓ | ✓ | ✓ | ✓ | ✓ |
UART0 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
UART1 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
UART2 | ✓ | — | — | — | — | — | ✓ |
USB_DEVICE | — | — | ✓ | ✓ | ✓ | — | ✓ |
USB0 | — | — | — | — | — | ✓ | ✓ |
Metadata
Metadata
Assignees
Type
Projects
Status