Waveshare · ESP32-S3 · 1.28" · 240×240
Waveshare ESP32-S3 Touch LCD 1.28" round specifications
The ESP32-S3-Touch-LCD-1.28 adds capacitive touch to Waveshare's round 1.28-inch display board. The 240×240 IPS panel (GC9A01A, SPI) sits under a CST816S touch controller on I2C, so a round watch-style interface can be operated directly on the glass.
The ESP32-S3R2 brings 2 MB of PSRAM, with 16 MB of external flash next to it, and a QMI8658 6-axis IMU is on board. A lithium battery connector with an ETA6096 charger and battery voltage sensing make it easy to build something portable.
Six GPIOs come out on a small SH1.0 connector, and Waveshare added a detail that is rare on boards this size: GPIO 4 and 5 drive MOSFET switch contacts next to the battery holder, so you can switch a small load such as a vibration motor directly.
- Screen
- 1.28" · 240×240
- Chip
- ESP32-S3
- Memory
- 16 MB flash, 2 MB PSRAM (QSPI)
- Input
- capacitive touch
Key features
- Round 1.28-inch IPS, 240×240, GC9A01A
- CST816S capacitive touch with gesture support
- ESP32-S3R2: 2 MB PSRAM, 16 MB flash
- QMI8658 6-axis IMU
- LiPo connector with ETA6096 charger
- Six GPIOs on SH1.0 plus MOSFET outputs for small loads
Specifications
| Manufacturer | Waveshare |
|---|---|
| Screen size | 1.28" |
| Resolution | 240×240 px |
| Colour depth | 16-bit |
| Display controller | GC9A01 (SPI) |
| Display interface | SPI |
| Touch | CST816S (capacitive, I2C) |
| Microcontroller | ESP32-S3 |
| Module | ESP32-S3R2 |
| CPU clock | 240 MHz |
| Internal SRAM | 512 KB |
| PSRAM | 2 MB (QSPI) |
| Flash | 16 MB |
| Wi-Fi | Yes |
| Bluetooth | Yes |
| Display type | IPS, round, 65K colours, Φ32.4 mm active area |
| Touch | Capacitive, CST816S (I2C) |
| IMU | QMI8658 6-axis |
| Battery | 3.7 V lithium via MX1.25, ETA6096 charger, voltage on GPIO 1 |
| Expansion | SH1.0 header with 6 GPIOs; MOSFET switch on GPIO 4/5 |
| USB | USB-C, CH343P USB-to-UART with auto-download |
| Development platforms (manufacturer) | Arduino IDE, MicroPython |
GPIO pinout
The GPIOs the board itself uses — display, touch and on-board peripherals — as published in the manufacturer’s documentation.
| GPIO | Function |
|---|---|
| GPIO 1 | BAT_ADC (battery voltage) |
| GPIO 2 | Backlight (TFT_BL) |
| GPIO 3 | IMU_INT2 (QMI8658) |
| GPIO 4 | IMU_INT1 (QMI8658) |
| GPIO 5 | TOUCH_INT |
| GPIO 6 | I2C_SDA (Touch) |
| GPIO 7 | I2C_SCL (Touch) |
| GPIO 8 | TFT_DC |
| GPIO 9 | TFT_CS |
| GPIO 10 | TFT_CLK |
| GPIO 11 | TFT_MOSI |
| GPIO 12 | TFT_MISO |
| GPIO 13 | TOUCH_RST |
| GPIO 14 | TFT_RST |
Source: www.waveshare.com. Always check against your board revision before wiring.
Free GPIOs and connectors
These GPIOs are not used by the display, touch or on-board peripherals, so you can wire your own sensors, buttons or relays to them.
| Pin | Capabilities | Note |
|---|---|---|
| GPIO 0 | GPIO, BOOT | Boot button |
| GPIO 15 | GPIO, PWM | On the SH1.0 6-pin GPIO header |
| GPIO 16 | GPIO, PWM | On the SH1.0 6-pin GPIO header |
| GPIO 17 | GPIO, PWM | On the SH1.0 6-pin GPIO header |
| GPIO 18 | GPIO, PWM | On the SH1.0 6-pin GPIO header |
| GPIO 21 | GPIO, PWM | On the SH1.0 6-pin GPIO header |
| GPIO 33 | GPIO, PWM | On the SH1.0 6-pin GPIO header |
| GPIO 43/TX | GPIO, UART_TX | UART0 TX |
| GPIO 44/RX | GPIO, UART_RX | UART0 RX |
- SH1.0 GPIO header — GPIO 15, 16, 17, 18, 21, 33
Six GPIOs led out per the wiki pin table
Good to know before you start
- The six free GPIOs are GPIO 15, 16, 17, 18, 21 and 33 on the SH1.0 header — you need an SH1.0 cable to use them.
- Only 2 MB of PSRAM; plan images accordingly.
- The backlight is controlled from GPIO 2, so brightness can be adjusted in hardware.
- Keep touch targets large: a 32 mm round screen leaves little room for small buttons.
What it is good for
- •Smartwatch-style interfaces with swipe navigation
- •Round touch controllers for lights or fans
- •Wearables and handheld gadgets with vibration feedback
- •Small IoT dashboards
LVGL support in LCD Ultra Pro
| Driver status | Matched to the manufacturer’s official demo, compile-tested |
|---|---|
| Arduino export | Complete LVGL 8.4 project with the display driver |
| USB Live preview | No |
| Orientations | 0° |
| Brightness control | Hardware backlight dimming |
Pick this board in the editor and the canvas matches its exact resolution and shape. Build the interface with widgets, add events without code, try it in Live Preview, then export it as a ready-to-compile Arduino project. See the documentation for the workflow.
Frequently asked questions
Which touch controller does the ESP32-S3-Touch-LCD-1.28 use?
A CST816S capacitive touch controller on I2C.
How many GPIOs are free?
Six, on an SH1.0 header: GPIO 15, 16, 17, 18, 21 and 33. GPIO 4 and 5 additionally drive MOSFET switch contacts for small loads.
Is there a version in a case?
Yes, the ESP32-S3-Touch-LCD-1.28-B comes in a CNC metal case with an acrylic bottom plate.
Does it support a battery?
Yes, a 3.7 V lithium cell on an MX1.25 connector, charged by an ETA6096 chip.
Sources
Specifications cross-checked against the manufacturer’s documentation (last checked 2026-10-27):
Last updated: