ESP32-C6-Touch-LCD-1.54
This product is designed by Waveshare, featuring a small square-shaped injection-molded plastic case. It is compact, aesthetically pleasing, and has a premium feel. It integrates a 1.54inch LCD, a 6-axis IMU, dual microphone arrays, and a TF card slot, providing hardware foundations for display, sensing, voice, and multimedia storage. Leveraging this hardware, the product supports interactive mini-games, voice wake-up, noise reduction, and can connect to AI online large model platforms to enable intelligent voice interaction and continuous upgrades.
The main difference between the ESP32-C6-LCD-1.54 and ESP32-C6-Touch-LCD-1.54 products is whether the screen has touch functionality; all other features are identical.
| SKU | Product |
|---|---|
| 34658 | ESP32-C6-LCD-1.54 |
| 34660 | ESP32-C6-LCD-1.54-EN |
| 34659 | ESP32-C6-Touch-LCD-1.54 |
| 34661 | ESP32-C6-Touch-LCD-1.54-EN |
Features
- Powered by the ESP32-C6 high-performance 32-bit RISC-V processor with a main frequency up to 160MHz
- Supports 2.4 GHz Wi-Fi (802.11 b/g/n) and Bluetooth 5, with an onboard antenna for excellent RF performance
- Built‑in 512KB SRAM and 320KB ROM, plus an external 16MB Flash
- Features a Type-C interface, eliminating the hassle of plug orientation and enhancing user convenience and device compatibility
- Onboard 1.54inch capacitive LCD screen, 240 × 240 resolution, 262K colors, capable of displaying color images clearly
- Onboard ES7210 audio codec chip, supporting dual-microphone audio capture
- Onboard ES8311 audio codec chip, NS4150B power amplifier chip, microphone, and speaker
- Onboard QMI8658 6-axis IMU (3-axis accelerometer and 3-axis gyroscope) for detecting motion and posture in expanded applications
- Built-in ST7789 driver IC, communicating via SPI interface
- Built-in CST816 capacitive touch controller, communicating via I2C interface (touch version only)
- Onboard PLUS and BOOT buttons, both customizable for function development
- Onboard 3.7V MX1.25 lithium battery charge/discharge interface
- Exposes 1-ch I2C, 1-ch USB and 1-ch UART pads for external devices connection and debugging, enabling flexible peripheral configuration
- Onboard TF card slot supporting storage expansion and high-speed data transfer, facilitating functions like data logging and media playback while simplifying circuit design
Onboard Resources

- ESP32-C6 Integrates a RISC-V single-core processor running at 160MHz, supports 2.4GHz Wi-Fi 6 and BLE 5
- 16MB NOR-Flash
- NS4150B Audio power amplifier chip
- ES8311 Low-power audio codec chip
- ES7210 ADC chip for echo cancellation circuit
- Battery charge/discharge management chip
- QMI8658 6-axis IMU includes a 3-axis gyroscope and a 3-axis accelerometer
- PLUS button
- PWR button
- BOOT button Used for device startup and functional debugging
- Microphone
- TF card slot
- Onboard antenna Supports 2.4GHz Wi-Fi 6 (802.11 b/g/n) and Bluetooth 5 (LE)
- MX1.25 lithium battery header MX1.25 2PIN connector for connecting a 3.7V lithium battery, supports charging and discharging
- Type-C port
- MX1.25 speaker header
- 1.54inch display panel connector
LCD Screen Specifications
| Display Panel | IPS | Display Size | 1.54inch |
|---|---|---|---|
| Resolution | 240 × 240 pixels | Display Colors | 262K |
| Communication Interface | 4-wire SPI | Driver IC | ST7789 |
| Touch Type (Touch Version Only) | Capacitive touch | Touch IC (Touch Version Only) | CST816 |
| Active Display Area | 27.72 × 27.72 mm | - | - |
SPI Communication Protocol:

