Negative - Shop now
Add Prime to get Fast, Free delivery
Amazon prime logo
$16.39
Get Fast, Free Shipping with Amazon Prime FREE Returns
FREE delivery Tuesday, April 29 on orders shipped by Amazon over $35
Or fastest delivery Sunday, April 27
In Stock
$$16.39 () Includes selected options. Includes initial monthly payment and selected options. Details
Price
Subtotal
$$16.39
Subtotal
Initial payment breakdown
Shipping cost, delivery date, and order total (including tax) shown at checkout.
Ships from
Amazon
Amazon
Ships from
Amazon
Sold by
Returns
30-day refund/replacement
30-day refund/replacement
This item can be returned in its original condition for a full refund or replacement within 30 days of receipt.
Payment
Secure transaction
Your transaction is secure
We work hard to protect your security and privacy. Our payment security system encrypts your information during transmission. We don’t share your credit card details with third-party sellers, and we don’t sell your information to others. Learn more

HiLetgo ILI9341 2.8" SPI TFT LCD Display Touch Panel 240X320 with PCB 5V/3.3V STM32

4.4 out of 5 stars 295 ratings
Amazon's Choice highlights highly rated, well-priced products available to ship immediately.
Amazon's Choice

$16.39
Get Fast, Free Shipping with Amazon Prime
FREE Returns
{"desktop_buybox_group_1":[{"displayPrice":"$16.39","priceAmount":16.39,"currencySymbol":"$","integerValue":"16","decimalSeparator":".","fractionalValue":"39","symbolPosition":"left","hasSpace":false,"showFractionalPartIfEmpty":true,"offerListingId":"dJM1onQeCpgMjR9AF5IrltZEUnWQ6tslBxTxKnxCNJLtLj2N9CjfkhOY4MCYn%2BtRgo8r6CU%2F1GIBLsgxt23uycTiu%2B%2BHXHHrwsbvygmTDO2hboHfZTYd%2BeeMe4tELXXcQIywt92VI1T1or9HOxXiiMKWGbPS8sifNxn0QwDLt5Hu5xVn8eD8sjfJfQUdspLN","locale":"en-US","buyingOptionType":"NEW","aapiBuyingOptionIndex":0}]}

Purchase options and add-ons

  • Driver element: a-Si TFT active matrix
  • Resolution (dots): 240RGB*320Dots
  • Viewing Direction: 6 o’clock
  • Pixel arrangement: RGB vertical stripe
  • With PCB plate (including power supply IC, SD), compatible with 5110 interface

Frequently bought together

This item: HiLetgo ILI9341 2.8" SPI TFT LCD Display Touch Panel 240X320 with PCB 5V/3.3V STM32
$16.39
Get it as soon as Tuesday, Apr 29
In Stock
Sold by HiLetgo and ships from Amazon Fulfillment.
Total price: $00
To see our price, add these items to your cart.
Details
Added to Cart
These items are shipped from and sold by different sellers.
Choose items to buy together.

Product details

  • Is Discontinued By Manufacturer ‏ : ‎ No
  • Package Dimensions ‏ : ‎ 4.02 x 3.94 x 0.87 inches; 1.94 ounces
  • Item model number ‏ : ‎ 3-01-1433
  • Date First Available ‏ : ‎ July 6, 2017
  • Manufacturer ‏ : ‎ HiLetgo
  • ASIN ‏ : ‎ B073R7BH1B
  • Customer Reviews:
    4.4 out of 5 stars 295 ratings

Product Description

Product Description:
100% brand new and high quality
Type: touch panel
Size:2.8" SPI Serial
Display area:36.72(W)X48.96(H)mm
Size:8.5 x 4.8cm
Driver element: a-Si TFT active matrix
Pixel arrangement: RGB vertical stripe
Driver IC: ILI9341
Backlight: White LED
Viewing Direction: 6 o'clock
Color Depth: 262K/65K
Resolution (dots): 240RGB*320Dots
5V compatible, use with 3.3V or 5V logic
Need at least 4 IOs from your MCU

Package included:
1*240X320 Resolution 2.8" SPI TFT LCD Display Touch Panel

Note:
If you are using this LCD with a 5V device such as an Arduino, be aware that it doesn't work if WITHOUT level shifting to 3.3v logic. Please use level shifters from 5V to 3.3V, it will work then.

