Skip to content
TFT / Color

ILI9341 2.8" Touchscreen TFT Display

Vivid 320×240 color touchscreen display for interactive projects.

The ILI9341 2.8-inch TFT display is a versatile color screen that brings vibrant visuals and touch interactivity to your projects. With a 320×240 resolution and support for 65K colors, it delivers crisp, bright images suitable for GUIs, dashboards, and multimedia applications.

The display is built around the ILI9341 driver chip, which includes a built-in video RAM buffer and supports SPI communication. A resistive touchscreen, controlled by an XPT2046 controller, enables intuitive user interaction. Many modules also feature a microSD card slot for storing images and assets.

Available in both SPI and 8-bit parallel interface variants, the SPI version is the most common and requires only a few I/O pins to operate. The module operates at 3.3V–5V, making it compatible with a wide range of microcontrollers. Onboard level-shifting circuitry ensures safe operation with both 3.3V and 5V logic.

Note: This entry covers the SPI version of the display, which is the most widely available and easiest to interface with. Parallel versions exist but are less common and require more I/O pins.

Specifications

Resolution320 × 240 pixels (QVGA)
Color depth65K colors (RGB 16-bit 565)
Display typeTFT, transmissive
TouchscreenResistive (XPT2046 controller)
InterfaceSPI (4-wire) or 8-bit parallel
Operating voltage3.3V – 5V (with onboard level shifter)
Logic voltage3.3V
Backlight4 white LEDs
Active area43.2 × 57.6 mm
Module dimensions~50 × 86 mm
Operating temperature-20°C to 60°C
Storage temperature-30°C to 70°C
Extra featuresmicroSD card slot

Pinout

PinNameDescription
1VCCPower — 3.3V to 5V (onboard regulator/level shifter)
2GNDGround
3CSSPI chip select (active low)
4RESETReset, active low
5DC/RSData/Command select — high for data, low for command
6SDI/MOSISPI data in (Master Out Slave In)
7SCKSPI clock
8LEDBacklight control — high to enable, or connect to 3.3V
9SDO/MISOSPI data out (optional, for reading)
10T_CSTouch SPI chip select (XPT2046)
11T_CLKTouch SPI clock
12T_DINTouch SPI data in
13T_DOTouch SPI data out
14T_IRQTouch interrupt — goes low when touch detected

Critical usage notes:

  • SPI vs Parallel: Most modules are SPI versions. Verify your module's interface before wiring — SPI uses fewer pins and is recommended for most projects.
  • Level shifting: While many modules include onboard level shifters and accept 5V power, the logic pins are 3.3V. On 5V boards like the Uno, the onboard level shifter handles this — but check your specific module.
  • Backlight: The LED pin controls the backlight. Connect to a PWM-capable pin for brightness control, or tie to VCC for always-on.
  • Touch controller: The resistive touch uses an XPT2046 controller over SPI. Touch pins share the same SPI bus as the display but use a separate CS pin.
  • Library support: The Adafruit_ILI9341 and TFT_eSPI libraries are the most widely used and well-documented options.
  • SD card: If your module has an SD slot, it uses a separate SPI CS pin — typically Pin 4 on Arduino — and shares MOSI/MISO/SCK with the display.

Variants

Choose the SPI version for most projects — it's widely available, well-supported by libraries, and uses minimal I/O pins. The shield version is great for rapid prototyping on Arduino. Parallel versions offer faster refresh but require more pins.

VariantTemp rangeHum rangeAccuracyProtocolPrice
SPI Version (4-wire)~$10-15
8-bit Parallel Version~$12-18
Shield Version~$15-20

Board Integration

Library

Adafruit_ILI9341by Adafruit

Arduino IDE → Library Manager → search "Adafruit ILI9341" → Install (also install "Adafruit BusIO" and "Adafruit GFX Library")

Wiring

Component pinBoard pinNote
VCC5VOnboard level shifter handles 5V→3.3V
GNDGND
CSD10
RESETD8
DC/RSD9
SDI/MOSID11
SCKD13
LED3.3VOr PWM pin for brightness control
SDO/MISOD12Optional
T_CSD4Touch chip select
T_IRQD3Optional interrupt

Code

C++

Notes

  • Install the Adafruit ILI9341 library along with Adafruit GFX Library and Adafruit BusIO.
  • setRotation(0) = portrait, setRotation(1) = landscape, setRotation(2) = inverted portrait, setRotation(3) = inverted landscape.
  • For touch support, add the XPT2046_Touchscreen library.
  • The onboard level shifter allows 5V power from the Uno — safe for 3.3V logic.