Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/Marcussacapuces91/doc-TFT_eSPI/llms.txt

Use this file to discover all available pages before exploring further.

TFT_eSPI supports an extensive range of TFT display controllers from multiple manufacturers, covering both SPI and parallel bus interfaces across all major target processors. Whether you are building on an ESP32 DevKit, a Raspberry Pi Pico, or an STM32 Nucleo board, there is a compatible display driver ready to use. The library’s configuration-based approach means you select your driver and pin assignments once in User_Setup.h, and every example sketch runs without modification.

Processor and Interface Compatibility

Not every interface type is available on every processor. The table below summarises which combinations of bus interface and DMA support are available for each supported processor family.
Processor4-wire SPI8-bit Parallel16-bit ParallelDMA Support
RP2040✅ All
ESP32✅ SPI only
ESP32-C3
ESP32-S2
ESP32-S3✅ SPI only
ESP8266
STM32Fxxx✅ SPI only
Other 32-bit
For non-optimised 32-bit processors, the library falls back to slower generic Arduino SPI calls. High-clock platforms such as Teensy 3.x/4.x still deliver excellent performance through this path.
4-wire SPI requires the display to expose a Data/Command control line alongside the standard SPI signals. This pin may be labelled DC, RS, or A0 depending on the display module manufacturer. 8-bit parallel (UNO-format mcufriend shields, for example) is not supported on the ESP8266 due to insufficient GPIO pins. These shields work well on STM32Fxxx Nucleo 64/144 boards and on the UNO-format ESP32.

Supported Display Controllers

TFT_eSPI includes optimised drivers for over twenty display controllers from eight manufacturers. The ILI9341 and ST7796 SPI-based displays are the recommended starting points for new projects — both are widely available, well documented, and well exercised in the community.

ILI9341

The most popular controller in the ecosystem. 240×320, 262K colours, SPI. Recommended first choice for new projects.

R61581

RenesasSP 320×480 controller with MIPI DBI Type B/C and parallel interface support.

RM68120

Raydium WVGA controller supporting up to 480×864 resolution with 16.7M colours.

ST7796

Sitronix 320×480 SPI/parallel controller. Recommended alongside ILI9341 as a starting point.

GalaxyCore

ControllerResolutionColoursNotes
GC9A01240×24065K RGBRound display, SPI

ILI Technology Corp. (Ilitek)

ControllerResolutionColoursNotes
ILI9163128×16065KCompact SPI display
ILI9225176×22065KSPI interface
ILI9341240×320262KRecommended starting point, SPI
ILI9342320×240262KLandscape variant of ILI9341
ILI9481320×480262KDMA not supported with SPI
ILI9486320×480262KDMA not supported with SPI; Waveshare RPi variant supported
ILI9488320×480262KDMA not supported with SPI
ILI9481, ILI9486, and ILI9488 do not support DMA when used over SPI. If DMA throughput is important, choose ILI9341 or ST7796 instead.

Himax

ControllerResolutionColoursNotes
HX8357B320×480262KSPI and parallel
HX8357C320×480262K16-bit parallel tested with RP2040
HX8357D320×480262KSPI and parallel

RenesasSP

ControllerResolutionColoursNotes
R61581320×480262KMIPI DBI Type B/C, parallel

Raydium

ControllerResolutionColoursNotes
RM68120Up to 480×86416.7MSupport added but untested
RM68140480×32016.7MParallel interface

Samsung

ControllerResolutionColoursNotes
S6D02A1128×16065KSPI interface

Solomon Systech

ControllerResolutionColoursNotes
SSD1351128×12865KOLED, SPI
SSD1963Up to 800×480262KParallel interface only — no SPI support
The SSD1963 controller supports only the parallel bus interface. It cannot be used with SPI-only microcontroller boards such as the ESP8266.

Sitronix

ControllerResolutionColoursNotes
ST7735128×16065KSPI, common in small modules
ST7789240×32065KSPI, used on many compact modules
ST7796320×48065KRecommended starting point, SPI and parallel

Raspberry Pi Display Support

TFT_eSPI supports certain Raspberry Pi–format TFT displays built on the ILI9486 or ST7796 driver chips, providing a 480×320 pixel screen. The ILI9486 RPi variant must be the Waveshare design, which uses a 16-bit serial interface built around 74HC04, 74HC4040, and 2×74HC4094 logic chips.
Not all Raspberry Pi displays are interchangeable — design variations between manufacturers mean some will not work with TFT_eSPI. Purchasing an RPi display solely for use with this library is not recommended without first verifying compatibility.

Touch Screen Support

The XPT2046 resistive touch controller is built into TFT_eSPI and can be used alongside any SPI display. For parallel-interface displays, third-party touch libraries can be integrated separately.

Further Reading

ILI9341 Setup Guide

Full wiring table and User_Setup.h configuration for the ILI9341.

R61581 Setup Guide

Configuration and datasheet details for the RenesasSP R61581.

RM68120 Setup Guide

Configuration notes and datasheet features for the Raydium RM68120.

Build docs developers (and LLMs) love