← All parts

2.8" TFT Touch (ILI9341)

Adafruit

A 2.8" TFT touch display with SPI and 8-bit modes, featuring an EYESPI connector for easy microcontroller connection.

In stock

Specifications

3
Operating Voltage
3-5VDC
Dimensions
2.8" diagonal
Connectivity
SPI, 8-bit mode, I2C for touch controller

Pinout

12
PinNameFunctionsNotes
Vin3-5V (Vin)
POWER
Connect to the same power as your logic level.
LiteLite
PWM
Backlight PWM input, default high.
GndGND
GND
Common ground for power and logic.
MISOMISO
SPI
3.3V logic out, used for SD card only.
MOSIMOSI
SPI
Used to send data from the microcontroller to the display.
SCKSCK
SPI
SPI clock input pin.
TCSTCS
SPI
TFT SPI chip select pin.
RSTRST
GPIO
Display reset, best controlled by the library.
DCDC
SPI
Display SPI data/command selector pin.
SDASDA
I2C
I2C serial data pin for the captouch chip.
SCLSCL
I2C
I2C serial clock pin for the captouch chip.
SDCSSDCS
SPI
SD card chip select pin, required for SD card communication.

Interactive pinout

Highlight:
BOARD

Click a pin to copy its name · tap a tag above to spotlight a bus.

Starter code

Community starter examples — minimal, unofficial, and provided to get you wiring fast. Verify against the manufacturer datasheet before relying on them.

Arduino (C++)

Arduino library: Adafruit ILI9341 (+ Adafruit GFX)

arduino
// ILI9341 2.8" TFT (SPI) — community starter example
#include <Adafruit_GFX.h>
#include <Adafruit_ILI9341.h>
#include <SPI.h>

#if defined(ESP32)
  #define TFT_CS 5
  #define TFT_DC 16
  #define TFT_RST 17
#else
  #define TFT_CS 10
  #define TFT_DC 9
  #define TFT_RST 8
#endif

Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC, TFT_RST);

void setup() {
  tft.begin();
  tft.fillScreen(ILI9341_BLACK);
  tft.setCursor(6, 6);
  tft.setTextColor(ILI9341_WHITE);
  tft.setTextSize(2);
  tft.println("Hello, pinouts!");
}

void loop() {}

MicroPython

MicroPython library: ili9341 (rdagger/micropython-ili9341)

python
# ILI9341 2.8" TFT (ESP32) — community starter example
# lib: rdagger/micropython-ili9341 (ili9341.py on the board)
from machine import Pin, SPI
from ili9341 import Display

spi = SPI(2, baudrate=40000000, sck=Pin(18), mosi=Pin(23))
display = Display(spi, dc=Pin(16), cs=Pin(5), rst=Pin(17))
display.clear()

Wiring

PinArduino Uno R3ESP32 DevKitC (WROOM-32)Notes
Vin+5V3V33-5 V (regulated breakout)
GNDGNDGND
SCKD13 (SCK)GPIO18
MOSID11 (MOSI)GPIO23
MISOD12 (MISO)GPIO19
TCSD10GPIO5Chip select
DCD9GPIO16Data/Command
RSTD8GPIO17Reset

Typical uses

  • 320x240 color graphics / UI
  • Touch dashboards (with the XPT2046 touch layer)

Related parts

6