LilyGO · ESP32 · 1.14" · 135×240
LilyGO T-Display (classic) 1.14" specifications
The TTGO T-Display is the board that made small ESP32 displays popular: a classic ESP32 with a 1.14-inch 135×240 ST7789 screen, two buttons and pin headers on both sides, in the size of a stick of gum.
It uses an ESP32 with 4 MB of flash and no PSRAM, programmed through a USB-to-UART bridge (LilyGO lists CH34x, CH343 and CP21xx drivers depending on the batch). The display hangs on a dedicated SPI bus, and an ADC input on GPIO 34 can be switched on through GPIO 14.
Its big advantage over many newer boards is the number of free pins: both headers are packed with usable GPIOs, including a ready I2C pair on GPIO 21/22, so it is an easy choice when the display is only part of a bigger project.
- Screen
- 1.14" · 135×240
- Chip
- ESP32
- Memory
- 4 MB flash, no PSRAM
- Input
- no touch
Key features
- 1.14-inch 135×240 TFT, ST7789
- Classic ESP32, 4 MB flash
- Two buttons (GPIO 0 and GPIO 35)
- I2C on GPIO 21/22
- Many free GPIOs on two pin headers
- USB-to-UART programming
Specifications
| Manufacturer | LilyGO |
|---|---|
| Screen size | 1.14" |
| Resolution | 135×240 px |
| Colour depth | 16-bit |
| Display controller | ST7789 (SPI) |
| Display interface | SPI |
| Touch | None — 2 physical button(s) instead |
| Microcontroller | ESP32 |
| Module | ESP32-WROOM-32 |
| CPU clock | 240 MHz |
| Internal SRAM | 520 KB |
| PSRAM | None |
| Flash | 4 MB |
| Wi-Fi | Yes |
| Bluetooth | Yes |
| Display pins | MOSI 19, SCLK 18, CS 5, DC 16, RST 23, backlight 4 |
| Buttons | BUTTON1 GPIO 35, BUTTON2 GPIO 0 |
| I2C | SDA GPIO 21, SCL GPIO 22 |
| ADC input | GPIO 34, power enabled by GPIO 14 |
| USB-UART | CH34x / CH343 / CP21xx depending on batch |
| Development platforms (manufacturer) | Arduino IDE (TFT_eSPI), ESP32 core up to 2.0.14 |
GPIO pinout
The GPIOs the board itself uses — display, touch and on-board peripherals — as published in the manufacturer’s documentation.
| GPIO | Function |
|---|---|
| GPIO 4 | Backlight (TFT_BL) |
| GPIO 5 | TFT_CS |
| GPIO 14 | ADC_EN (battery measurement enable) |
| GPIO 16 | TFT_DC |
| GPIO 18 | TFT_SCLK |
| GPIO 19 | TFT_MOSI |
| GPIO 23 | TFT_RST |
| GPIO 34 | BAT_ADC (battery voltage) |
Source: github.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 | On-board button (BUTTON2 / BOOT) — read it as a button, keep it high at power-up |
| GPIO 2 | GPIO, PWM | On the left pin header — boot strapping pin, avoid pulling it at power-up |
| GPIO 12 | GPIO, PWM | On the left pin header — boot strapping pin, avoid pulling it at power-up |
| GPIO 13 | GPIO, PWM | On the left pin header |
| GPIO 15 | GPIO, PWM | On the left pin header — boot strapping pin, avoid pulling it at power-up |
| GPIO 17 | GPIO, PWM | On the left pin header |
| GPIO 21 | GPIO, PWM | On the left pin header — I2C SDA |
| GPIO 22 | GPIO, PWM | On the left pin header — I2C SCL |
| GPIO 25 | GPIO, PWM, DAC | On the right pin header — ADC2, no analog input while WiFi is on |
| GPIO 26 | GPIO, PWM, DAC | On the right pin header — ADC2, no analog input while WiFi is on |
| GPIO 27 | GPIO, PWM | On the right pin header |
| GPIO 32 | GPIO, PWM, ADC | On the right pin header — ADC1 |
| GPIO 33 | GPIO, PWM, ADC | On the right pin header — ADC1 |
| GPIO 35 | GPIO, ADC | On-board button (BUTTON1) — input-only |
| GPIO 36 | GPIO, ADC | On the right pin header — input-only |
| GPIO 37 | GPIO, ADC | On the right pin header — input-only |
| GPIO 38 | GPIO, ADC | On the right pin header — input-only |
| GPIO 39 | GPIO, ADC | On the right pin header — input-only |
- Left pin header — GPIO 21, 22, 17, 2, 15, 13, 12
GPIO 21 / 22 = I2C (SDA / SCL); 2, 12, 15 are boot strapping pins
- Right pin header — GPIO 36, 37, 38, 39, 32, 33, 25, 26, 27
36 / 37 / 38 / 39 are input-only
- On-board buttons — GPIO 0, 35
BUTTON2 = GPIO 0 (BOOT), BUTTON1 = GPIO 35 (input-only) — usable as hardware button inputs
Good to know before you start
- No PSRAM: the whole UI must fit in the ESP32's internal RAM, so keep screens and images lean.
- GPIO 2, 12 and 15 on the left header are boot strapping pins — don't pull them at power-up.
- GPIO 36–39 on the right header are input-only.
- GPIO 35 (BUTTON1) is input-only and GPIO 0 (BUTTON2) is the BOOT button; both work as hardware button inputs.
What it is good for
- •Sensor read-outs with many wired sensors
- •Crypto, weather and clock tickers
- •Learning ESP32 + LVGL on a cheap board
- •Debugging and test tools
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°, 90° |
| 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
What resolution is the TTGO T-Display?
135×240 pixels on a 1.14-inch TFT with an ST7789 controller.
Does the T-Display have PSRAM?
No. It uses a classic ESP32 with 4 MB of flash and no PSRAM.
Which pins are free on the T-Display?
Left header: 21, 22, 17, 2, 15, 13, 12; right header: 36–39 (input-only), 32, 33, 25, 26, 27. GPIO 2, 12 and 15 are strapping pins.
Can it be used in landscape?
Yes, LCD Ultra Pro supports 0° and 90°, giving 135×240 or 240×135.
Sources
Specifications cross-checked against the manufacturer’s documentation (last checked 2026-10-27):
Last updated: