Skip to content

LilyGo T-Display AMOLED 1.64

The brightest screen in the lineup: a 1.64” 280x456 AMOLED on an ESP32-S3 with 16 MB of flash and 8 MB of PSRAM. Same silicon as the T-Display-S3 and nothing else in common — the panel rides a quad-SPI bus instead of an 8-bit parallel one, which is what leaves both 0.1” headers almost entirely free.

Chip ESP32-S3 (S3R8)
Flash 16 MB
PSRAM 8 MB
Max LEDs 256
Audio ✔
Display 1.64" 280x456 ICNA3311/CO5300 AMOLED (QSPI)
Touch ✔
Storage On-chip FAT (USB drive)
Network ✔
Update modes Standalone (WiFi/OTA) · Loader (USB-drop)

Props where the screen is the prop — a wrist display, a gauntlet readout, a diagnostic panel on the side of a crate. AMOLED blacks are actually black, so white-on-black text and glowing instrument faces read the way they do in the reference art. The board also arrives with the things that usually cost you a weekend: capacitive touch, a Qwiic socket for sensors, and the house amp wiring already on contiguous pads.

GPIOCan doNotes
0 in / out BOOT button, strapping
1 in / out / PWM / ADC ADC1_CH0 / TOUCH1
2 in / out / PWM / ADC ADC1_CH1 / TOUCH2
3 in / out / PWM / ADC ADC1_CH2 / TOUCH3 (house I2S LRC)
5 in / out / PWM / ADC ADC1_CH4 / TOUCH5 (house I2S BCLK)
18 in / out / PWM / ADC ADC2_CH7 (house I2S DIN)
21 in / out / PWM house amp GAIN
47 in / out / PWM house amp SD/enable
48 in / out / PWM house LED strip data
38 in / out / PWM
39 in / out / PWM MTCK
40 in / out / PWM MTDO
41 in / out / PWM MTDI
42 in / out / PWM MTMS
43 in / out / PWM U0TXD, Qwiic-UART socket
44 in / out / PWM U0RXD, Qwiic-UART socket
45 in / out / PWM strapping: VDD_SPI
46 in / out / PWM strapping: boot mode

The panel, the battery ADC and the BOOT button are not in that table on purpose: they belong to the board, and a show that targeted one would break it. Everything listed is on one of the two 0.1” headers.

House standard for this board — an LED strip’s data line goes to GPIO48, which sits directly below two VBUS pads and a GND, so +5V/GND/DATA land on three neighbouring holes. A MAX98357A-class amp goes on LRC=3, BCK=5, DIN=18, with GAIN=21 and SD=47. A unit wired differently still wins: name the three clock/data pins in an audio bus in config.json and the board follows.

Brightness is a panel command, not a backlight pin — there is no PWM to fade, and nothing for a show to drive. The firmware also owns GPIO16 (silkscreened TFT_EN): it powers the panel, and the backend re-asserts it after deep sleep.

The JST-SH socket beside the USB port and the header’s SCL/SDA pads are one I2C bus, and two parts the firmware owns already sit on it: the touch controller at 0x38 and the charger/PMU at 0x6A. A show that declares a part at either address is refused by name at load rather than quietly breaking touch or reconfiguring the charger.

Everything else plugs in and works. The loader predeclares the bus as qwiic, so a sensor only needs:

"sensors": {
"temp": { "driver": "tmp102", "bus": "qwiic", "addr": "0x48", "hz": 4 }
}