3.5" TFT LCD shield Arduino Uno problem

Hi there,

I am using 3.5" TFT LCD Shield with Arduino Uno (tried on Mega, but the result is the same)

mcufrient_kbv diagnose_TFT_support returns the following:

Diagnose whether this controller is supported
There are FAQs in extras/mcufriend_how_to.txt

tft.readID() finds: ID = 0x0

MCUFRIEND_kbv version: 2.9.9

This ID is not supported
look up ID in extras/mcufriend_how_to.txt
you may need to edit MCUFRIEND_kbv.cpp
to enable support for this ID
e.g. #define SUPPORT_8347D

New controllers appear on Ebay often
If your ID is not supported
run LCD_ID_readreg.ino from examples/
Copy-Paste the output from the Serial Terminal
to a message in Displays topic on Arduino Forum
or to Issues on GitHub

Note that OPEN-SMART boards have diff pinout
Edit the pin defines in LCD_ID_readreg to match
Edit mcufiend_shield.h for USE_SPECIAL
Edit mcufiend_special.h for USE_OPENSMART_SHIELD_PINOUT

Based on the manufacturer it's using ILI9486 driver.

LCD_ID_readnew returns the following

Read Special 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)

diagnose any controller
reg(0x0000) 00 00 ID: ILI9320, ILI9325, ILI9335, ...
reg(0x0004) 00 00 00 00 Manufacturer ID
reg(0x0009) 00 00 00 00 00 Status Register
reg(0x000A) 00 00 Get Power Mode
reg(0x000C) 00 00 Get Pixel Format
reg(0x0030) 00 00 00 00 00 PTLAR
reg(0x0033) 00 00 00 00 00 00 00 VSCRLDEF
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(0x00B3) 00 00 00 00 00 Frame Memory
reg(0x00B4) 00 00 Frame Mode
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(0x00C1) 00 00 00 00 Display Timing
reg(0x00C5) 00 00 Frame Rate
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 00 Power Control
reg(0x00D1) 00 00 00 00 VCOM Control
reg(0x00D2) 00 00 00 Power Normal
reg(0x00D3) 00 00 00 00 ILI9341, ILI9488
reg(0x00D4) 00 00 00 00 Novatek
reg(0x00DA) 00 00 RDID1
reg(0x00DB) 00 00 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
ILI9486 / 1LI9488
reg(0x0004) 00 00 00 00 Manufacturer ID
reg(0x0005) 00 00 DSI errors
reg(0x0009) 00 00 00 00 00 Status Register
reg(0x000A) 00 00 Get Power Mode
reg(0x000B) 00 00 Get Address Mode
reg(0x000C) 00 00 Get Pixel Format
reg(0x000D) 00 00 Get Display Mode
reg(0x000E) 00 00 Get Signal Mode
reg(0x000F) 00 00 Get Diagnostic Result
reg(0x00B0) 00 00 Interface Mode
reg(0x00B1) 00 00 00 Frame Rate Normal
reg(0x00B2) 00 00 00 Frame Rate Idle
reg(0x00B3) 00 00 00 Frame Rate Partial
reg(0x00B4) 00 00 Inversion Control
reg(0x00B5) 00 00 00 00 00 Blanking Porch
reg(0x00B6) 00 00 00 00 Display Control
reg(0x00B7) 00 00 Entry Mode Set
reg(0x00BF) 00 00 00 00 00 00 NON-Ilitek Device Code Read
reg(0x00C0) 00 00 00 Power Control 1
reg(0x00C1) 00 00 00 Power Control 2
reg(0x00C2) 00 00 Power Control 3
reg(0x00C3) 00 00 Power Control 4
reg(0x00C4) 00 00 Power Control 5
reg(0x00C5) 00 00 00 00 00 VCOM Control 1
reg(0x00D3) 00 00 00 00 RDID4
reg(0x00DA) 00 00 RDID1
reg(0x00DB) 00 00 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(0x00F2) 00 00 00 00 00 00 00 00 00 00 Adjust 2
reg(0x00F7) 00 00 00 00 00 Adjust 3
reg(0x00F8) 00 00 00 Adjust 4
reg(0x00F9) 00 00 00 Adjust 5
reg(0x00FB) 00 00 SPI Read
reg(0x00FC) 00 00 00 Adjust 6

can someone help me figure out the problem?

@gmartirosyan, your topic has been moved to the dedicated display section on the forum.

1 Like

Please post a link to the actual Shield that you have bought. e.g. Ebay sale page.

If you can't find your paperwork, just find a similar item on Ebay, AliExpress, ...
Post a link to the "similar" item and say that it looks like your item.

If all else fails, post photos of the Shield. i.e. front and back. The pcb view is the important one. If the components are different or copper traces are slightly different, say so.

David.

1 Like

David, thanks for your quick response.

Here is the link to the Item specs: Новый документ - Google Docs

What is interesting, when I release the screen from my Arduino UNO r3 it returns me (0xD3D3), but when I plug the screen in, all the reg values are 00.

Thanks for your help in advance.

Thanks for the link. It does not show the pcb side of the Shield.

It says 3.5 inch 480x320 TFT LCD Touch Screen Display Module For Arduino Without Touch Panel but the photo shows a Touch Panel.

Please post a "similar display" link. i.e. compare the pcb in the link with the item on your desk.
Or post a photo of the Shield pcb on your desk.

David.

Right, I also noticed that strange description (Without Touch Panel).

Here is the actual photo of the shield pcb.

It also says

Applicable for Arduino UNO & MEGA 2560 development board, compatible with UTFT / UTFT_Buttons / Utouch Library for Arduino Mega2560.

which is untrue for the Blue pcb in your photo.

I would expect your Blue Shield to work just fine in both Uno and MEGA2560. I would be happier with 74LVC245 buffer chips instead of the SM245TS chips in your photo. But SM245 should "work". If you Google, you get a Chinese datasheet for MW74HC245.

You have tried both Uno and Mega2560 with the same result i.e. 00 00 00 in LCD_ID_readreg

It is unlikely that you have two broken Arduinos. So the Shield is probably faulty.

Please try forcing the ID in graphictest_kbv.ino e.g.
tft.begin(0x9486);

Of course the shop may know that it is selling faulty items. Hence the outright lies in the description. They should give you a full refund. The business model is "buy damaged items for $0.00 and sell at full price to innocent customers". It relies on most customers not complaining.

David.

I was wondering if this shield (if not faulty) could perform something wired to an ESP32 and using Bodmer's TFT_eSPI library. great hardware, great library.

Thank you, David,

I also think that the screen is broken. The touch screen is working. I don't see the button on the screen but I was able to catch onButtonPressed event while running button_simple. But graphics does not work.

graphictest_kbv.ino does not give me any result. But here are some results from other tests:
Touch_shield_new (forcing tft.begin(0x9486); )

Please Calibrate.
ID=0x9486
Screen is 320x480
Calibration is:
LEFT = 907 RT = 136
TOP = 942 BOT = 139
Wiring is always PORTRAIT
YP=55 XM=56
YM=7 XP=6

Touch_shield_new (without forcing ID is 0X0 ). As you can see Screen size is 0x320 here. I'm not sure if this is helpful information.

Please Calibrate.
ID=0x0
Screen is 0x320
Calibration is:
LEFT = 907 RT = 136
TOP = 942 BOT = 139
Wiring is always PORTRAIT
YP=55 XM=56
YM=7 XP=6

Thanks,
Gagik

You can try all the other 320x480 IDs in mcufriend_how_to.txt file.
You can try with a different Uno, Mega2560, Due, ...

But my advice is: Ask for your money back.

David.

1 Like