Circular displays are a unique twist for DIY electronics projects. While most LCDs are square or rectangular, the 1.28-inch round TFT display gives your project a modern, smartwatch-like look. It’s based on the GC9A01 controller, offers a 240×240 full-color IPS panel, and connects over SPI. In this guide we’ll explore what it is, how to wire it, how to drive it, and where it shines.

What is the GC9A01 Round TFT?
The module is a 1.28-inch IPS LCD in a round form factor, with a resolution of 240×240 pixels and support for 65k/262k colors (16-bit/18-bit). It uses the GC9A01 controller IC, which is well supported in Arduino and ESP32 libraries (such as TFT_eSPI and Adafruit_GFX).
Unlike OLED displays, this module uses an LED backlight, giving good brightness and visibility. IPS technology provides wide viewing angles and vivid colors — essential if the display might be seen from different sides.
Why use it?
- Round form factor = ideal for clocks, gauges, meters, wearables.
- IPS panel = better color and contrast than older TFTs.
- Compact, but still 240×240 pixels = crisp graphics.
- Works via SPI, so it’s easy to connect to ESP32, Arduino, STM32, Raspberry Pi, etc.
Key Specifications
| Parameter | Value |
|---|---|
| Display type | 1.28″ round IPS TFT LCD |
| Resolution | 240×240 pixels |
| Driver IC | GC9A01 |
| Interface | SPI (4-wire) |
| Colors | 65k / 262k |
| Viewing angle | ~80° all directions (IPS) |
| Supply voltage | 3.3V (logic + VCC) |
| Backlight | Integrated white LED (driven via pin) |
| Active area | ~32.4 mm diameter |
| Module size | ~40 mm diameter (with PCB adapter) |
Pinout and Wiring
The module usually comes mounted on a small PCB adapter with labeled pins. Here’s the standard pinout:
| Pin | Name | Function |
|---|---|---|
| 1 | VCC | 3.3V power |
| 2 | GND | Ground |
| 3 | SCL (SCK) | SPI Clock |
| 4 | SDA (MOSI) | SPI Data (Master Out, Slave In) |
| 5 | RES | Reset pin |
| 6 | DC (A0) | Data/Command select |
| 7 | CS | Chip Select |
| 8 | BLK | Backlight control (PWM or tied high for always on) |
Example Wiring with ESP32
- VCC → 3.3V
- GND → GND
- SCL → GPIO18 (default SPI clock)
- SDA → GPIO23 (default MOSI)
- RES → GPIO4
- DC → GPIO2
- CS → GPIO5
- BLK → GPIO15 (or tie to 3.3V for always on backlight)
Note: The module is not 5V tolerant. Always run at 3.3V logic.
Using with Arduino / ESP32
There are multiple libraries that support the GC9A01 controller. The two most popular:
- Adafruit_GFX + Adafruit_GC9A01A library
- Bodmer’s TFT_eSPI (faster, highly configurable, great for ESP32)
Example Code with Adafruit Library
#include <Adafruit_GFX.h>
#include <Adafruit_GC9A01A.h>
#include <SPI.h>
// Define pins
#define TFT_CS 5
#define TFT_DC 2
#define TFT_RST 4
Adafruit_GC9A01A tft(TFT_CS, TFT_DC, TFT_RST);
void setup() {
Serial.begin(115200);
tft.begin();
tft.fillScreen(GC9A01A_BLACK);
tft.setCursor(40, 100);
tft.setTextColor(GC9A01A_GREEN);
tft.setTextSize(2);
tft.println("Hello World!");
}
void loop() {
// Example: draw a clock face
tft.fillCircle(120, 120, 100, GC9A01A_BLUE);
delay(2000);
tft.fillCircle(120, 120, 100, GC9A01A_RED);
delay(2000);
}
Example Code with TFT_eSPI (ESP32)
- Install TFT_eSPI library.
- Edit
User_Setup.hor useUser_Setup_Select.hto define driver:
#define GC9A01_DRIVER
#define TFT_WIDTH 240
#define TFT_HEIGHT 240
#define TFT_CS 5
#define TFT_DC 2
#define TFT_RST 4
#define TFT_BL 15
- Example sketch:
#include <TFT_eSPI.h>
#include <SPI.h>
TFT_eSPI tft = TFT_eSPI();
void setup() {
tft.init();
tft.setRotation(0);
tft.fillScreen(TFT_BLACK);
tft.setTextColor(TFT_WHITE, TFT_BLACK);
tft.drawString("Round Display!", 40, 120, 4);
}
void loop() {
tft.fillCircle(120, 120, 100, TFT_GREEN);
delay(1000);
tft.fillCircle(120, 120, 100, TFT_RED);
delay(1000);
}
Practical Tips
- Frame rate: With SPI, updates aren’t lightning fast. For smooth animation, use ESP32 or STM32 with SPI at higher MHz.
- Backlight control: Use PWM on BLK pin for brightness control (dimming / saving power).
- Graphics libraries: Use
TFT_eSPIif you need speed and advanced features (sprites, smooth gauges, anti-aliased fonts). - Mounting: The round shape is perfect for enclosures — but remember the PCB is square. For wearables, you might design a circular cutout while hiding the PCB edges.
- Power: Keep VCC and logic strictly at 3.3V. Use a regulator if powered from 5V.
Project Ideas
Here are some real-world uses for this round TFT:
- Smartwatch / wearable: time, notifications, step count, etc.
- Digital gauge: RPM, temperature, battery level (for bikes, cars, drones).
- Analog clock face: with smooth hands, customizable watch faces.
- Weather station display: show temperature, humidity, forecast icons.
- IoT dashboard: show Wi-Fi status, sensor values, system info.
Conclusion
The 1.28-inch round GC9A01 TFT display is a great choice if you want something more stylish than a square LCD. With 240×240 resolution, bright IPS colors, and solid library support, it’s easy to bring beautiful GUIs, clocks, or dashboards into your project. Combine it with ESP32 and TFT_eSPI, and you can create smooth, modern interfaces on a budget.