Customer reviews

4.4 out of 5 stars
295 global ratings

Review this product

Share your thoughts with other customers

Customers say

Customers find the TFT display works well with Arduino IL9341 SPI library and ESP8266 boards, featuring a nice full color display that's bright and crisp. The product is simple to use and customers consider it good value for money. The touch screen functionality receives mixed feedback - while some say it works well, others find it difficult to get functioning properly. Customers disagree on the display's speed, with some reporting it runs unexpectedly fast while others find it very slow.

AI-generated from the text of customer reviews

50 customers mention "Functionality"42 positive8 negative

Customers report that the TFT display works well with various platforms, including Arduino IL9341 SPI library, ESP8266 boards, Teensy 3.2, and standard ILI9341 driver.

"This is fully functional. Works exactly how it was intended to. For the price, I will probably buy more of these. Super easy to set up...." Read more

"Let me state, it works, it works as expected and I like the display. Let me get you over a couple of gotchas...." Read more

"...Otherwise, very good value. Works great. Use the Adafruit ILI9341 library for the LCD. Use the Adafruit STMPE610 for the touchscreen..." Read more

"The display itself works fine. Touch screen is responsive and there were no dead pixels...." Read more

19 customers mention "Display quality"16 positive3 negative

Customers like the display quality of this TFT panel, praising its full color and nice appearance, with one customer noting its sharpness.

"The display is bright and the colors are well defined...." Read more

"This thing pretty much does everything. Very nice graphics and reasonable touch. For the money, can't be beat...." Read more

"...for a project I am working on and this one was quick delivery and looked good, plus the seller has proven themselves to me on past orders...." Read more

"...The 2.2" is much brighter, more vibrant with incredible viewing angles. This 2.8" is the complete opposite...." Read more

19 customers mention "Quality"14 positive5 negative

Customers find the LCD display to be of excellent quality and solid construction.

"...However, it's a knockoff of a great product, so it's put together really well...." Read more

"Works as expected and it is pretty solid overall; although the touch sensitivity is not that great and sometimes require too much pressure, while..." Read more

"...between them, I tried noise suppression, everything, this is a flawed product." Read more

"These are very robust. They work fine at 3.3V and 5V logic...." Read more

18 customers mention "Ease of use"14 positive4 negative

Customers find the display panel easy to use and set up, with one customer noting it requires minimal work for prototyping with jumpers.

"...For the price, I will probably buy more of these. Super easy to set up. Pins are clearly labeled. Definitely a great value...." Read more

"...The touch is easy to wire and if you're sharing the bus with the screen it only requires one additional pin...." Read more

"...Most of these SPI screens are pretty easy to use with any modern microcontroller...." Read more

"Very easy to get working - I added this to an an ESP8266 controller, from HiLetgo to build an alarm clock that is time synchronized to an NTP..." Read more

12 customers mention "Value for money"12 positive0 negative

Customers find the display panel to be good value for money, with one customer specifically noting its inexpensive user interface.

"...Super easy to set up. Pins are clearly labeled. Definitely a great value...." Read more

"...The SD Card slot need to have posts soldered Otherwise, very good value. Works great. Use the Adafruit ILI9341 library for the LCD...." Read more

"...coordinates returned by the touch panel but otherwise it IS a good value for the money and most people won't need the extra precision point..." Read more

"...That, with the affordable price, and the fact it can be run with an ESP8266, makes it a very worthy purchase...." Read more

8 customers mention "Brightness"8 positive0 negative

Customers appreciate the display's brightness, describing it as bright and crisp.

"The display is bright and the colors are well defined...." Read more

"...The 2.2" is much brighter, more vibrant with incredible viewing angles. This 2.8" is the complete opposite...." Read more

"...I used 5V w/ 100 ohm resistor for LED power input. Seems plenty bright. Allow for resistive touchpad x-y coordinates to be inverted...." Read more

"Arrived next day. Very good color and brightness. I'm using it for sprite development. AND If I can make it work, ANYONE can :)" Read more

21 customers mention "Touch screen"11 positive10 negative

Customers have mixed experiences with the display's touchscreen functionality, with some finding it well-functioning while others report difficulties getting it to work properly.

