---
product_id: 537585209
title: "2.8\" ILI9341 SPI TFT LCD Display Touch Panel 320x240 TFT LCD Touch Screen Shield 5V/3.3V STM32 Display Module SPI Serial with Touch Pen"
brand: "diann"
price: "€ 22.19"
currency: EUR
in_stock: true
reviews_count: 8
category: "Diann"
url: https://www.desertcart.it/products/537585209-2-8-ili9341-spi-tft-lcd-display-touch-panel-320x240
store_origin: IT
region: Italy
---

# 320x240 RGB color pixels Built-in SD card socket 2.8-inch vibrant display 2.8" ILI9341 SPI TFT LCD Display Touch Panel 320x240 TFT LCD Touch Screen Shield 5V/3.3V STM32 Display Module SPI Serial with Touch Pen

**Brand:** diann
**Price:** € 22.19
**Availability:** ✅ In Stock

## Summary

> 🚀 Elevate your DIY projects with vibrant touch and versatile power!

## Quick Answers

- **What is this?** 2.8" ILI9341 SPI TFT LCD Display Touch Panel 320x240 TFT LCD Touch Screen Shield 5V/3.3V STM32 Display Module SPI Serial with Touch Pen by diann
- **How much does it cost?** € 22.19 with free shipping
- **Is it available?** Yes, in stock and ready to ship
- **Where can I buy it?** [www.desertcart.it](https://www.desertcart.it/products/537585209-2-8-ili9341-spi-tft-lcd-display-touch-panel-320x240)

## Best For

- diann enthusiasts

## Why This Product

- Trusted diann brand quality
- Free international shipping included
- Worldwide delivery with tracking
- 15-day hassle-free returns

## Key Features

- • **All-in-One Module:** Includes SPI interface, ILI9341 driver IC, power regulator, and SD card slot for versatile applications.
- • **Vivid 2.8" Display:** Compact yet immersive 320x240 pixel TFT LCD with crisp RGB colors for standout visuals.
- • **Seamless Touch Control:** Integrated resistive touch panel with included stylus for intuitive, precise interaction.
- • **Plug & Play Compatibility:** Effortlessly pairs with Arduino R3 and STM32 boards, boosting your project’s efficiency.
- • **Optimized Power Flexibility:** Supports both 3.3V and 5V logic levels with built-in regulator—perfect for diverse MCU setups.

## Overview

The DIANN 2.8" ILI9341 SPI TFT LCD Touch Panel is a high-performance 320x240 pixel display module featuring a resistive touch screen and built-in SD card socket. Designed for seamless integration with Arduino and STM32 platforms, it supports both 3.3V and 5V logic levels via an onboard power regulator. This compact, all-in-one module delivers vivid RGB visuals, responsive touch input, and flexible connectivity, making it an essential upgrade for professional-grade embedded projects.

## Description

Specification:Type: Touch PanelSize: 2.8" SPI SerialDisplay Area: 43.2X57.6mmSize:86 x 50mmDriver Element: A-Si TFT Active MatrixPixel Arrangement: RGB Vertical StripeDriver IC: ILI9341Backlight: White LEDViewing Direction: 6 O'clockColor Depth: 262K/65KResolution (dots): 240RGB*320Dots5V Compatible, Use with 3.3V or 5V LogicNeed 4 IOs from your MCU At LeastPackage Contents:1x 2.8" SPI TFT LCD Display Touch Panel1x Touch Pen

Review: Works well, but difficult to find good instructions on setup. - This display works great. Clear backlight, viewing angles are better than I expected, and the touch screen accuracy (although not perfect) is plenty good enough for what I'm using it for. My main gripe with this display is that it's real hard to find good instructions on wiring this thing up with a Raspberry Pi. That's probably to be expected given the price, though. For anyone else using a Pi, here's what I had to do: - This display has different SPI lines for the display and the touchscreen. You can tie both of them together (T_DO to SDO, T_DIN to SDI, T_CLK to SCK). You just have to make sure you have different CS lines for each of them. However, due to bus frequency differences, I'd recommend putting each on a separate SPI bus if you have the choice (my second one was already in use). - If you're using CircuitPython, you can't use the SPI0 CE0/1 pins for this -- pick any other GPIO pin. - The display library I used was adafruit/Adafruit_CircuitPython_RGB_Display on GitHub. - The touch panel library I used was humeman/xpt2046-circuitpython on GitHub. - When using the Adafruit display library, whenever you control the screen it updates the SPI bus frequency to 16M. This doesn't work for the touchscreen if it's sharing the bus -- I've found that anything around 1M causes lots of inaccurate readings. As a workaround for this, assuming you're using one SPI bus as I am, you can run: spi.try_lock() spi.configure(baudrate = 100000) spi.unlock() every time before you poll the XPT chip for touchscreen coordinates. - I'd recommend attaching a resistor (I used a 100 ohm one, some others recommend 56) to the LED line. You can change the value of this depending on the brightness you want. I've attached the pins I used as a picture.
Review: Good for the cost - This is a really good display for the cost. It's simple to hook up, and I've tried it out on several different MCUs. So here are some tips: Finding official datasheets on this display can be challenging unless you know what to search for. This board is known by its maker(s) as the MSP3218. You can find data on lcd wiki dot com. You want the page bearing the title 3.2inch_SPI_Module_ILI9341_SKU:MSP3218 and on that page are links to schematics, user guides, datasheets, the works. You may also find references to this display as "Red ILI9341" This product is really three things in one, a 320x240 TFT LCD Display controlled by the ILI9341, a resistive Touch Panel controlled by the XPT2046, and an SD card reader. All three can share the same SPI signals from the MCU (CLK, MISO, MOSI) but each uses a different CS (chip select) pin makes 6 wires. The display needs an extra DC wire, so this makes 7. The (optional) LED pin can always be on, connecting to 3V3, the (optional) RESET can be connected to the MCU (RST) reset, and the (optional) touch (T_IRQ) interrupt can be left unconnected. But if you opt to connect them to the MCU, that's a total of 10 (3V3 signal) lines plus 2 power lines. Note, this board designed for 3.3V (3V3) logic signals. Arduino Uno R3, Uno R4, Mega and some other MCU operate on 5.0V (5V0) TTL logic levels. To use this display on those boards, you MUST use some bi-directional "level shifters" in between the two to shift the logic signals between 5V0 and 3V3. ESP32, ESP32-S3 and some other MCU operate on 3V3 logic levels, so no level shifters are required. One symptom of the 5V0 over-voltage is a white screen, with no other obvious output. You power the Red PCB by its VCC/GND pins, and the docs say you use 3V3 or 5V0. But I have another tip, use 5V0 on the VCC. The schematics will show the Red PCB has a power regulator to regulate the 5V0 down the 3V3. If you supply it with 3V3 it still functions in SOME cases. It failed to operate with some MCU I've tried, unless I gave to 5V0. The SD Card is particularly sensitive to undervoltage, and may not work at all, unless it's getting a solid 3V3, which it can only do, if you supply the regulator with 5V0. Since the Arduino Uno is pretty common for people, I can offer the following connection schematic to get you up and running quickly. These pairing start with the Uno R3 signal, followed by the Red ILI9341 PCB signal name printed on the PCB. Uno 5V = VCC, Uno GND = GND, Uno RST = RESET, Uno 3V3=LED, Uno D13 = SCK+T_CLK+SD_CLK, Uno D12 = SDO(MISO)+T_DO+SD_MIDO, Uno D11=SDI(MOSI)+T_DIN+SD_MOSI, Uno D10=CS, Uno D09=DC, Uno D8=T_CS, Uno D7=SD_CS You're on your own installing libraries in Arduino IDE, there are several good ones out there. Google those chip names, and you should find what you need. I'm using Adafruit_ILI9341, and XPT2046_Touchscreen libraries. The SD library is built-in. Be patient, double check your connections, and enjoy this fun little display.

## Features

- 2.8” ILI9341 SPI TFT LCD Display Touch Panel 320x240 Pixels RGB Colorful Display LCD Screen
- With Touch Pen Inside, Support Touch Screen Function,More Easily to Use
- Compatible with Arduino R3 Controller Board,Which Will Improve Your Project Operations
- 2.8” ILI9341 SPI TFT LCD Display Designed With a SD Card Socket On the Back
- SPI Serial,Built-in ILI9341 Driver IC and Power Supply IC

## Technical Specifications

| Specification | Value |
|---------------|-------|
| ASIN | B0BNQBKFCT |
| Best Sellers Rank | #53,229 in Industrial & Scientific ( See Top 100 in Industrial & Scientific ) #16 in LCD Touch Panels |
| Customer Reviews | 4.0 4.0 out of 5 stars (38) |
| Date First Available | January 10, 2023 |
| Item Weight | 1.44 ounces |
| Manufacturer | DIANN |
| Product Dimensions | 3.3 x 1.9 x 0.2 inches |

## Images

![2.8" ILI9341 SPI TFT LCD Display Touch Panel 320x240 TFT LCD Touch Screen Shield 5V/3.3V STM32 Display Module SPI Serial with Touch Pen - Image 1](https://m.media-amazon.com/images/I/71DzJEQT9kL.jpg)

## Available Options

This product comes in different **Size** options.

## Customer Reviews

### ⭐⭐⭐⭐⭐ Works well, but difficult to find good instructions on setup.
*by C***N on January 28, 2024*

This display works great. Clear backlight, viewing angles are better than I expected, and the touch screen accuracy (although not perfect) is plenty good enough for what I'm using it for. My main gripe with this display is that it's real hard to find good instructions on wiring this thing up with a Raspberry Pi. That's probably to be expected given the price, though. For anyone else using a Pi, here's what I had to do: - This display has different SPI lines for the display and the touchscreen. You can tie both of them together (T_DO to SDO, T_DIN to SDI, T_CLK to SCK). You just have to make sure you have different CS lines for each of them. However, due to bus frequency differences, I'd recommend putting each on a separate SPI bus if you have the choice (my second one was already in use). - If you're using CircuitPython, you can't use the SPI0 CE0/1 pins for this -- pick any other GPIO pin. - The display library I used was adafruit/Adafruit_CircuitPython_RGB_Display on GitHub. - The touch panel library I used was humeman/xpt2046-circuitpython on GitHub. - When using the Adafruit display library, whenever you control the screen it updates the SPI bus frequency to 16M. This doesn't work for the touchscreen if it's sharing the bus -- I've found that anything around 1M causes lots of inaccurate readings. As a workaround for this, assuming you're using one SPI bus as I am, you can run: spi.try_lock() spi.configure(baudrate = 100000) spi.unlock() every time before you poll the XPT chip for touchscreen coordinates. - I'd recommend attaching a resistor (I used a 100 ohm one, some others recommend 56) to the LED line. You can change the value of this depending on the brightness you want. I've attached the pins I used as a picture.

### ⭐⭐⭐⭐⭐ Good for the cost
*by P***R on February 3, 2025*

This is a really good display for the cost. It's simple to hook up, and I've tried it out on several different MCUs. So here are some tips: Finding official datasheets on this display can be challenging unless you know what to search for. This board is known by its maker(s) as the MSP3218. You can find data on lcd wiki dot com. You want the page bearing the title 3.2inch_SPI_Module_ILI9341_SKU:MSP3218 and on that page are links to schematics, user guides, datasheets, the works. You may also find references to this display as "Red ILI9341" This product is really three things in one, a 320x240 TFT LCD Display controlled by the ILI9341, a resistive Touch Panel controlled by the XPT2046, and an SD card reader. All three can share the same SPI signals from the MCU (CLK, MISO, MOSI) but each uses a different CS (chip select) pin makes 6 wires. The display needs an extra DC wire, so this makes 7. The (optional) LED pin can always be on, connecting to 3V3, the (optional) RESET can be connected to the MCU (RST) reset, and the (optional) touch (T_IRQ) interrupt can be left unconnected. But if you opt to connect them to the MCU, that's a total of 10 (3V3 signal) lines plus 2 power lines. Note, this board designed for 3.3V (3V3) logic signals. Arduino Uno R3, Uno R4, Mega and some other MCU operate on 5.0V (5V0) TTL logic levels. To use this display on those boards, you MUST use some bi-directional "level shifters" in between the two to shift the logic signals between 5V0 and 3V3. ESP32, ESP32-S3 and some other MCU operate on 3V3 logic levels, so no level shifters are required. One symptom of the 5V0 over-voltage is a white screen, with no other obvious output. You power the Red PCB by its VCC/GND pins, and the docs say you use 3V3 or 5V0. But I have another tip, use 5V0 on the VCC. The schematics will show the Red PCB has a power regulator to regulate the 5V0 down the 3V3. If you supply it with 3V3 it still functions in SOME cases. It failed to operate with some MCU I've tried, unless I gave to 5V0. The SD Card is particularly sensitive to undervoltage, and may not work at all, unless it's getting a solid 3V3, which it can only do, if you supply the regulator with 5V0. Since the Arduino Uno is pretty common for people, I can offer the following connection schematic to get you up and running quickly. These pairing start with the Uno R3 signal, followed by the Red ILI9341 PCB signal name printed on the PCB. Uno 5V = VCC, Uno GND = GND, Uno RST = RESET, Uno 3V3=LED, Uno D13 = SCK+T_CLK+SD_CLK, Uno D12 = SDO(MISO)+T_DO+SD_MIDO, Uno D11=SDI(MOSI)+T_DIN+SD_MOSI, Uno D10=CS, Uno D09=DC, Uno D8=T_CS, Uno D7=SD_CS You're on your own installing libraries in Arduino IDE, there are several good ones out there. Google those chip names, and you should find what you need. I'm using Adafruit_ILI9341, and XPT2046_Touchscreen libraries. The SD library is built-in. Be patient, double check your connections, and enjoy this fun little display.

### ⭐ A headache of wasted time
*by R***. on December 30, 2024*

1) it requires about 10 connections that you will check dozens of times for a proper connection to your arduino 2) no code, no forums, no A.I. assistance will solve the problem Not worth the trouble! Better off with a totally different version with different interface w arduino

