I can't get my 2.4" TFT touch screen to work correctly.

Hi, I just bought a UNO R3 and 2.4" TFT display off ebay and I can only control the top line of 320 pixels. the rest of the screen is random coloured lines.

When running the mcufriend example testcard_kbv, the ID = tft.readID() reads a 0 and displays a white screen so i added ID = 0x9341 , now i can control the top line of 320 pixels. Any idea how to get the rest of the display working ?

https://www.ebay.co.uk/itm/282713886863?ul_noapp=true (picture not the same as the display)

Software used :-
Arduino IDE (1.8.9)
MCUFRIEND_kbv (2.9.8 )
Adafruit_GFX (1.7.3)

Run the LCD_ID_readreg sketch from the examples.

Copy-Paste from the Serial Terminal to your message with </>

Read Registers on MCUFRIEND UNO shield
controllers either read as single 16-bit
e.g. the ID is at readReg(0)
or as a sequence of 8-bit values
in special locations (first is dummy)

reg(0x0000) 00 00   ID: ILI9320, ILI9325, ILI9335, ...
reg(0x0004) 00 99 99 00   Manufacturer ID
reg(0x0009) 00 00 61 00 00   Status Register
reg(0x000A) 00 08   Get Power Mode
reg(0x000C) 00 66   Get Pixel Format
reg(0x0061) 00 00   RDID1 HX8347-G
reg(0x0062) 00 00   RDID2 HX8347-G
reg(0x0063) 00 00   RDID3 HX8347-G
reg(0x0064) 00 00   RDID1 HX8347-A
reg(0x0065) 00 00   RDID2 HX8347-A
reg(0x0066) 00 00   RDID3 HX8347-A
reg(0x0067) 00 00   RDID Himax HX8347-A
reg(0x0070) 00 00   Panel Himax HX8347-A
reg(0x00A1) 00 00 00 00 00   RD_DDB SSD1963
reg(0x00B0) 00 00   RGB Interface Signal Control
reg(0x00B4) 00 00   Inversion Control
reg(0x00B6) 00 00 00 00 00   Display Control
reg(0x00B7) 00 00   Entry Mode Set
reg(0x00BF) 00 00 00 00 00 00   ILI9481, HX8357-B
reg(0x00C0) 00 00 00 00 00 00 00 00 00   Panel Control
reg(0x00C8) 00 00 00 00 00 00 00 00 00 00 00 00 00   GAMMA
reg(0x00CC) 00 00   Panel Control
reg(0x00D0) 00 00 00   Power Control
reg(0x00D2) 00 00 00 00 00   NVM Read
reg(0x00D3) 00 00 32 29   ILI9341, ILI9488
reg(0x00D4) 00 00 00 00   Novatek ID
reg(0x00DA) 00 99   RDID1
reg(0x00DB) 00 99   RDID2
reg(0x00DC) 00 00   RDID3
reg(0x00E0) 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   GAMMA-P
reg(0x00E1) 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   GAMMA-N
reg(0x00EF) 00 00 00 00 00 00   ILI9327
reg(0x00F2) 00 00 00 00 00 00 00 00 00 00 00 00   Adjust Control 2
reg(0x00F6) 00 00 00 00   Interface Control

I do not recognise your controller.

I suggest that you force it with

tft.begin(0x9329);

Which country are you in ?
I am in England.

David.

HI Dave, ive just tried begin(0x9329). The same, top row of pixels work the rest random coloured lines.

Am from England

Nick

Let me join in because looks like I got exactly the same display (because it reports the same LCD_ID_readreg output) and I also can't get it to work. Here it is for reference:

