Waveshare · ESP32-S3 · 1.69"

ESP32-S3-Touch-LCD-1.69

Dual-core 240 MHz LX7 with a 240×280 ST7789V2 display, capacitive touch, 6-axis IMU, RTC, and native USB-C.

ESP32-S3 · 240 MHz
16 MB Flash · 8 MB PSRAM
240×280 LCD
WiFi + BT5
Core Components
ESP32-S3
Xtensa LX7 dual-core · 240 MHz · WiFi 802.11 b/g/n · BT 5 LE
16 MB Flash 8 MB OPI PSRAM Native USB CDC
🖥️
ST7789V2 LCD
1.69" · 240×280 · RGB565 · SPI interface
SCLK=18 CS=16 RST=3 DC=2 BL=17
👆
CST816T Touch
Capacitive single-touch · I2C
SDA=11 SCL=10 I2C
🔄
QMI8658 IMU
6-axis · 3-axis accelerometer + 3-axis gyroscope · I2C
SDA=11 SCL=10 6-axis
🕐
PCF85063 RTC
Real-time clock · I2C · SH1.0 battery header
SDA=11 SCL=10 Battery header
🔋
Power
USB-C · MX1.25 LiPo · ETA6098 charger IC
USB-C PD LiPo charge No bridge chip
Build & Flash

FQBN

esp32:esp32:esp32s3:\
  USBMode=hwcdc,\
  CDCOnBoot=cdc,\
  FlashSize=16M,\
  PSRAM=opi

Serial Port

/dev/cu.usbmodem1101

Native USB CDC — no external USB-UART bridge. Flash via esptool.py.

TFT_eSPI key defines

#define ST7789_DRIVER
#define TFT_WIDTH  240
#define TFT_HEIGHT 280
#define TFT_SCLK   18
#define TFT_CS     16
#define TFT_DC      2
#define TFT_RST     3
#define TFT_BL     17

Python env

  • All tools run from repo .venv/ — never system Python
  • esptool.py for flashing bootloader + partitions + app
  • Default flash image saved in backup/