Greetings Arduino comunity!
I have bought this 3.5" TFT LCD from ebay, and I can't get it to work no matter what I do, what library I use or what tutorial I follow ... All I have is white screen shining brightly and that's it (mind the attached pictures). It supposedly uses one of these controllers: ili9481, ili9468, ili9488, hx8357 or r61581.
I am frustrated to the point of registering on this forum after 10 years of using arduino, just for this one problem - imagine the pain if you can
I really need some help and guidance - I would appretiate any help greatly.
My setup is 3.5" TFT LCD with Arduino UNO R3. I do plan to use this LCD with Arduino Mega mini later, but I would just like to get it working first.
I have managed to do some tests, that would be way more helpful were there any guidelines on how to interpret them, if you are not the guy that programmed them ... But anyway, here are the results:
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 00 00 00 Manufacturer ID
reg(0x0009) 01 01 01 01 01 Status Register
reg(0x000A) 00 08 Get Power Mode
reg(0x000C) 00 66 Get Pixel Format
reg(0x0061) 01 01 RDID1 HX8347-G
reg(0x0062) 00 00 RDID2 HX8347-G
reg(0x0063) 01 01 RDID3 HX8347-G
reg(0x0064) 00 00 RDID1 HX8347-A
reg(0x0065) 01 01 RDID2 HX8347-A
reg(0x0066) 00 00 RDID3 HX8347-A
reg(0x0067) 01 01 RDID Himax HX8347-A
reg(0x0070) 00 00 Panel Himax HX8347-A
reg(0x00A1) 01 01 01 01 01 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) 01 01 Entry Mode Set
reg(0x00BF) 01 01 01 01 01 01 ILI9481, HX8357-B
reg(0x00C0) 00 00 3A 00 02 10 20 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 44 00 Power Control
reg(0x00D2) 00 04 12 00 00 NVM Read
reg(0x00D3) 01 05 13 01 ILI9341, ILI9488
reg(0x00D4) 00 06 12 00 Novatek ID
reg(0x00DA) 00 00 RDID1
reg(0x00DB) 01 01 RDID2
reg(0x00DC) 00 00 RDID3
reg(0x00E0) 00 00 62 82 56 00 00 00 00 00 00 00 00 00 00 00 GAMMA-P
reg(0x00E1) 01 01 63 83 57 01 01 01 01 01 01 01 01 01 01 01 GAMMA-N
reg(0x00EF) 01 2D 17 17 2D 01 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
diagnose_TFT_support
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
diagnose_Touchpins
Making all control and bus pins INPUT_PULLUP
Typical 30k Analog pullup with corresponding pin
would read low when digital is written LOW
e.g. reads ~25 for 300R X direction
e.g. reads ~30 for 500R Y direction
Testing : (A1, D7) = 34
Testing : (A2, D6) = 24
Diagnosing as:-
YP,YM: (A1, D7) = 34
XM,XP: (A2, D6) = 24
graphics_test
Serial took 0ms to start
ID = 0x0