Skip to content

Waveshare ESP32-S3-Touch-LCD-1.28

Support for the Waveshare ESP32-S3-Touch-LCD-1.28 board

Support for the Waveshare ESP32-S3-Touch-LCD-1.28 board @author Gunar Schorcht gunar@schorcht.net @author Yahia Abdella yahia.abdella@tuhh.de

\section waveshare_esp32s3_touch_lcd_128 Waveshare ESP32-S3-Touch-LCD-1.28

Overview

The Waveshare ESP32-S3-Touch-LCD-1.28 is a compact development board built around the ESP32-S3 microcontroller with an integrated 1.28-inch round TFT LCD display and capacitive touch panel.

Waveshare ESP32-S3-Touch-LCD-1.28

The main features of the board are:

  • ESP32-S3-N8R2 SoC with 2.4 GHz WiFi (802.11 b/g/n) and Bluetooth 5, BLE
  • 16 MB Flash
  • 2 MB PSRAM
  • 1.28-inch 240x240 round IPS LCD (GC9A01 driver)
  • Capacitive touch panel (CST816S controller)
  • 6-axis IMU (QMI8658 accelerometer + gyroscope)
  • USB Type-C connector
  • Battery charging circuit with battery voltage monitoring
  • BOOT button (active low, directly usable as user button)

Hardware

MCU

Most features of the board are provided by the ESP32-S3 SoC. For detailed information about the ESP32-S3 SoC variant (family) and ESP32x SoCs, see section esp32_mcu_esp32 “ESP32 SoC Series”.

Board Configuration

The board integrates a 1.28-inch round IPS LCD driven by a GC9A01 display controller via SPI, a CST816S capacitive touch controller connected via I2C, and a QMI8658 6-axis IMU also connected via I2C. A BOOT button on GPIO0 is directly usable as a user button.

The default board configuration provides:

  • 1 x ADC channel (battery voltage monitoring)
  • 1 x SPI (display)
  • 1 x I2C (touch controller and IMU)
  • 1 x UART (console)

The following table shows the default board configuration sorted by peripheral function. This configuration can be overridden by esp32_application_specific_configurations “application-specific configurations”.

Function | GPIOs | Remarks | Configuration :---------------|:-------|:--------|:---------------------------------- BTN0 | GPIO0 | | | ADC_LINE(0) | GPIO1 | Battery voltage | esp32_adc_channels "ADC Channels" SPI_DEV(0) CLK | GPIO10 | LCD SCLK, GC9A01 | esp32_spi_interfaces "SPI Interfaces" SPI_DEV(0) MOSI | GPIO11 | LCD SDA, GC9A01 | esp32_spi_interfaces "SPI Interfaces" SPI_DEV(0) MISO | GPIO12 | LCD SDO, GC9A01 | esp32_spi_interfaces "SPI Interfaces" SPI_DEV(0) CS0 | GPIO9 | LCD CS, GC9A01 | esp32_spi_interfaces "SPI Interfaces" LCD DC | GPIO8 | GC9A01 data/command | | LCD RST | GPIO14 | GC9A01 reset | | LCD BL | GPIO2 | Backlight control | | I2C_DEV(0) SCL | GPIO7 | Touch + IMU | esp32_i2c_interfaces "I2C Interfaces" I2C_DEV(0) SDA | GPIO6 | Touch + IMU | esp32_i2c_interfaces "I2C Interfaces" Touch IRQ | GPIO5 | CST816S interrupt | | Touch RST | GPIO13 | CST816S reset | | UART_DEV(0) TxD | GPIO43 | Console (fixed) | esp32_uart_interfaces "UART interfaces" UART_DEV(0) RxD | GPIO44 | Console (fixed) | esp32_uart_interfaces "UART interfaces"

For detailed information about the peripheral configurations of ESP32-S3 boards, see section esp32_peripherals “Common Peripherals”.

Board Pinout

The following figures show the board hardware layout.

Waveshare ESP32-S3-Touch-LCD-1.28 Hardware Layout Waveshare ESP32-S3-Touch-LCD-1.28 Hardware Layout

The board schematic and additional documentation can be found on the Waveshare Wiki.

Flashing the Device

Flashing RIOT is quite easy. The board has a USB-C connector with reset/boot/flash logic. Just connect the board to your host computer and run: For detailed information about ESP32-S3 as well as configuring and compiling RIOT for ESP32-S3 boards, see esp32_riot.