3.5-inch ESP32-C5 Wi-Fi 6 touch display development board
中文 | English | Product | Documentation | Firmware | ESP-IDF Examples | Arduino Examples
ESP32-C5-Touch-LCD-3.5 is a resource package for an ESP32-C5 based 3.5-inch touch LCD development board. The board combines a 320 x 480 touch display with camera, audio, sensor, Micro SD, battery-management, and IO-expansion resources. This repository provides Arduino examples, ESP-IDF examples, factory firmware, bundled libraries, and the hardware schematic for evaluation and application development.
This package is intended for:
- Verifying the LCD, touch, camera, audio, sensors, Micro SD card, and power-management functions.
- Building touch applications with Arduino or ESP-IDF.
- Reusing the board drivers, LVGL examples, and ESP-IDF BSP in custom projects.
- Restoring the factory demo and reviewing the board schematic.
| Item | Description |
|---|---|
| MCU | ESP32-C5 with Wi-Fi 6 and Bluetooth LE |
| Display | 3.5-inch LCD, 320 x 480 resolution |
| LCD controller | ST7796, SPI interface |
| Touch controller | FT6336 capacitive touch controller, I2C address 0x38 |
| IO expander | CH32V006, I2C address 0x24 |
| Power management | AXP2101 PMIC, I2C address 0x34 |
| Sensors | QMI8658 6-axis IMU, PCF85063A RTC, SHTC3 temperature and humidity sensor |
| Camera | BF3901 camera sensor |
| Audio | ES8311 audio codec with microphone input and speaker output |
| Storage | Micro SD card slot |
| UI framework | Arduino examples use LVGL v8.4.0; ESP-IDF examples use LVGL v9.5.0 |
| Hardware file | Schematic |
CH32V006 is used for IO expansion and board-control functions such as LCD/touch reset, backlight control, and peripheral power control. Its control firmware is programmed at the factory. In normal use, only the ESP32-C5 application needs to be flashed.
| Development framework | Version | Examples |
|---|---|---|
| Arduino-ESP32 | 3.3.10 |
7 |
| ESP-IDF | v5.5.4 |
8 |
.
├── example/
│ ├── Arduino-v3.3.10/ # Arduino examples and bundled libraries
│ └── ESP-IDF-V554/ # ESP-IDF v5.5.4 examples
├── Firmware/ # Factory firmware
├── schematic/ # Hardware schematic
├── sdcard/ # Reserved for Micro SD card test resources
├── LICENSE
├── README.cn.md
├── README.en.md
└── README.md
Recommended environment:
- Arduino IDE
esp32 by Espressif Systems v3.3.10- Board selection:
ESP32C5 Dev Module
Steps:
- Install
esp32 by Espressif Systems v3.3.10from Arduino IDE Boards Manager. - Select
ESP32C5 Dev ModulefromTools>Board. - Copy the required bundled libraries from
example/Arduino-v3.3.10/libraries/to the Arduino libraries directory. The package includeslvgl,SensorLib,XPowersLib, andC5_BF3901_Camera. - Open an
.inofile underexample/Arduino-v3.3.10/example/, then build and flash it. - It is recommended to run
01_exiofirst to verify communication with the CH32V006 IO expander before testing the display and other peripherals.
The default Arduino library directory on Windows is usually:
C:\Users\<UserName>\Documents\Arduino\libraries
| Example | Function |
|---|---|
| 01_exio | CH32V006 IO expander test |
| 02_I2C_qmi8658 | QMI8658 6-axis IMU test |
| 03_SD_Card | Micro SD card read/write test |
| 04_I2C_pcf85063 | PCF85063A RTC test |
| 05_shtc3 | SHTC3 temperature and humidity sensor test |
| 06_axp2101_example | AXP2101 power, battery, and interrupt status test |
| 07_lvgl_demo | ST7796 display, FT6336 touch, backlight, and LVGL test |
Recommended environment:
- ESP-IDF v5.5.4
- Target chip:
esp32c5
Enter an ESP-IDF example directory and run:
idf.py set-target esp32c5
idf.py build flash monitor| Example | Function |
|---|---|
| 01_factory | Integrated factory demo for display, touch, camera, audio, sensors, and board resources |
| 02_lvgl_demo | LVGL display, touch, and benchmark demo |
| 03_sd_card | Micro SD card mount and read/write verification |
| 04_qmi8658 | QMI8658 accelerometer and gyroscope test |
| 05_pcf85063 | PCF85063A RTC test |
| 06_shtc3 | SHTC3 temperature and humidity sensor test |
| 07_exio | CH32V006 IO expander output test |
| 08_AXP2101 | AXP2101 PMIC configuration and status test |
The current Micro SD examples do not require preloaded files. Before running a test:
- Format the card as FAT32.
- Insert the card before starting the example.
- Back up important data because read/write examples may create or replace test files.
- Download the factory firmware
- Follow the verified flash address and settings in the product documentation.
The factory firmware can be used to restore or verify the integrated board demo. Confirm the serial port, target chip, flash mode, and flash address before programming.
- Start application changes in the example logic or LVGL layer. Change BSP pin definitions and power settings only when the hardware design requires it.
- The LCD and Micro SD card share SPI signals and use separate chip-select signals. Initialize and release the shared bus according to the selected example.
- Initialize the CH32V006 before using LCD reset, touch reset, backlight, or board-controlled power functions.
- The AXP2101 controls multiple board power rails. Do not disable a rail unless its load and startup dependency are understood.
- The factory example includes integrated camera, audio, sensor, display, touch, and Micro SD functionality; use the smaller examples for isolated peripheral verification.
This repository is licensed under the Apache License 2.0. See LICENSE.
Bundled third-party libraries and components retain their respective license terms. Refer to the license files included in their directories.
For product setup, development instructions, and troubleshooting, visit the Waveshare documentation. When reporting an issue, include the example path, framework version, reproduction steps, and complete serial log.