"The display itself works fine. Touch screen is responsive and there were no dead pixels...." Read more

"...The touchscreen overlay is resistive. Unlike a modern phone, it requires a very firm press such as with a stylus or your finger tip to get accuracy." Read more

"...Overall, it's a fantastic little touch screen / display for Arduino or Raspberry Pi projects." Read more

"...a library called TFT_eSPI and it can drive the display and the touch screen very well...." Read more

12 customers mention "Speed"8 positive4 negative

Customers have mixed experiences with the display's speed, with some reporting it runs unexpectedly fast while others find it very slow.

"...But it doesn't get in the way. It's rated for like 10Mhz, but it will work at 40Mhz for writes and 20Mhz for reads which is plenty fast...." Read more

"...Aside from that, it runs well on the Teensy 3.6 we used as an MPU for the project, doesn't draw a lot of current and once we got a calibration..." Read more

"...Definitely a great value. It is however slower than other higher end expensive units but you get what you pay for." Read more

"...However, with Bodmer's TFT_eSPI libraries, it runs unexpectedly fast. Like, shockingly fast, with smooth animations @ around 32 fps...." Read more

Guide and helpful steps for other first-timers!
4 out of 5 stars
Guide and helpful steps for other first-timers!
After spending way too much time trying to figure out the touchscreen, I wanted to share what finally worked for me! First, I'll share the pinout. Next, I'll share the steps that worked with the eSPI library. Lastly, I'll show you the steps using an alternative library - the XPT2046_Touchscreen library. Let me just say it was initially confusing to me because the ILI9341 is the display, but the touchscreen is actually controlled by an XPT2046. And I struggled with connecting everything properly to an ESP-WROOM-32 ESP32 ESP-32S dev board. First, this is the pinout I used. I use the same pinout for both libraries. ILI9341 -> ESP32-WROOM 32s T_IRQ -> GPIO27 (TOUCH7) T_DO -> GPIO19 (VSPIMISO) T_DIN -> GPIO23 (VPSIMOSI) T_CS -> GPIO21 T_CLK -> GPIO18 (VSPI SCK) SDO(MISO) -> Not connected LED -> GPIO32 SCK -> GPIO18 SDI(MOSI) -> GPIO23 (VPSIMOSI) DC/RS -> GPIO2 RESET -> GPIO4 CS -> GPIO15 GND -> GND VCC -> 3.3V I'll assume you know how to select the correct Board within the Arduino IDE. For me, it was "Node32s" ESP32 board. Steps to use eSPI Library: 1. Take a deep breath 2. Open the Arduino IDE 3. Install the "TFT_eSPI" Library by Bodmer (I tested with version 2.3.70) 4. Close the Arduino IDE 5. Open the eSPI "User_Setup.h" file. This file contains the TFT_eSPI configuration. By default, I think the Arduino IDE would have installed this file (step 3 above) in this location: C:\Users\<username>\Documents\Arduino\libraries\TFT_eSPI\User_Setup.h 6. Within my User_Setup.h file, I have only these 19 lines uncommented: #define ILI9341_DRIVER // Generic driver for common displays #define TFT_MISO 19 #define TFT_MOSI 23 #define TFT_SCLK 18 #define TFT_CS 15 #define TFT_DC 2 #define TFT_RST 4 #define TOUCH_CS 21 #define LOAD_GLCD #define LOAD_FONT2 #define LOAD_FONT4 #define LOAD_FONT6 #define LOAD_FONT7 #define LOAD_FONT8 #define LOAD_GFXFF #define SMOOTH_FONT #define SPI_FREQUENCY 27000000 #define SPI_READ_FREQUENCY 20000000 #define SPI_TOUCH_FREQUENCY 2500000 7. Open the Arduino IDE 8. Go to File > Examples > TFT_eSPI > Generic > Touch_calibrate. (It will be at the bottom of the example list...just keep scrolling down.) 9. Compile and upload the sketch. Given that we configured the pinout in step 6 above, there should be no need to make any changes to the code in the Touch_calibrate example. 10. Open the serial monitor (note the default serial baud rate in the Touch_calibrate code) 11. On the ILI9341 screen, you should be prompted to touch each of the 4 corners of the screen to calibrate it. I recommend using the stylus since the calibration requires precise taps. 12. After calibrating the 4 corners of the screen, the screen will say "Calibration complete!" at which point you can use the stylus to draw on the screen. At this moment, the calibration data will have been sent through to the serial port, too. 13. Success! 14. You'll be happy to hear that the other TFT_eSPI examples should work right out with this same pinout. One of my favorites is TFT_Starfield. Just make sure to select an example that's 320x240 to match the ILI9341 resolution. Steps to use XPT2046_Touchscreen library (an alternative to TFT_eSPI): 1. Take a deep breath 2. Open the Arduino IDE 3. Install the "XPT2046_Touchscreen" Library by Paul Stoffregen (I tested with version 1.4.0) 4. Close the Arduino IDE and reopen the Arduino IDE. 5. Go to File > Examples > XPT2046_Touchscreen > TouchTest. (It will be at the bottom of the example list...just keep scrolling down.) 6. Make the following changes prior to the setup() definition: #define CS_PIN 21 #define TIRQ_PIN 27 XPT2046_Touchscreen ts(CS_PIN, TIRQ_PIN); 7. Compile and upload the sketch. 8. The ILI9341 screen will be completely white, but don't panic. The screen is supposed to be blank white because this example tests only the touch aspect of the ILI9341, not the display aspect. 9. Open the serial monitor (note the default serial baud rate in the code) 10. Use the stylus to press on different points of the screen. After each press, you should see a readout over the serial port of the pressure, x coordinate, and y coordinate of the pressed area. 11. Success!
Thank you for your feedback
Sorry, there was an error
Sorry we couldn't load the review

