LilyGo T-Display-S3 AMOLED
by LilyGo
An upgraded version of the T-Display-S3 with a 1.91-inch AMOLED screen, offering improved resolution and color vibrancy.

On this page
Pinout
28 pins · 2.54 mm pitch| Pin | GPIO | Labels | Status | Capabilities | Notes |
|---|---|---|---|---|---|
| 1 | - | 3V3 | power | - | Left header; 3.3V regulator (RT9080) output |
| 2 | 1 | IO1 | safe | adc · touch · pwm | Left header; ADC1_CH0, TOUCH1 |
| 3 | 2 | IO2 | safe | adc · touch · pwm | Left header; ADC1_CH1, TOUCH2 |
| 4 | 3 | IO3 | strapping | adc · touch · pwm | Left header; ADC1_CH2, TOUCH3 |
| 5 | 10 | IO10FSPICS0 | strapping | adc · touch · spi · pwm | Left header; ADC1_CH9, TOUCH10, default FSPI CS |
| 6 | 11 | IO11FSPID | strapping | adc · touch · spi · pwm | Left header; ADC2_CH0, TOUCH11, default FSPI MOSI |
| 7 | 12 | IO12FSPICLK | strapping | adc · touch · spi · pwm | Left header; ADC2_CH1, TOUCH12, default FSPI SCK |
| 8 | 13 | IO13FSPIQ | strapping | adc · touch · spi · pwm | Left header; ADC2_CH2, TOUCH13, default FSPI MISO |
| 9 | 14 | IO14FSPIWP | strapping | adc · touch · spi · pwm | Left header; ADC2_CH3, TOUCH14, default FSPI WP |
| 10 | 15 | IO15U0RTS | uart | adc · uart · pwm | Left header; ADC2_CH4, UART0 RTS |
| 11 | - | GND | ground | - | Left header ground |
| 12 | - | VBUSVSYS | power | - | Left header; 5V USB rail (VSYS) |
| 13 | - | VBUSVSYS | power | - | Left header; 5V USB rail (VSYS) |
| 14 | 16 | IO16U0CTS | uart | adc · uart · pwm | Left header; ADC2_CH5, UART0 CTS |
| 15 | - | GND | ground | - | Right header ground |
| 16 | - | GND | ground | - | Right header ground |
| 17 | 46 | IO46 | strapping | pwm | Right header; strapping pin |
| 18 | 45 | IO45 | strapping | pwm | Right header; strapping pin (VDD_SPI select) |
| 19 | 44 | IO44RXU0RXD | strapping | uart · i2c · pwm | Right header; UART0 RX, also on STEMMA QT/Qwiic I2C connector |
| 20 | 43 | IO43TXU0TXD | strapping | uart · i2c · pwm | Right header; UART0 TX, also on STEMMA QT/Qwiic I2C connector |
| 21 | 42 | IO42MTMS | strapping | pwm | Right header; JTAG MTMS |
| 22 | 41 | IO41MTDI | strapping | pwm | Right header; JTAG MTDI |
| 23 | 40 | IO40MTDO | strapping | pwm | Right header; JTAG MTDO |
| 24 | - | GND | ground | - | Right header ground |
| 25 | - | GND | ground | - | Right header ground |
| 26 | - | 3V3 | power | - | Right header; 3.3V output |
| 27 | - | 3V3 | power | - | Right header; 3.3V output |
| 28 | 39 | IO39MTCK | strapping | pwm | Right header; JTAG MTCK |
Start with these
4 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 |
|---|---|---|---|
| IO3 | 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 |
| IO46 | GPIO46 | Must be at a defined level during reset (with GPIO0) to select normal or download boot and UART/USB print mode. This pin is input-only (no output drive), so it should be left for its intended strapping function. | Strapping |
| IO45 | GPIO45 | Determines flash/PSRAM power voltage (3.3 V vs 1.8 V) at boot. Must match hardware configuration; using as GPIO can upset flash supply setting. | Strapping |
| IO44 | 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 |
| IO43 | U0TXD (GPIO43) | Used for bootloader output and UART console logs. If repurposed, you will lose the default serial output (and programming via UART0). | Other |
| IO42 | MTMS (GPIO42) | Default JTAG TMS signal for debugging. Using this pin for other purposes will disable the JTAG interface (unless JTAG is rerouted to USB). | Other |
| IO41 | MTDI (GPIO41) | Default JTAG TDI input for debugging. Should be reserved for JTAG or left unused if JTAG is to remain available. | Other |
| IO40 | MTDO (GPIO40) | Default JTAG TDO output for debugging. Using it as GPIO will interfere with JTAG debugging functionality. | Other |
| IO39 | MTCK (GPIO39) | Default JTAG debugging TCK pin. If JTAG is needed, this pin must be free; it may also be used internally for PSRAM chip select on certain modules, so avoid repurposing it. | Other |
Only if you know the tricks
wired to flash or USB - expect a fight| Pin | Label | What to know | Role |
|---|---|---|---|
| IO10 | FSPICS0 | Used to select the external flash chip. It is required for flash access and cannot be repurposed without losing flash connectivity | Flash |
| IO11 | FSPID | Used as a data line for flash (and in-package PSRAM). It should not be used as GPIO when the flash/PSRAM is in use. | Flash |
| IO12 | FSPICLK | Drives the flash (and PSRAM) clock. This critical signal must be reserved for memory and not used as general GPIO. | Flash |
| IO13 | FSPIQ | Used as a data line for flash/PSRAM transfers. Not available for other uses when flash/PSRAM is connected. | Flash |
| IO14 | FSPIWP | Connected to external flash (data/write-protect signal). Not recommended as GPIO because it’s reserved for flash operations. | Flash |
Pinout notes The LilyGo T-Display-S3 AMOLED breaks out 28 pins in total: 18 GPIO for your project, with 3V3 , GND and VBUS handling power. For peripherals, TX / RX on…
The LilyGo T-Display-S3 AMOLED breaks out 28 pins in total: 18 GPIO for your project, with 3V3, GND and VBUS handling power.
For peripherals, TX/RX on GPIO43 and GPIO44 cover serial logging and flashing.
On the analog side there are 10 ADC-capable pins for sensors and battery monitoring, PWM on every GPIO and 8 capacitive-touch inputs.
If you want zero surprises, IO1, IO2, IO15 and IO16 are free of any such role - the safest first picks. 9 of the exposed pins carry boot-time or system duties on the ESP32-S3 (IO3, IO46, IO45 and 6 more).
Getting started
flash your first firmware in ~2 minutesBoard: Lilygo T Display S3
USB CDC On Boot: Enabled
Flash Size: 16MB · DIO
Upload Speed: 921600
// blink
pinMode(1, OUTPUT);
digitalWrite(1, LOW); // on (often inverted)[env:lilygo_t_display_s3_amoled]
platform = espressif32
board = esp32-s3-devkitc-1
framework = arduino
monitor_speed = 115200
upload_speed = 921600esp32:
board: esp32-s3-devkitc-1
variant: lilygo_t_display_s3
framework:
type: esp-idf
# blink - GPIO1
output:
- platform: gpio
pin: 1
id: led_out
light:
- platform: binary
name: "LED"
output: led_outesptool.py --chip esp32s3 --port /dev/ttyACM0 \
write_flash 0x0 firmware.binSpecifications
ESP32-S3 · 60 × 25.5 mmAbout this board
At its core is the ESP32-S3 - a dual-core Xtensa with vector extensions suited to AI workloads.
Expect to pay about $32.50 - in line with other ESP32-S3 boards.
Onboard you'll find 8MB (OPI) PSRAM, an AMOLED 1.91" 536x240 display, battery charging (TP4065) via JST 1.25mm and Reset/Boot/IO21 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 AMOLED is a cutting-edge development board featuring an ESP32-S3 chip with integrated WiFi and Bluetooth 5 capabilities. It boasts a 1.91-inch AMOLED display with a resolution of 536x240 pixels, driven by an RM67162 controller, offering vibrant visuals for embedded applications.
With support for WiFi 802.11 b/g/n and Bluetooth 5 (LE), it ensures seamless wireless connectivity for IoT projects. The board is equipped with 8MB PSRAM and 16MB Flash memory, providing 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




