T-Display P4 get it now
Overview
T-Display P4 is a multi-functional development board based on ESP32-P4 (16 MB Flash) for complex graphics, multimedia, and IoT applications. Features a 4.05-inch MIPI TFT (540 × 1168) or 4.1-inch AMOLED (568 × 1232) with capacitive touch, ESP32-C6 auxiliary processor (Wi-Fi 6 + Bluetooth 5.3, SDIO), SX1262 LoRa (HPD16A module), L76K GPS, ES8311 + NS4150B audio, AW86224 linear vibration motor, ICM20948 IMU, BQ27220 battery monitor, OV2710 MIPI camera. Supports keyboard expansion board (T-Display-P4-Keyboard) with CC1101, NRF24L01, and NFC (ST25R3916).
Quick Start
Example Support
| Example | ESP-IDF | Description |
|---|---|---|
| lvgl_9_ui | ✓ | Factory example |
| screen_camera | ✓ | Camera preview |
| sx1262_lora_send_receive | ✓ | SX1262 LoRa send/receive |
| l76k | ✓ | L76K GPS |
| es8311 | ✓ | Audio codec |
| deep_sleep | ✓ | Deep sleep (avg 1.2 mA) |
| icm20948 | ✓ | ICM20948 IMU |
| aw86224 | ✓ | Vibration motor |
| xiaozhi | ✓ | XiaoZhi AI chatbot |
ESP-IDF (Primary)
- Install Visual Studio Code and the ESP-IDF extension
- Clone the repository:shell
git clone --recursive https://github.com/Xinyuan-LilyGO/T-Display-P4.git git submodule update --init --recursive - Install ESP-IDF v5.4.1 and configure the extension
- Open "SDK Configuration Editor", select the example to build and the screen type, click Save
- Set target to ESP32P4, click "Build Project", then "Flash Project"
PlatformIO
- Install Visual Studio Code and the PlatformIO IDE extension
- Open the
T-Display-P4project folder - Open
platformio.iniand select your example - Click ✓ to compile, click → to upload
Arduino
Configure board as ESP32P4 Dev Module with appropriate settings when Arduino ESP32 adds ESP32-P4 support.
Development Platforms
- ESP-IDF — Primary platform
- Arduino IDE
- PlatformIO
- MicroPython
Video
Key Features
- ESP32-P4 (16 MB Flash), ESP32-C6 co-processor (Wi-Fi 6 + BT 5.3, SDIO)
- 4.05" MIPI TFT (540 × 1168) or 4.1" AMOLED (568 × 1232), 10-point capacitive touch
- SX1262 LoRa (HPD16A module), L76K GPS, PCF8563 RTC
- ES8311 + NS4150B audio, AW86224 linear vibration motor
- ICM20948 9-axis IMU, BQ27220 battery monitor, LGS4056H charger
- OV2710 MIPI camera, XL9535 I/O expander
- Keyboard expansion: CC1101, NRF24L01, NFC (ST25R3916), TCA8418 keyboard driver
Product Parameters
| Feature | Specification |
|---|---|
| MCU | ESP32-P4 |
| Flash | 16 MB |
| Co-processor | ESP32-C6-FH4, 4 MB PSRAM, SDIO |
| Wi-Fi | Wi-Fi 6 (ESP32-C6) |
| Bluetooth | Bluetooth 5.3 LE (ESP32-C6) |
| Display | 4.05" MIPI TFT (540×1168) / 4.1" AMOLED (568×1232) |
| Touch | 10-point capacitive |
| LoRa | SX1262 (HPD16A module) |
| GPS | L76K |
| RTC | PCF8563 |
| Audio | ES8311 codec + NS4150B amplifier |
| Vibration | AW86224 linear motor |
| IMU | ICM20948 nine-axis |
| Battery Monitor | BQ27220 |
| Camera | OV2710 (MIPI) |
| I/O Expander | XL9535 |
| USB | 1 × Type-C |
Pin Diagram
AMOLED Version

TFT Version

For pin definitions see config files:
Dimension Diagram
Schematic
Datasheet
Software Development
Dependent Libraries
- (ESP-IDF based — all dependencies managed via IDF component manager)
FAQ
Q. Why does my board keep failing to upload programs? A. Hold down the BOOT button and try uploading again.
Q. Why can't I get a GPS fix in the factory firmware? A. Test outdoors or in an area with good GPS signal. Check the latest factory firmware.
Q. Battery not charging when powered off or battery life very short? A. T-Display-P4 supports charging when off. Factory firmware runs ~3–5 hours (no sleep). For sleep, use the
deep_sleepexample.Q. ESP-IDF menuconfig reports
asyncio.exceptions.LimitOverrunError? A. This is a bug in esp-idf v5.4–v5.5. Inesp-idf-v5.x/tools/idf_py_actions/tools.pyline 351, changelimit=1024 * 256tolimit=1024 * 512.
Version History
| Version | Release Date | Update Description |
|---|---|---|
| T-Display-P4 V1.0 | 2025-06-13 | Initial version |
| T-Display-P4-Keyboard V1.0 | 2025-09-12 | Keyboard expansion board initial version |


