Skip to main content

ESP32 Supported Features

Detailed feature matrix across ESP32 chip variants in TuyaOpen.

Chip Comparison Matrixโ€‹

Chip Featuresโ€‹

FeatureESP32ESP32-S3ESP32-C3ESP32-C6
CPUDual Xtensa LX6Dual Xtensa LX7Single RISC-VSingle RISC-V
Wi-Fi802.11 b/g/n802.11 b/g/n802.11 b/g/n802.11 ax (Wi-Fi 6)
BluetoothClassic + BLE 4.2BLE 5.0BLE 5.0BLE 5.0
USBNoYes (OTG)NoNo

Peripheral Support by Chipโ€‹

The following table lists peripherals adapted in TuyaOpen for each chip.

PeripheralESP32ESP32-S3ESP32-C3ESP32-C6
Wi-FiYesYesYesYes
BLEYesYesYesYes
GPIOYesYesYesYes
UARTYesYesYesYes
PWMYesYesYesYes
ADCYesYesYesYes
I2CYesYesYesYes
SPINoNoNoNo
I2SYesYesN/AN/A
Flash storageYesYesYesYes
Hardware timerYesYesYesYes
WatchdogYesYesYesYes
RTCYesYesYesYes

Supported On-Board Peripheralsโ€‹

Audio Codecsโ€‹

DriverCodecNotes
tdd_audio_8311_codecES8311I2S, common on S3 boards
tdd_audio_es8388_codecES8388I2S, alternate codec
tdd_audio_es8389_codecES8389I2S
tdd_audio_no_codecNone (DAC)Direct DAC output
tdd_audio_atk_no_codecATK (no codec)Alternate no-codec path
note

Audio driver unified spec: 16000 Hz sample rate, I2S interface, 6 DMA descriptors, frame size 240.

LCD Driversโ€‹

DriverDisplayInterface
lcd_st7789_spiST7789 via SPISPI
lcd_st7789_80ST7789 via 8080Parallel 8-bit
oled_ssd1306SSD1306 OLEDI2C
lcd_sh8601SH8601 AMOLEDQSPI
note

ESP32 uses its own LVGL integration (via ESP-IDF LVGL component), not the TuyaOpen generic LVGL port.

Touchโ€‹

DriverController
touch_ft5x06FT5x06 capacitive touch

IO Expanderโ€‹

DriverChip
xl9555XL9555 I2C GPIO expander
tca9554TCA9554 I2C GPIO expander

LEDโ€‹

DriverType
tdd_led_esp_ws1280WS2812-compatible addressable LEDs via RMT

Supported Boardsโ€‹

All boards currently supported under boards/ESP32/:

BoardChipDescription
ESP32ESP32Base ESP32 module
ESP32-C3ESP32-C3Base ESP32-C3 module
ESP32-C6ESP32-C6Base ESP32-C6 module
ESP32-S3ESP32-S3Base ESP32-S3 module
ESP32S3_BREAD_COMPACT_WIFIESP32-S3Espressif ESP32-S3 breadboard
XINGZHI_ESP32S3_CUDE_0.96_OLED_WIFIESP32-S3XingZhi ESP32-S3 board with 0.96" OLED
WAVESHARE_ESP32S3_Touch_AMOLED_1.8ESP32-S3Waveshare ESP32-S3 board with 1.8" touch AMOLED
DNESP32S3ESP32-S3Zhengdian ESP32-S3 base board
DNESP32S3_BOXESP32-S3Zhengdian ESP32-S3 BOX board
DNESP32S3_BOX2_WIFIESP32-S3Zhengdian ESP32-S3 BOX2 (with 4G/charging)
WAVESHARE_ESP32C6_DEV_KIT_N16ESP32-C6Waveshare ESP32-C6 dev kit

Board-to-Peripheral Mappingโ€‹

BoardDisplayTouchAudio CodecIO ExpanderButtonLEDOther
ESP32ST7789 SPI 320ร—240โ€”ES8388XL9555โ€”โ€”Speaker enable
ESP32-C3โ€”โ€”โ€”โ€”โ€”โ€”UART only
ESP32-C6โ€”โ€”โ€”โ€”โ€”โ€”UART only
ESP32-S3โ€”โ€”โ€”โ€”โ€”โ€”UART only
ESP32S3_BREAD_COMPACT_WIFISSD1306 I2C 128ร—32โ€”โ€”โ€”GPIO0โ€”I2C/I2S
XINGZHI_ESP32S3_CUDE_0.96_OLED_WIFISSD1306 I2C 128ร—64โ€”โ€”โ€”GPIO0โ€”I2C/I2S
WAVESHARE_ESP32S3_Touch_AMOLED_1.8SH8601 SPI 368ร—448FT5X06 I2CES8311 (0x30)TCA9554โ€”โ€”โ€”
DNESP32S3ST7789 SPI 320ร—240โ€”ES8388 (0x20)XL9555โ€”โ€”Speaker enable
DNESP32S3_BOXST7789 I80 320ร—240โ€”ES8311/NS4168 (0x30)XL9555XL9555 keyRed LEDBuzzer
DNESP32S3_BOX2_WIFIST7789 I80 320ร—240โ€”ES8389 (0x20)XL9555โ€”โ€”4G module, USB switch, charging
WAVESHARE_ESP32C6_DEV_KIT_N16โ€”โ€”โ€”โ€”GPIO9WS1280 GPIO8โ€”

Applications Tested on ESP32โ€‹

These TuyaOpen applications have pre-built ESP32 configs:

Note

Applications fall into two categories:

  • Board-specific: Has a config/ subdirectory with one config per board, targeting boards with specific peripherals such as a display or audio codec.
  • Generic: No config/ subdirectory โ€” works on any base ESP32 module (ESP32 / ESP32-C3 / ESP32-S3 / ESP32-C6) without requiring board-specific hardware.

Board-Specific Applicationsโ€‹

your_chat_bot (AI Chatbot)โ€‹

BoardConfig File
DNESP32S3DNESP32S3.config
DNESP32S3_BOXDNESP32S3_BOX.config
DNESP32S3_BOX2_WIFIDNESP32S3_BOX2_WIFI.config
ESP32S3_BREAD_COMPACT_WIFIESP32S3_BREAD_COMPACT_WIFI.config
WAVESHARE_ESP32S3_Touch_AMOLED_1.8WAVESHARE_ESP32S3_TOUCH_AMOLED_1_8.config
XINGZHI_ESP32S3_CUDE_0.96_OLED_WIFIXINGZHI_ESP32S3_Cube_0_96OLED_WIFI.config

your_serial_chat_bot (Serial AI Chatbot)โ€‹

BoardConfig File
WAVESHARE_ESP32S3_Touch_AMOLED_1.8WAVESHARE_ESP32S3_TOUCH_AMOLED_1_8.config
XINGZHI_ESP32S3_CUDE_0.96_OLED_WIFIXINGZHI_ESP32S3_Cube_0_96OLED_WIFI.config

Generic Applicationsโ€‹

The following apps support all base ESP32 modules and require no board-specific peripherals:

ApplicationDescription
tuya_cloud/switch_demoTuya cloud-connected switch demo
tuya_cloud/weather_get_demoWeather data fetch demo

Referencesโ€‹