Skip to content

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

ExampleESP-IDFDescription
lvgl_9_uiFactory example
screen_cameraCamera preview
sx1262_lora_send_receiveSX1262 LoRa send/receive
l76kL76K GPS
es8311Audio codec
deep_sleepDeep sleep (avg 1.2 mA)
icm20948ICM20948 IMU
aw86224Vibration motor
xiaozhiXiaoZhi AI chatbot

ESP-IDF (Primary)

  1. Install Visual Studio Code and the ESP-IDF extension
  2. Clone the repository:
    shell
    git clone --recursive https://github.com/Xinyuan-LilyGO/T-Display-P4.git
    git submodule update --init --recursive
  3. Install ESP-IDF v5.4.1 and configure the extension
  4. Open "SDK Configuration Editor", select the example to build and the screen type, click Save
  5. Set target to ESP32P4, click "Build Project", then "Flash Project"

PlatformIO

  1. Install Visual Studio Code and the PlatformIO IDE extension
  2. Open the T-Display-P4 project folder
  3. Open platformio.ini and select your example
  4. 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

  1. ESP-IDF — Primary platform
  2. Arduino IDE
  3. PlatformIO
  4. 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

FeatureSpecification
MCUESP32-P4
Flash16 MB
Co-processorESP32-C6-FH4, 4 MB PSRAM, SDIO
Wi-FiWi-Fi 6 (ESP32-C6)
BluetoothBluetooth 5.3 LE (ESP32-C6)
Display4.05" MIPI TFT (540×1168) / 4.1" AMOLED (568×1232)
Touch10-point capacitive
LoRaSX1262 (HPD16A module)
GPSL76K
RTCPCF8563
AudioES8311 codec + NS4150B amplifier
VibrationAW86224 linear motor
IMUICM20948 nine-axis
Battery MonitorBQ27220
CameraOV2710 (MIPI)
I/O ExpanderXL9535
USB1 × Type-C

Pin Diagram

AMOLED Version

T-Display P4 AMOLED pin diagram

TFT Version

T-Display P4 TFT pin diagram

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_sleep example.

  • Q. ESP-IDF menuconfig reports asyncio.exceptions.LimitOverrunError? A. This is a bug in esp-idf v5.4–v5.5. In esp-idf-v5.x/tools/idf_py_actions/tools.py line 351, change limit=1024 * 256 to limit=1024 * 512.

Version History

VersionRelease DateUpdate Description
T-Display-P4 V1.02025-06-13Initial version
T-Display-P4-Keyboard V1.02025-09-12Keyboard expansion board initial version