-
Note: Unlike the traditional SPI protocol, because only display functionality is needed, the data line from the slave to the master is omitted
-
RESX is the Reset pin; it is pulled low during module power-up and is normally set to 1.
-
CSX is the slave chip select pin; the chip is enabled only when CS is low
-
D/CX is the data/command control pin of the chip. When DC = 0, commands are written; when DC = 1, data is written.
-
SDA is the data transmission pin, specifically for RGB data.
-
SCL is the SPI communication clock pin.
-
For SPI communication, data transmission follows a specific timing sequence, which are determined by the combination of clock phase (CPHA) and clock polarity (CPOL):
-
The level of CPHA determines whether data is captured on the first or second clock transition edge of the serial synchronous clock. When CPHA = 0, data is captured on the first transition edge;
-
The level of CPOL determines the idle level of the serial synchronous clock. CPOL = 0 means the idle state is low level.
-
As shown in the diagram, data transmission begins on the first falling edge of SCLK, with 8 bits of data transferred per clock cycle using SPI mode 0, transmitting bits from MSB to LSB
Peripheral Quick Reference
| Module | Device / Function | Interface | Address / Parameters | GPIO / Signals |
|---|---|---|---|---|
| LCD | 1.54inch SPI LCD | 4-wire SPI | 240x240, commonly RGB565, MISO not used | CLK=GPIO1, DIN=GPIO2, DC=GPIO3, RST=GPIO4, CS=GPIO11, BL=GPIO6 |
| Touch | CST816 capacitive touch | I2C | 7-bit address 0x15 | SCL=GPIO7, SDA=GPIO8, INT=GPIO5 |
| IMU | QMI8658 6-axis sensor | I2C | 7-bit address 0x6B | SCL=GPIO7, SDA=GPIO8, INT=GPIO10 |
| Audio DAC/Codec | ES8311 | I2C + I2S | 7-bit address 0x30 | SCL=GPIO7, SDA=GPIO8; MCLK=GPIO19, SCLK=GPIO20, ASDOUT=GPIO21, LRCK=GPIO22, DSDIN=GPIO23 |
| Microphone ADC | ES7210 | I2C + I2S | 7-bit address 0x80 | Shares I2C/I2S with Codec |
| Amplifier | NS4150B | GPIO control + analog audio | Mono amplifier | PA_CTRL=GPIO15 |
| TF Card | TF card slot | SPI | Shares SPI clock/data with LCD; independent CS | SCK=GPIO1, MOSI=GPIO2, MISO=GPIO16, SDCS=GPIO17 |
| Battery Sampling | B+ divided to ADC | ADC | R29 pull-up 200K, R31 pull-down 100K; VBAT = VADC × 3 | GPIO0 / BAT_ADC |
| USB Type-C | ESP32-C6 native USB | USB | Download, logging | USB_N=GPIO12, USB_P=GPIO13 |
| UART0 | Default serial / expansion port | UART | Debug / expansion pads | ESP_TXD=GPIO16, ESP_RXD=GPIO17 |
| Charging Management | ETA6098 | Power | Single-cell Li-ion charge/discharge | Battery connector |
| 3.3 V Power | TMI3112H | DC-DC | System 3.3V | 3V3 |
| BOOT Button | BOOT | GPIO / Download mode | Pull-up, low when pressed | GPIO9 |
| User Button | KEY_PLUS | GPIO | Onboard button / function key | GPIO18 |
| PWR Button | PWR | ECJ23001-4FCBD6 switch IC | Long press to power off, short press to power on |
Pinout Definition
When using the GPIO terminals reserved on the ESP32-C6-Touch-LCD-1.54 board, note that this board uses the ESP32-C6, and the BOOT, USB, and UART assignments differ from those of ESP32-S3 series boards. Avoid connecting according to old board wiring to prevent functional issues.
Expansion Interface
| Type | Signals |
|---|---|
| Power | 3V3 / GND |
| I2C | SCL(GPIO7) / SDA(GPIO8) |
| UART | TX(GPIO16) / RX(GPIO17) |
| Control | CHIP_EN / CHG_STAT |
GPIO Allocation
| GPIO | Signal Name | Connected To | Remarks |
|---|---|---|---|
| GPIO0 | BAT_ADC | Battery voltage divider sampling | R29=200K, R31=100K; VBAT = VADC × 3 |
| GPIO1 | LCD_CLK / SCK | LCD SPI CLK / TF card SCK | LCD and TF share SPI clock |
| GPIO2 | LCD_DIN / MOSI | LCD SPI MOSI / TF card MOSI | LCD and TF share SPI data |
| GPIO3 | LCD_DC | LCD data/command | - |
| GPIO4 | LCD_RST | LCD reset; touch reset network related | - |
| GPIO5 | TP_INT | Touch interrupt | - |
| GPIO6 | LCD_BL | LCD backlight control | - |
| GPIO7 | SCL / TP_SCL / IMU_SCL / CODEC_SCL | Shared I2C SCL | Connected to expansion port |
| GPIO8 | SDA / TP_SDA / IMU_SDA / CODEC_SDA | Shared I2C SDA | Connected to expansion port |
| GPIO9 | BOOT | BOOT button | ESP32-C6 download mode pin; low when pressed |
| GPIO10 | IMU_INT | QMI8658 interrupt | - |
| GPIO11 | LCD_CS | LCD SPI chip select | - |
| GPIO12 | USB_N | USB Type-C D- | ESP32-C6 native USB |
| GPIO13 | USB_P | USB Type-C D+ | ESP32-C6 native USB |
| GPIO15 | PA_CTRL | NS4150B amplifier control | Amplifier enable control |
| GPIO16 | MISO / ESP_TXD | TF card MISO / UART TX | Shared with UART expansion function; beware of conflicts when using |
| GPIO17 | SDCS / ESP_RXD | TF card CS / UART RX | Shared with UART expansion function; beware of conflicts when using |
| GPIO18 | KEY_PLUS | Onboard button | User button / function key |
| GPIO19 | I2S_MCLK | Audio MCLK | ES8311 / ES7210 |
| GPIO20 | I2S_SCLK | Audio BCLK/SCLK | ES8311 / ES7210 |
| GPIO21 | I2S_ASDOUT | Audio data output | Codec/ADC audio data |
| GPIO22 | I2S_LRCK | Audio LRCK/WS | ES8311 / ES7210 |
| GPIO23 | I2S_DSDIN | Audio data input | ES8311 / ES7210 |
Dimensions