18:22:49.776 -> reg(0x0000) 00 00 ID: ILI9320, ILI9325, ILI9335, ...
18:22:49.844 -> reg(0x0004) 00 99 99 00 Manufacturer ID
18:22:49.877 -> reg(0x0009) 00 00 61 00 00 Status Register
18:22:49.911 -> reg(0x000A) 00 08 Get Powsr Mode
18:22:49.979 -> reg(0x000C) 00 66 Get Pixel Format
18:22:49.979 -> reg(0x0030) 00 00 00 01 3F PTLAR
18:22:50.047 -> reg(0x0033) 00 00 00 01 40 00 00 VSCRLDEF
18:22:50.081 -> reg(0x0061) 00 00 RDID1 HX8347-G
18:22:50.115 -> reg(0x0062) 00 00 RDID2 HX8347-G
18:22:50.149 -> reg(0x0063) 00 00 RDID3 HX8347-G
18:22:50.217 -> reg(0x0064) 00 00 RDID1 HX8347-A
18:22:50.217 -> reg(0x0065) 00 00 RDID2 HX8347-A
18:22:50.285 -> reg(0x0066) 00 00 RDID3 HX8347-A
18:22:50.319 -> reg(0x0067) 00 00 RDID Himax HX8347-A
18:22:50.353 -> reg(0x0070) 00 00 Panel Himax HX8347-A
18:22:50.387 -> reg(0x00A1) 00 00 00 00 00 RD_DDB SSD1963
18:22:50.421 -> reg(0x00B0) 00 00 RGB Interface Signal Control
18:22:50.455 -> reg(0x00B3) 00 00 00 00 00 Frame Memory
18:22:50.523 -> reg(0x00B4) 00 00 Frame Mode
18:22:50.557 -> reg(0x00B6) 00 00 00 00 00 Display Control
18:22:50.591 -> reg(0x00B7) 00 00 Entry Mode Set
18:22:50.625 -> reg(0x00BF) 00 00 00 00 00 00 ILI9481, HX8357-B
18:22:50.693 -> reg(0x00C0) 00 00 00 00 00 00 00 00 00 Panel Control
18:22:50.727 -> reg(0x00C1) 00 00 00 00 Display Timing
18:22:50.794 -> reg(0x00C5) 00 00 Frame Rate
18:22:50.794 -> reg(0x00C8) 00 00 00 00 00 00 00 00 00 00 00 00 00 GAMMA
18:22:50.862 -> reg(0x00CC) 00 00 Panel Control
18:22:50.930 -> reg(0x00D0) 00 00 00 00 Power Control
18:22:50.964 -> reg(0x00D1) 00 00 00 00 VCOM Control
18:22:50.964 -> reg(0x00D2) 00 00 00 Power Normal
18:22:50.998 -> reg(0x00D3) 00 00 32 29 ILI9341, ILI9488
18:22:51.066 -> reg(0x00D4) 00 00 00 00 Novatek
18:22:51.100 -> reg(0x00DA) 00 99 RDID1
18:22:51.134 -> reg(0x00DB) 00 99 RDID2
18:22:51.134 -> reg(0x00DC) 00 00 RDID3
18:22:51.168 -> reg(0x00E0) 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 GAMMA-P
18:22:51.236 -> reg(0x00E1) 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 GAMMA-N
18:22:51.304 -> reg(0x00EF) 00 00 00 00 00 00 ILI9327
18:22:51.371 -> reg(0x00F2) 00 00 00 00 00 00 00 00 00 00 00 00 Adjust Control 2
18:22:51.405 -> reg(0x00F6) 00 00 00 00 Interface Control

I've bought it here, by the way:
https://www.aliexpress.com/item/33040030964.html

but the display is not exactly like on the page and looks like this:
20191231_184712.jpg


Initially display was completely white but I've also already tried tft.begin(0x9329); it began to show random color lines like on the screenshot I've attached
20191231_190856.jpg

And yes - I am also able to control only very first line. Moreover I tried the following IDs with the same result:

  • 0x9329
  • 0x9340
  • 0x9341

When I say "with the same result" - I mean that I'm still able to control first line and all other lines are just of random color as on the screenshot. I also tried (with white display result) these IDs:

  • 0x9320
  • 0x9325
  • 0x9328

20191231_184712.jpg

20191231_190856.jpg

Ask for your money back.

If you used Ebay there would be an immediate refund.

Note that AliExpress often has complicated terms. I will give you a medal if you can understand the terms in your link.
And judging by the photos of broken screens I would have little confidence in your supplier.