Top reviews from the United States

  • Reviewed in the United States on June 9, 2018
    I love these displays and use them on all my projects. I've bought about 8 so far and can get them to work with either Teensy 3.2 or an Arduino Nano.

    For operation with a Teensy 3.2
    1. use the <ILI9341_t3.h> from the PJRC--and this lib is very fast connect directly
    2. for touch use "UTouch.h"
    3. for SD I use <SdFat.h>
    4. no level shifters needed
    5. you may need to solder J1 (I do on all my displays)
    4. if you want to use SD, remove the resistors R1, R2, R3 and solder 0 ohm resistors

    For operation with Auduino Nano
    1. use the <Adafruit_ILI9341.h>
    2. for touch use "UTouch.h"
    3. for SD I have yet to get an SD to work with graphics due to not enough memory
    4. no level shifters needed
    5. you WILL need to solder J1 (I do on all my displays)

    EDIT as of 12/29/2019 Usage with Arduino connect as usual but power your Arduino with 3.3 volts (just connect 3.3 to the 5V pin on the arduino). Alternatively you can put a 1K series resistor on all pins to drop the voltage going to the unit (and power with 3v3). THESE UNITS WILL NOT WORK IF POWERED WITH 5 AND IF THE SIGNAL LINES ARE 5 VOLTS.

    update 2/2/2022 tips on usage to get everything working on a teensy 4.0 (or 3.2)

    /*

    This simple program will test
    1) the display, 2) the SD card, 3) the touch screen, 4) ability to readPixel

    The readPixel is only supported by some display drivers
    like the ILI9341_t3 driver, there is a PrintScreen.h utility that will let you
    save your screen to a BMP file and draw the file
    if readPixel fails try to adjust speeds above. It's possible the display MISO is not tri state
    and will basically own MISO where other devices can't use it. If so, you will need some external buffer
    magic

    If using display with Teensy (3v3) solder J1, replace R1, R2, R3 with 0 ohm

    pin connections

    Display MCU
    VCC 3v3
    GND GND
    CS 10
    RESET 3v3 If white screen 1) 8 or 2) use series 1K0 and 10uf to GND to slow charge
    DC 9
    MOSI 11
    SCK 13
    LED 3v3 or connect to analog pin and use analogWrite(x) to fade brightness
    MISO 12
    T_CLK 13
    T_CS 0
    T_DIN 11
    T_DO 12
    T_IRQ 1

    SD_SCK 13
    SD_MISO 12
    SD_MOSI 11
    SD_CS A3 (other digital pins may work, read data sheet for what pins support CS)

    */

    #include "ILI9341_t3.h" // high speed display that ships with Teensy
    #include <XPT2046_Touchscreen.h> // touch driver for a TFT display
    #include <SdFat.h>
    #include <SPI.h>

    #define CS_PIN 10
    #define DC_PIN 9
    #define T_CS 0
    #define T_IRQ 1
    #define SD_CS A3

    int BtnX, BtnY;

    // you know the drill
    ILI9341_t3 Display(CS_PIN, DC_PIN);

    XPT2046_Touchscreen Touch(T_CS, T_IRQ);

    TS_Point TouchPoint;

    SdFat sd;
    SdFile dataFile;

    void setup() {

    Serial.begin(9600);

    while (!Serial) {}
    Serial.println("Starting...");

    // start the dispaly
    Display.begin();
    Display.setRotation(1);
    // depending on your exact display getting touch + SD + display working
    // you may need to adjust the clock speed
    // default is 30 mhz but you may need to slow to 10000000 or set to as high as 100000000
    //Display.setClock(20000000);

    // start the touch
    Touch.begin();
    Touch.setRotation(1);

    // start the SD card
    // depending on your sd card and display, you may need to slow the sd card clock
    // I find 20 mhz to be pretty reliable
    bool SDStatus = sd.begin(SD_CS, SD_SCK_MHZ(20));
    //bool SDStatus = sd.begin(SD_CS);

    // test SD and write something
    if (SDStatus) {
    Serial.println("SD OK");
    dataFile.open("Test.txt", FILE_WRITE);
    dataFile.print("This is a test");
    dataFile.close();
    }
    else {
    Serial.println("SD failed");
    }

    // test display
    Display.fillScreen(ILI9341_BLUE);
    Serial.print("Color of pixel (10,10): ");
    Serial.println(Display.readPixel(10, 10));
    delay(4000);
    Display.fillScreen(ILI9341_BLACK);
    }

    void loop() {

    if (Touch.touched()) {

    TouchPoint = Touch.getPoint();

    BtnX = TouchPoint.x;
    BtnY = TouchPoint.y;

    // consistency between displays is a mess...
    // this is some debug code to help show
    // where you pressed and the resulting map

    // x = map(x, real left, real right, 0, width);
    // y = map(y, real bottom, real top, 0, height);

    // tft with black headers, yellow headers will be different
    BtnX = map(BtnX, 3700, 300, 0, 320);
    BtnY = map(BtnY, 3800, 280, 0, 240);

    // Serial.print(", Mapped: ");
    // Serial.print(BtnX);
    // Serial.print(",");
    // Serial.println(BtnY);
    Display.fillCircle(BtnX, BtnY, 3, ILI9341_RED);
    // delay(5);

    }
    }
    88 people found this helpful
    Report
  • Reviewed in the United States on September 9, 2024
    This is fully functional. Works exactly how it was intended to. For the price, I will probably buy more of these. Super easy to set up. Pins are clearly labeled. Definitely a great value. It is however slower than other higher end expensive units but you get what you pay for.
    One person found this helpful
    Report
  • Reviewed in the United States on September 18, 2022
    Let me state, it works, it works as expected and I like the display.

    Let me get you over a couple of gotchas. First off, no joke on the 3.3V logic. You can't use an UNO for testing, it just doesn't work. I can think of a chipset I haven't been able to cheat it but 5V = doesn't function (worked fine after I switched processors, I didn't cook mine).

    I got mine working on an Arduino MKR. I tied reset to the MKRs VCC, I plugged the display VCC into the 5V pin. I used the Adafruit ILI9341 library and the display test ran after I look the "LED" pin and tied it to pin 6 and did the told digitalWrite(6, HIGH); on the top line of setup();.

    I then tested the touch screen with the XPT2046 library, there is only one out there from memory. One note... the MISO/MOSI lines are NOT connected as some online walkthroughs state... so you'll need to switch wires over for bench testing. I used the example with IRQ and put my CS on pin 5 and IRQ on pin 4. The sensitivity of the display matched my expectations for a resistive touch screen (vs capacitive).

    For the hassle I prefer the Adafruit version but with a little extra effort it's worth the lower cost.
    Customer image
    5.0 out of 5 stars
    Works fine once you get past a few gotchas

    Reviewed in the United States on September 18, 2022
    Let me state, it works, it works as expected and I like the display.

    Let me get you over a couple of gotchas. First off, no joke on the 3.3V logic. You can't use an UNO for testing, it just doesn't work. I can think of a chipset I haven't been able to cheat it but 5V = doesn't function (worked fine after I switched processors, I didn't cook mine).

    I got mine working on an Arduino MKR. I tied reset to the MKRs VCC, I plugged the display VCC into the 5V pin. I used the Adafruit ILI9341 library and the display test ran after I look the "LED" pin and tied it to pin 6 and did the told digitalWrite(6, HIGH); on the top line of setup();.

    I then tested the touch screen with the XPT2046 library, there is only one out there from memory. One note... the MISO/MOSI lines are NOT connected as some online walkthroughs state... so you'll need to switch wires over for bench testing. I used the example with IRQ and put my CS on pin 5 and IRQ on pin 4. The sensitivity of the display matched my expectations for a resistive touch screen (vs capacitive).

    For the hassle I prefer the Adafruit version but with a little extra effort it's worth the lower cost.
    Images in this review
    Customer image
    4 people found this helpful
    Report
  • Reviewed in the United States on May 21, 2020
    The display is bright and the colors are well defined. The model I received has a transistor to control the back light LED which is handy if you want to control it from code. It also has the touch screen overlay oriented so the X, Y coordinates align with the LCD display coordinates. It came with a handy white stylus. I bought a similar ILI9341 and it lacked the stylus, the transistor and the overlay orientation was reversed.

    The SPI pins are broken out separately for the touchscreen and the LCD which is useful because they run at very different speeds. The LCD works well at 50 MHz which is great for fast drawing, but the touchscreen produced errors at speeds exceeding 1 MHz.

    The touchscreen overlay is resistive. Unlike a modern phone, it requires a very firm press such as with a stylus or your finger tip to get accuracy.
    Customer image
    4.0 out of 5 stars
    Great value and works well

    Reviewed in the United States on May 21, 2020
    The display is bright and the colors are well defined. The model I received has a transistor to control the back light LED which is handy if you want to control it from code. It also has the touch screen overlay oriented so the X, Y coordinates align with the LCD display coordinates. It came with a handy white stylus. I bought a similar ILI9341 and it lacked the stylus, the transistor and the overlay orientation was reversed.

    The SPI pins are broken out separately for the touchscreen and the LCD which is useful because they run at very different speeds. The LCD works well at 50 MHz which is great for fast drawing, but the touchscreen produced errors at speeds exceeding 1 MHz.

    The touchscreen overlay is resistive. Unlike a modern phone, it requires a very firm press such as with a stylus or your finger tip to get accuracy.
    Images in this review
    Customer image
    One person found this helpful
    Report
  • Reviewed in the United States on May 13, 2022
    I love the ILI9341 so my review is biased because this product uses that controller. With touch it has everything I need to do most of my prototyping. I don't use the SD reader on it - who does? But it doesn't get in the way. It's rated for like 10Mhz, but it will work at 40Mhz for writes and 20Mhz for reads which is plenty fast. The build quality of the breakout is what you can usually expect from hiletgo - which is decent, but not stellar. However, it's a knockoff of a great product, so it's put together really well. The touch is easy to wire and if you're sharing the bus with the screen it only requires one additional pin.

    This is the display I recommend if someone just asks me "what display should I use for Arduino?"
    One person found this helpful
    Report
  • Reviewed in the United States on October 27, 2018
    This thing pretty much does everything. Very nice graphics and reasonable touch. For the money, can't be beat.

    I've only used a logic level shifter to 3.3V with this. Everything works fine when you use it.

    Pins of interest:

    CS is Chip Select (user defined)
    Reset is Reset (user defined)
    DC is DC (user defined)
    MOSI is MOSI
    SCK is the Clock
    LED ties to VCC (3.3v)
    MISO is MISO

    The Touch Screen is simpler

    The SD Card slot need to have posts soldered

    Otherwise, very good value. Works great. Use the Adafruit ILI9341 library for the LCD.
    Use the Adafruit STMPE610 for the touchscreen
    Use the SD library for the SD card
    4 people found this helpful
    Report