## Frequently Bought Together

- DIANN 2.8" ILI9341 SPI TFT LCD Display Touch Panel 320x240 TFT LCD Touch Screen Shield 5V/3.3V STM32 Display Module SPI Serial with Touch Pen
- HiLetgo ILI9341 2.8" SPI TFT LCD Display Touch Panel 240X320 with PCB 5V/3.3V STM32

---

## Why Shop on Desertcart?

- 🛒 **Trusted by 1.3+ Million Shoppers** — Serving international shoppers since 2016
- 🌍 **Shop Globally** — Access 737+ million products across 21 categories
- 💰 **No Hidden Fees** — All customs, duties, and taxes included in the price
- 🔄 **15-Day Free Returns** — Hassle-free returns (30 days for PRO members)
- 🔒 **Secure Payments** — Trusted payment options with buyer protection
- ⭐ **TrustPilot Rated 4.5/5** — Based on 8,000+ happy customer reviews

**Shop now:** [https://www.desertcart.it/products/537585209-2-8-ili9341-spi-tft-lcd-display-touch-panel-320x240](https://www.desertcart.it/products/537585209-2-8-ili9341-spi-tft-lcd-display-touch-panel-320x240)

---

*Product available on Desertcart Italy*
*Store origin: IT*
*Last updated: 2026-04-23*