LilyGo T-Display-S3
by LilyGo
An ESP32-S3 development board equipped with a 1.9-inch LCD color screen and two programmable buttons, suitable for display-based applications.

On this page
Pinout
20 pins · 2.54 mm pitch| Pin | GPIO | Labels | Status | Capabilities | Notes |
|---|---|---|---|---|---|
| 1 | - | 3V3V3 | power | - | Left header (P2); 3.3V output |
| 2 | 1 | GPIO1TOUCH1ADC1_CH0 | safe | adc · touch · pwm | Left header (P2); ADC1_CH0, capacitive touch |
| 3 | 2 | GPIO2TOUCH2ADC1_CH1 | safe | adc · touch · pwm | Left header (P2); ADC1_CH1, capacitive touch |
| 4 | 3 | GPIO3TOUCH3ADC1_CH2 | strapping | adc · touch · pwm | Left header (P2); ADC1_CH2, capacitive touch; ESP32-S3 strapping pin |
| 5 | 10 | GPIO10SPI_CSADC1_CH9 | strapping | adc · touch · pwm · spi | Left header (P2); FSPI CS, ADC1_CH9, touch |
| 6 | 11 | GPIO11SPI_DADC2_CH0 | strapping | adc · touch · pwm · spi | Left header (P2); FSPI MOSI, ADC2_CH0, touch |
| 7 | 12 | GPIO12SPI_CLKADC2_CH1 | strapping | adc · touch · pwm · spi | Left header (P2); FSPI CLK, ADC2_CH1, touch |
| 8 | 13 | GPIO13SPI_QADC2_CH2 | strapping | adc · touch · pwm · spi | Left header (P2); FSPI MISO, ADC2_CH2, touch |
| 9 | - | GND | ground | - | Left header (P2) |
| 10 | - | 5V | power | - | Left header (P2); 5V (VBUS) input/output |
| 11 | - | GND | ground | - | Right header (P1) |
| 12 | - | GND | ground | - | Right header (P1) |
| 13 | 43 | GPIO43CLK_OUT1U0TXD | strapping | uart · pwm | Right header (P1); default UART0 TX; also on the bottom 4-pin JST |
| 14 | 44 | GPIO44CLK_OUT2U0RXD | strapping | uart · pwm | Right header (P1); default UART0 RX; also on the bottom 4-pin JST |
| 15 | 18 | GPIO18SDAU1RXDADC2_CH7 | uart | adc · i2c · uart · pwm | Right header (P1); board default I2C SDA (touch controller on Touch variant), ADC2_CH7 |
| 16 | 17 | GPIO17SCLU1TXDADC2_CH6 | uart | adc · i2c · uart · pwm | Right header (P1); board default I2C SCL (touch controller on Touch variant), ADC2_CH6 |
| 17 | 21 | GPIO21 | safe | pwm | Right header (P1); general IO; touch-controller reset on Touch variant |
| 18 | 16 | GPIO16ADC2_CH5 | safe | adc · pwm | Right header (P1); ADC2_CH5; touch-controller INT on Touch variant |
| 19 | - | GND | ground | - | Right header (P1) |
| 20 | - | 3V3V3 | power | - | Right header (P1); 3.3V 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
sampled at boot or shared with debug/serial| Pin | Label | What to know | Role |
|---|---|---|---|
| GPIO3 | GPIO3 | Sampled at reset to select JTAG interface (USB Serial/JTAG controller vs. external pins). Improper use can disable external JTAG or alter debug interface. | Strapping |
| GPIO10 | FSPICS0 | 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. | Other |
| GPIO11 | FSPID | 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. | Other |
| GPIO12 | FSPICLK | 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. | Other |
| GPIO13 | FSPIQ | 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. | Other |
| GPIO43 | U0TXD (GPIO43) | Used for bootloader output and UART console logs. If repurposed, you will lose the default serial output (and programming via UART0). | Other |
| GPIO44 | U0RXD (GPIO44) | Used for bootloader input (download mode via serial). If repurposed, you cannot use the default UART0 download mode for programming the chip. | Other |
Pinout notes The LilyGo T-Display-S3 pinout brings out 20 pins at a 2.54 mm pitch - 13 usable GPIO alongside the 3V, GND and 5V power rails. Peripheral wiring is…
The LilyGo T-Display-S3 pinout brings out 20 pins at a 2.54 mm pitch - 13 usable GPIO alongside the 3V, GND and 5V power rails.
Peripheral wiring is straightforward: I²C is mapped to SDA on GPIO18 and SCL on GPIO17.
Beyond plain digital I/O you get 10 ADC-capable pins for sensors and battery monitoring, PWM on every GPIO and 7 capacitive-touch inputs.
7 of the exposed pins carry boot-time or system duties on the ESP32-S3 (GPIO3, GPIO10, GPIO11 and 4 more) - check the guidance above before wiring anything to them. GPIO1, GPIO2, GPIO18, GPIO17 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]
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 →About this board
Inside sits the ESP32-S3 - a dual-core Xtensa with vector extensions suited to AI workloads.
At $23.00 it's cheaper than most ESP32-S3 boards, which usually run around $29.
Only 13 GPIO are broken out, where most ESP32-S3 boards manage about 22 - worth checking the pinout covers what you need.
Around the module: 8MB (OPI) PSRAM, an LCD 1.9" 170x320 display, a STEMMA QT connector, battery charging via JST-GH 1.25mm and Boot/Reset/IO14 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




