LilyGo T-Display-S3 Touch
by LilyGo
Similar to the T-Display-S3 but with a touch-enabled 1.9-inch display, enhancing interactivity for user interfaces.

On this page
LilyGo T-Display-S3 Touch Pinout
20 pins · 2.54 mm pitch| Pin | GPIO | Labels | Status | Capabilities | Notes |
|---|---|---|---|---|---|
| 1 | - | 3V3 | power | - | Left header - 3.3V power output |
| 2 | 1 | IO1TOUCH1ADC1_CH0 | safe | adc · touch | Left header - ADC1_CH0, capacitive touch |
| 3 | 2 | IO2TOUCH2ADC1_CH1 | safe | adc · touch | Left header - ADC1_CH1, capacitive touch |
| 4 | 3 | IO3TOUCH3ADC1_CH2 | strapping | adc · touch | Left header - ADC1_CH2, capacitive touch; ESP32-S3 strapping pin |
| 5 | 10 | IO10SPI_CSTOUCH10ADC1_CH9 | strapping | adc · touch · spi | Left header - default SPI CS, ADC1_CH9, capacitive touch |
| 6 | 11 | IO11SPI_DTOUCH11ADC2_CH0 | strapping | adc · touch · spi | Left header - default SPI MOSI (SPI_D), ADC2_CH0, capacitive touch |
| 7 | 12 | IO12SPI_CLKTOUCH12ADC2_CH1 | strapping | adc · touch · spi | Left header - default SPI SCK (SPI_CLK), ADC2_CH1, capacitive touch |
| 8 | 13 | IO13SPI_QTOUCH13ADC2_CH2 | strapping | adc · touch · spi | Left header - default SPI MISO (SPI_Q), ADC2_CH2, capacitive touch |
| 9 | - | GND | ground | - | Left header - ground |
| 10 | - | 5V | power | - | Left header - 5V input/output (USB VBUS) |
| 11 | - | GND | ground | - | Right header - ground |
| 12 | - | GND | ground | - | Right header - ground |
| 13 | 43 | IO43U0TXDCLK_OUT1 | uart | i2c · uart | Right header - also on Qwiic/STEMMA QT connector as I2C SDA; default UART0 TX (U0TXD) |
| 14 | 44 | IO44U0RXDCLK_OUT2 | uart | i2c · uart | Right header - also on Qwiic/STEMMA QT connector as I2C SCL; default UART0 RX (U0RXD) |
| 15 | 18 | IO18U1RXDADC2_CH7 | uart | adc · i2c · uart | Right header - I2C SDA shared with the CST816 touch controller; also ADC2_CH7 / U1RXD |
| 16 | 17 | IO17U1TXDADC2_CH6 | uart | adc · i2c · uart | Right header - I2C SCL shared with the CST816 touch controller; also ADC2_CH6 / U1TXD |
| 17 | 21 | IO21 | safe | - | Right header - CST816 touch reset (RST); free only if touch reset is not used |
| 18 | 16 | IO16ADC2_CH5 | safe | adc | Right header - CST816 touch interrupt (INT); also ADC2_CH5 |
| 19 | - | GND | ground | - | Right header - ground |
| 20 | - | 3V3 | power | - | Right header - 3.3V power output |
Start with these
6 pins with no boot or system involvementFreely assignable - no strapping, flash, USB or JTAG duties. Ideal first picks for buttons, sensors and LEDs.
Fine - with a little care
7 pins · 4 things to knowIO3 Bootstrapping pin (controls JTAG signal source) Strapping
Sampled at reset to select JTAG interface (USB Serial/JTAG controller vs. external pins). Improper use can disable external JTAG or alter debug interface.
IO10IO11IO12IO13 General-purpose SPI2 (FSPI) IO MUX pins Other
IO MUX pin of the general-purpose SPI2 (FSPI) bus, not of the in-package flash - that sits on GPIO26-32. The datasheet lists it as a priority-2 pin ("can be freely used without restrictions"), so it is only taken if your board wires flash, an SD card or a display to FSPI.
- IO10General-purpose SPI2 (FSPI) IO MUX pin - chip select (FSPICS0)
- IO11General-purpose SPI2 (FSPI) IO MUX pin - data in (FSPID)
- IO12General-purpose SPI2 (FSPI) IO MUX pin - clock (FSPICLK)
- IO13General-purpose SPI2 (FSPI) IO MUX pin - data out (FSPIQ)
IO43 UART0 transmit pin (U0TXD), default serial console TX UART
Used for bootloader output and UART console logs. If repurposed, you will lose the default serial output (and programming via UART0).
IO44 UART0 receive pin (U0RXD), default serial console RX UART
Used for bootloader input (download mode via serial). If repurposed, you cannot use the default UART0 download mode for programming the chip.
The LilyGo T-Display-S3 Touch breaks out 20 pins in total: 13 GPIO for your project, with 3V3, GND and 5V handling power.
Beyond plain digital I/O you get 10 ADC-capable pins for sensors and battery monitoring and 7 capacitive-touch inputs.
7 of the exposed pins carry boot-time or system duties on the ESP32-S3 (IO3, IO10, IO11 and 4 more) - check the guidance above before wiring anything to them. IO1, IO2, IO18, IO17 and 2 more are free of any such role - the safest first picks.
Getting started
flash your first firmware in ~2 minutesBoard: ESP32S3 Dev Module USB CDC On Boot: Enabled Flash Size: 16MB (128Mb) Flash Mode: DIO PSRAM: OPI PSRAM Partition Scheme: 16M Flash (3MB APP/9.9MB FATFS) Upload Speed: 921600
// toggle GPIO1 - wire an LED and resistor to it
void setup() {
pinMode(1, OUTPUT);
}
void loop() {
digitalWrite(1, HIGH); delay(500);
digitalWrite(1, LOW); delay(500);
}[env:lilygo_t_display_s3_touch]
platform = espressif32
board = esp32-s3-devkitc-1
framework = arduino
monitor_speed = 115200
upload_speed = 921600
board_build.arduino.memory_type = qio_opi
build_flags = -DBOARD_HAS_PSRAMesp32-s3-devkitc-1 - or type it after board =.esp32:
board: esp32-s3-devkitc-1
variant: esp32s3
framework:
type: esp-idf
psram:
mode: octal
speed: 80MHz
# blink - GPIO1
output:
- platform: gpio
pin: 1
id: led_out
light:
- platform: binary
name: "LED"
output: led_outesp32-s3-devkitc-1 (same ids as PlatformIO).esptool.py --chip esp32s3 --port /dev/ttyACM0 \
--baud 921600 write_flash 0x0 firmware.bin--port = your /dev/tty* (macOS/Linux) or COMx (Windows).Specifications
ESP32-S3 · 62.5 × 25.4 mm · vs other ESP32 chips →Dimensions
About this board
Inside sits the ESP32-S3 - a dual-core Xtensa with vector extensions suited to AI workloads.
At $35.00 it's on the expensive side for an ESP32-S3 board - most land around $29.
Only 13 GPIO are broken out, where most ESP32-S3 boards manage about 23 - worth checking the pinout covers what you need.
Around the module: 8MB (OPI) PSRAM, an LCD 1.9" 170x320 display with touch, a Qwiic connector, battery charging (TP4054) via JST-GH 1.25mm and Reset/Boot buttons.
It flashes over native USB - no serial-converter driver needed, which isn't a given among ESP32-S3 boards.
The LilyGo T-Display-S3 is a powerful development board featuring an ESP32-S3 chip with integrated WiFi and Bluetooth 5 capabilities. Equipped with a 1.9-inch LCD (170x320) driven by an ST7789V controller, it provides a vibrant display for embedded applications.
With WiFi 802.11 b/g/n and Bluetooth 5 (LE), it offers seamless wireless connectivity for IoT projects. Its 8MB PSRAM and 16MB Flash memory ensure ample storage and performance.
Designed with multiple GPIOs, PWM, ADC, I2C, and SPI support, it is suitable for various applications, including sensor interfacing, graphical user interfaces, and wireless communication.
Where to buy
prices are typical street prices
Resources
Similar boards