Development Methods
The ESP32-C6-LCD-1.54 and ESP32-C6-Touch-LCD-1.54 support two development frameworks: Arduino IDE and ESP-IDF, offering developers flexible choices. You can select the appropriate development tool based on project requirements and personal preferences.
Both development methods have their own advantages. Developers can choose based on their needs and skill levels. Arduino is simple to learn and quick to start, suitable for beginners and non-professionals. ESP-IDF provides more advanced development tools and stronger control capabilities, suitable for developers with professional backgrounds or higher performance requirements, and is more appropriate for complex project development.
-
Arduino IDE is a convenient, flexible, and easy-to-use open-source electronics prototyping platform. It requires minimal foundational knowledge, allowing for rapid development after a short learning period. Arduino has a huge global user community, providing a vast amount of open-source code, project examples, and tutorials, as well as a rich library ecosystem that encapsulates complex functions, enabling developers to implement various features rapidly. You can refer to the Working with Arduino to complete the initial setup, and the tutorial also provides related example programs for reference.
-
ESP-IDF, short for Espressif IoT Development Framework, is a professional development framework launched by Espressif Systems for its ESP series of chips. It is based on C language development and includes compilers, debuggers, flashing tools, etc. It supports development via command line or integrated development environments (such as Visual Studio Code with the Espressif IDF plugin), which provides features like code navigation, project management, and debugging. We recommend using VS Code for development. For the specific configuration process, please refer to the Working with ESP-IDF. The tutorial also provides relevant example programs for reference.