David.

I've lifted the screen off pcb and found a number (SKY024S18A-96). Does anyone know what this number is ?

I suppose that should be a part number for the TFT LCD display produced by SKY Technology (Shenzhen) corporation where SKY stands for the name of the company and 024 stands for display size which is 2.4' actually. I cannot find direct proof of this suggestion and this code cannot be find over Google but I found this site:

Have a look on the item IDs there. They have names like SKY070WVTA-1 which matches the pattern of "SKY024S18A-96" precisely. But unfortunately I cannot find anything like SKY024S18A-96 on this site so I suppose 2 options:

  • product is outdated and no longer manufactured
  • product is brand new and is not listed in the catalogue

I paid 2.5 dollars for it and I don't suppose that someone can ship you single screen for cheaper price so I'm going to buy another one. Anyway I cannot find this kind of screen for sale anywhere. But at least I got card reader with a touch input but without a display :slight_smile: Draw buttons on the paper, glue it to the screen and voila - you got a button board with backlight!

Thanks for help, David and happy New Year to everyone!

It is unusual to find a 2018/07/21 date code.
Most of the Ebay Shields are dated 2005, 2006,..., 2009, ...

So it looks as if you have a current production panel.
I would expect it to work 100% but it could be that the Ebay vendor is simply selling faulty shields knowing that most punters will not complain.

If the shop has to refund all the faulty items they might think about their business practices

**If you a receive a faulty item, you should ALWAYS report it. **

I don't have this Shield. If someone is prepared to test on GitHub, it should be possible to come to a conclusion.

David.

Do we have any solution on this? I am facing same problem.

I have been working on TFT screen with mcufriend library, everything was good, i ordered 50 2.4" TFT screen but this new lot has some issue, the ID is 0x0000 attached is the output from your example. Do we have any solution for this or support for this?

Read Registers on MCUFRIEND UNO shield
controllers either read as single 16-bit
e.g. the ID is at readReg(0)
or as a sequence of 8-bit values
in special locations (first is dummy)

reg(0x0000) 00 00 ID: ILI9320, ILI9325, ILI9335, ...
reg(0x0004) 00 99 99 00 Manufacturer ID
reg(0x0009) 00 00 61 00 00 Status Register
reg(0x000A) 00 08 Get Power Mode
reg(0x000C) 00 66 Get Pixel Format
reg(0x0061) 00 00 RDID1 HX8347-G
reg(0x0062) 00 00 RDID2 HX8347-G
reg(0x0063) 00 00 RDID3 HX8347-G
reg(0x0064) 00 00 RDID1 HX8347-A
reg(0x0065) 00 00 RDID2 HX8347-A
reg(0x0066) 00 00 RDID3 HX8347-A
reg(0x0067) 00 00 RDID Himax HX8347-A
reg(0x0070) 00 00 Panel Himax HX8347-A
reg(0x00A1) 00 00 00 00 00 RD_DDB SSD1963
reg(0x00B0) 00 00 RGB Interface Signal Control
reg(0x00B4) 00 00 Inversion Control
reg(0x00B6) 00 00 00 00 00 Display Control
reg(0x00B7) 00 00 Entry Mode Set
reg(0x00BF) 00 00 00 00 00 00 ILI9481, HX8357-B
reg(0x00C0) 00 00 00 00 00 00 00 00 00 Panel Control
reg(0x00C8) 00 00 00 00 00 00 00 00 00 00 00 00 00 GAMMA
reg(0x00CC) 00 00 Panel Control
reg(0x00D0) 00 00 00 Power Control
reg(0x00D2) 00 00 00 00 00 NVM Read
reg(0x00D3) 00 00 32 29 ILI9341, ILI9488
reg(0x00D4) 00 00 00 00 Novatek ID
reg(0x00DA) 00 99 RDID1
reg(0x00DB) 00 99 RDID2
reg(0x00DC) 00 00 RDID3
reg(0x00E0) 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 GAMMA-P
reg(0x00E1) 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 GAMMA-N
reg(0x00EF) 00 00 00 00 00 00 ILI9327
reg(0x00F2) 00 00 00 00 00 00 00 00 00 00 00 00 Adjust Control 2
reg(0x00F6) 00 00 00 00 Interface Control

