

The 3.5" TFT 320x480 + Touchscreen Breakout Board w/MicroSD Socket - HX8357D (Adafruit Part ID: 2050) is a versatile display module designed for embedded systems and graphical user interface (GUI) applications. It features a 3.5-inch TFT display with a resolution of 320x480 pixels, a resistive touchscreen for user interaction, and an integrated MicroSD card socket for external storage. This component is ideal for projects requiring vibrant graphics, touch input, and data storage, such as IoT devices, handheld controllers, and portable displays.








| Parameter | Value |
|---|---|
| Display Type | TFT LCD |
| Screen Size | 3.5 inches |
| Resolution | 320x480 pixels |
| Controller IC | HX8357D |
| Touchscreen Type | Resistive |
| Interface | SPI |
| Operating Voltage | 3.3V logic (5V-tolerant inputs) |
| Backlight Voltage | 3.2V (typical) |
| Backlight Current | 20mA (typical) |
| MicroSD Socket | Yes |
| Dimensions | 56mm x 85mm x 4mm |
The breakout board has multiple pins for power, data, and control. Below is the pinout:
| Pin Name | Description |
|---|---|
| VIN | Input voltage (3.3V to 5V). Powers the display and logic. |
| GND | Ground connection. |
| 3V3 | 3.3V output from the onboard regulator. |
| RESET | Reset pin for the display. Active low. |
| CS | Chip Select for the display. Active low. |
| DC | Data/Command pin. High for data, low for commands. |
| MOSI | SPI Master Out Slave In (data input to the display). |
| SCK | SPI Clock. |
| MISO | SPI Master In Slave Out (used for MicroSD card communication). |
| T_CS | Chip Select for the touchscreen controller. Active low. |
| T_IRQ | Interrupt pin for the touchscreen. |
| Pin Name | Description |
|---|---|
| T_MOSI | SPI MOSI for the touchscreen controller. |
| T_MISO | SPI MISO for the touchscreen controller. |
| T_SCK | SPI Clock for the touchscreen controller. |
| SD_CS | Chip Select for the MicroSD card. Active low. |
To use the 3.5" TFT 320x480 + Touchscreen Breakout Board with an Arduino UNO, follow these steps:
Wiring the Display: Connect the pins of the breakout board to the Arduino UNO as shown below:
| Breakout Pin | Arduino Pin |
|---|---|
| VIN | 5V |
| GND | GND |
| CS | D10 |
| DC | D9 |
| MOSI | D11 |
| SCK | D13 |
| RESET | D8 |
| T_CS | D4 |
| T_IRQ | D3 |
| SD_CS | D5 |
Install Required Libraries:
Example Code: Below is an example sketch to initialize the display and draw basic graphics:
#include <Adafruit_GFX.h> // Core graphics library
#include <Adafruit_HX8357.h> // HX8357 driver
#include <Adafruit_STMPE610.h> // Touchscreen driver
#include <SPI.h> // SPI library
// Define pins
#define TFT_CS 10 // Chip select for the display
#define TFT_DC 9 // Data/Command pin
#define TFT_RST 8 // Reset pin
#define TOUCH_CS 4 // Chip select for touchscreen
// Initialize display and touchscreen
Adafruit_HX8357 tft = Adafruit_HX8357(TFT_CS, TFT_DC, TFT_RST);
Adafruit_STMPE610 touch = Adafruit_STMPE610(TOUCH_CS);
void setup() {
// Initialize serial communication
Serial.begin(9600);
Serial.println("Initializing...");
// Initialize the display
tft.begin();
tft.fillScreen(HX8357_BLACK);
tft.setCursor(0, 0);
tft.setTextColor(HX8357_WHITE);
tft.setTextSize(2);
tft.println("Hello, HX8357!");
// Initialize the touchscreen
if (!touch.begin()) {
Serial.println("Touchscreen not found!");
while (1);
}
Serial.println("Touchscreen initialized.");
}
void loop() {
// Check for touch input
if (touch.touched()) {
TS_Point p = touch.getPoint();
Serial.print("Touch at: ");
Serial.print(p.x);
Serial.print(", ");
Serial.println(p.y);
}
}
The display does not turn on:
Touchscreen is unresponsive:
MicroSD card is not detected:
Graphics appear distorted or incorrect: