TFT / Color
Interfacing ST7789 1.3" TFT TFT / Color with Arduino Uno
What is the ST7789 1.3" TFT?
The ST7789 1.3‑inch IPS TFT display is a compact, high‑density colour screen that delivers vibrant visuals with 240×240 resolution and 65K colours. The IPS (In‑Plane Switching) panel technology provides excellent colour reproduction and viewing angles of up to 80° in all directions, making it ideal for wearable devices, handheld gadgets, dashboards, and compact GUIs.
The display is built around the ST7789 driver chip, which includes a built‑in frame buffer and supports 4‑wire SPI communication. Many modules include a microSD card slot for loading full‑colour bitmaps from FAT16/FAT32 formatted cards.
The module operates at 3.3V logic levels. Some variants (like Adafruit's breakout) include an onboard 3.3V regulator and 3/5V level shifter, making them compatible with both 3.3V and 5V microcontrollers. Always check your specific module's voltage tolerance before connecting.
Note: This entry covers the standard SPI version of the display, which is the most widely available. It also includes optional touch support if your module includes a resistive touch controller (often XPT2046).
Specifications
| Resolution | 240 × 240 pixels |
| Color depth | 65K colours (RGB 16‑bit 565) |
| Display technology | IPS (In‑Plane Switching) |
| Viewing angle | ~80° all directions |
| Interface | 4‑wire SPI |
| Operating voltage | 3.3V (some boards accept 5V with level shifter) |
| Logic voltage | 3.3V |
| Backlight | 3 white LEDs, controlled via PWM |
| Active area | 23.4 × 23.4 mm |
| Module dimensions | ~32 × 28 mm |
| Extra features | microSD card slot (optional) |
| Operating temperature | -20°C to 60°C |
ST7789 1.3" TFT Pinout
| Pin | Name | Description |
|---|---|---|
| 1 | VCC | Power — 3.3V (or 5V if board has level shifter) |
| 2 | GND | Ground |
| 3 | CS | SPI chip select (active low) |
| 4 | RESET | Hardware reset, active low |
| 5 | DC | Data/Command select — high for data, low for command |
| 6 | SDI (MOSI) | SPI data in (Master Out Slave In) |
| 7 | SCK | SPI clock |
| 8 | LED | Backlight control — PWM for brightness, or tie high |
| 9 | SDO (MISO) | SPI data out (optional, for reading) |
| 10 | T_CS | Touch chip select (if touch present, XPT2046) |
| 11 | T_IRQ | Touch interrupt (optional) |
Critical usage notes:
- SPI speed: The ST7789 supports SPI clock rates up to 80 MHz, but many microcontrollers top out at 40 MHz. Start with a lower speed (e.g., 10 MHz) if you encounter glitches.
- Backlight: The LED pin can be connected to 3.3V for always‑on, or to a PWM pin for brightness control. Some modules have a dedicated backlight enable pin.
- Voltage: Unless your board has a level shifter, do not apply 5V to logic pins — it will damage the display. The 3.3V supply must be stable; a 100 µF capacitor near the module is recommended.
- SPI MISO: Some modules omit the MISO pin; if your library tries to read from the display, you may need to set
-1as the MISO pin in the constructor or use a software SPI fallback. - IPS advantages: The IPS panel gives consistent colours even when viewed at extreme angles, perfect for wearable screens where the device may be tilted.
- SD card: If your module has an SD slot, it typically uses a separate CS pin (often Pin 4 on Arduino) and shares the same SPI lines.
Setting Up ST7789 1.3" TFT with Arduino Uno
Library
Adafruit_ST7789 by Adafruit
Arduino IDE → Library Manager → search "Adafruit ST7789" → Install (also install "Adafruit GFX Library" and "Adafruit BusIO")
Wiring
| Component pin | Arduino Uno pin | Note |
|---|---|---|
| VCC | 5V | If board has level shifter; otherwise use 3.3V |
| GND | GND | — |
| CS | D10 | — |
| RESET | D8 | — |
| DC | D9 | — |
| SDI (MOSI) | D11 | — |
| SCK | D13 | — |
| LED | 3.3V | Or PWM pin |
| SDO (MISO) | D12 | Optional |
Example code
- The Adafruit_ST7789 library includes built‑in support for the 1.3" 240×240 panel. Use
tft.init(240, 240)with the correct width/height. - For 5V Unos, ensure your module has a level shifter; otherwise, power VCC from 3.3V (but the Uno’s 3.3V pin can only supply ~150 mA, which may be insufficient if the backlight is on full — use an external 3.3V regulator).
- MISO is optional; if your module doesn't have it, the library will work without it.
Related Components
Related Guides & Projects

Arduino Uno R3 Pinout: Every Pin Explained (Digital, Analog, PWM, Power)
Complete Arduino Uno R3 pinout reference: all 14 digital pins, 6 analog inputs, PWM, UART, SPI, I2C, AREF, and power rails explained with wiring tips and common mistakes.

Ultimate Arduino Mega 2560 Pinout Guide: Complete Power & I/O Reference
Master the Arduino Mega 2560 pinout. Detailed reference for all 54 digital pins, 16 analog inputs, PWM, UARTs, SPI, I2C, interrupts, and power. Includes a printable table and practical wiring tips.

Interfacing HC-SR04 Ultrasonic Sensor with Arduino
Measure distance accurately using ultrasonic sound waves and an Arduino Uno — no complex math, no expensive hardware.
HC‑SR04 Ultrasound Distance Measurement with Arduino – Parking Alert (LCD & Buzzer)
Learn HC‑SR04 ultrasound distance measurement with Arduino Uno. Build a parking alert system with 16x2 LCD and buzzer – shows distance and beeps faster as you approach.