Sorry AmitSingh i have not found any solution to this problem. my display is still not working.

@AmitSingh,
@Nick_demet,

I ordered a Shield from AliExpress on 4 Jan. Tracking just says that it has been "stationary" since 12 Jan.
If and when it arrives, it might have an 0x3229 controller. Or it might not.

It cost £0.83 to mail a "Second Class 100g Large Letter" in the UK. Packet arrives in < 2 days.
Buying from China means 8 - 28 days. It might be broken. It might be wrong item.

David.

I have 2 red screens 2.4" and I found for the one that has the 0x9325 controller and the other one the 0x9341 controller.

The matter is I can't get them work in problems where the UTFT library is used:

// Set the pins to the correct ones for your development shield
// ------------------------------------------------------------
// Arduino Uno / 2009:
// -------------------
// Standard Arduino Uno/2009 shield            : <display model>,A5,A4,A3,A2
// DisplayModule Arduino Uno TFT shield        : <display model>,A5,A4,A3,A2
//
// Arduino Mega:
// -------------------
// Standard Arduino Mega/Due shield            : <display model>,38,39,40,41
// CTE TFT LCD/SD Shield for Arduino Mega      : <display model>,38,39,40,41
//
// Remember to change the model parameter to suit your display module!
   
   UTFT myGLCD(<display model>,A5,A4,A3,A2);

I can't find the of the screens.

The screen with 0x9325 says:
mcufriend.com 2.4" TFT LCD Shield (on the back side of the board)
WHY0005 (on the ribbon)
QR4 6997S G1/2 (on the screen, on the right-bottom)

The screen with 0x9341 controller says:
tftlcd for arduino uno (spiflash) (on the back side)
5942C2 (on the left-bottom on the screen)

Each one of the screens is attached to the Arduino Uno and works fine with mcu_kbv library.

How could I find their display models? (I tried ILI9325 and ILI9341 without success, I only see "white" screen when uploading the programs)

UTFT expects the data bus to be on digital 0-7 for a Uno. Or digital 22-37 for a Mega.

Your Mcufriend Shields have the data bus on 8,9,2-7 for Uno/Mega/Leo/... and must have a RD pin.

You have to tell UTFT to use a different data bus. You have to set the RD pin (A0) as digital HIGH.

AS far as I know, UTFT supports ILI9325 in 8-bit parallel as ILI9325D_8. It supports ILI9341 in 8-bit parallel as ILI9341_8.
Install current UTFT from RinkyDink. Read UTFT.h for model numbers.

Why do you want to use UTFT ?

David.

Not sure if this is any help at all, but I have found these screens to be very sensitive to the IDE.
I have a box full of these 2.4" screens from various sources, and found that some only work with IDE 1.5.2 (from memory).
I spent a whole evening trying to work that one out before realising that my working project of many years had been messed up by using a newer IDE.

@ david

Thank you very much for the reply.

I just tried to use this library from curiosity and because I found some interesting codes.

I will try and what ever the result is, I will let you know.

Thanks again.

@Sparky2019, this is always a nightmare, being afraid if with a newer version you have problems that up to then you didn't.

Finally, I realized that the code I mentioned in my previous post is working with SPI communication/screens. So with a shield attached to Uno and a 40-pins (2 rows of 20 pins) TFT 3.2" with display model ILI9341_16 and pins 19,18,17,16 as parameters in the UTFT it worked!

The strange thing is that works fine only when in the URTouch I put as parameters what it is prompted for the MEGA, not for UNO!!

// Set the pins to the correct ones for your development board
// -----------------------------------------------------------
// Standard Arduino Uno/2009 Shield            : <display model>,19,18,17,16
// Standard Arduino Mega/Due shield            : <display model>,38,39,40,41
// CTE TFT LCD/SD Shield for Arduino Due       : <display model>,25,26,27,28
// Teensy 3.x TFT Test Board                   : <display model>,23,22, 3, 4
// ElecHouse TFT LCD/SD Shield for Arduino Due : <display model>,22,23,31,33
//
// Remember to change the model parameter to suit your display module!
UTFT    myGLCD(ILI9341_16,19,18,17,16);

// Initialize touchscreen
// ----------------------
// Set the pins to the correct ones for your development board
// -----------------------------------------------------------
// Standard Arduino Uno/2009 Shield            : 15,10,14, 9, 8
// Standard Arduino Mega/Due shield            :  6, 5, 4, 3, 2
// CTE TFT LCD/SD Shield for Arduino Due       :  6, 5, 4, 3, 2
// Teensy 3.x TFT Test Board                   : 26,31,27,28,29
// ElecHouse TFT LCD/SD Shield for Arduino Due : 25,26,27,29,30
//
URTouch  myTouch( 6, 5, 4, 3, 2); // If I put here 15,10,14, 9, 8 it doesn't work!!! I see "white" screen.

hi, i have a similar problem

LCD_ID_readreg:

Read Registers on MCUFRIEND UNO shield
controllers either read as single 16-bit
e.g. the ID is at readReg(0)
or as a sequence of 8-bit values
in special locations (first is dummy)

reg(0x0000) 00 00 ID: ILI9320, ILI9325, ILI9335, ...
reg(0x0004) 00 99 99 00 Manufacturer ID
reg(0x0009) 00 00 61 00 00 Status Register
reg(0x000A) 00 08 Get Power Mode
reg(0x000C) 00 66 Get Pixel Format
reg(0x0061) 00 00 RDID1 HX8347-G
reg(0x0062) 00 00 RDID2 HX8347-G
reg(0x0063) 00 00 RDID3 HX8347-G
reg(0x0064) 00 00 RDID1 HX8347-A
reg(0x0065) 00 00 RDID2 HX8347-A
reg(0x0066) 00 00 RDID3 HX8347-A
reg(0x0067) 00 00 RDID Himax HX8347-A
reg(0x0070) 00 00 Panel Himax HX8347-A
reg(0x00A1) 00 00 00 00 00 RD_DDB SSD1963
reg(0x00B0) 00 00 RGB Interface Signal Control
reg(0x00B4) 00 00 Inversion Control
reg(0x00B6) 00 00 00 00 00 Display Control
reg(0x00B7) 00 00 Entry Mode Set
reg(0x00BF) 00 00 00 00 00 00 ILI9481, HX8357-B
reg(0x00C0) 00 00 00 00 00 00 00 00 00 Panel Control
reg(0x00C8) 00 00 00 00 00 00 00 00 00 00 00 00 00 GAMMA
reg(0x00CC) 00 00 Panel Control
reg(0x00D0) 00 00 00 Power Control
reg(0x00D2) 00 00 00 00 00 NVM Read
reg(0x00D3) 00 00 32 29 ILI9341, ILI9488
reg(0x00D4) 00 00 00 00 Novatek ID
reg(0x00DA) 00 99 RDID1
reg(0x00DB) 00 99 RDID2
reg(0x00DC) 00 00 RDID3
reg(0x00E0) 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 GAMMA-P
reg(0x00E1) 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 GAMMA-N
reg(0x00EF) 00 00 00 00 00 00 ILI9327
reg(0x00F2) 00 00 00 00 00 00 00 00 00 00 00 00 Adjust Control 2
reg(0x00F6) 00 00 00 00 Interface Control

has anyone found a way?

reg(0x00D3) 00 00 32 29   ILI9341, ILI9488

You have an 0x3229 controller. I do not have a datasheet. I do not even know what make it is.

If I had a datasheet, I would be able to make these screens work.

I suggest that you ask the shop for a full refund. They have sold you an item that does not work.

Please post a link to the shop / Ebay / AliExpress sale page.
Then readers can avoid buying this shield.

If the shop has to refund every customer with the faulty shield, they would be more careful with the items that they sell.

David.

p.s. a reader sent me an 0x3229 display. With the controller part number or datasheet I can test immediately.