LCD is only displaying all white

I have a TFT screen, it's this one:

https://www.aliexpress.com/item/1874979237.html?spm=a2g0s.9042311.0.0.27424c4d9jUhb5

I'm using a genuine Arduino UNO. I have also tried it on an Elegoo Mega 2560R3

I ran the LCD_ID_readreg.ino diagnoses and received the following details:

Rea08 08 08 08 08 08 08 08 08 08 08 Adjust Control 2 reg(0x00F6) 00 00 00 00 Interface Control 49 49 49 ILI9327 reg(0x00F2) 08 08 08 08 08 08 08 08 08 08 08 08 Adjust Control 2 reg(0x00F6) 00 00 00 00 Interface Control 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) 75 75 ID: ILI9320, ILI9325, ILI9335, ... reg(0x0004) 00 00 00 00 Manufacturer ID reg(0x0009) 3F 3F 3F 3F 3F Status Register reg(0x000A) 00 00 Get Power Mode reg(0x000C) 01 01 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 00 00 ILI9341, ILI9488 reg(0x00D4) 00 00 00 00 Novatek ID reg(0x00DA) 00 00 RDID1 reg(0x00DB) 00 00 RDID2 reg(0x00DC) 00 00 RDID3 reg(0x00E0) 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 GAMMA-P reg(0x00E1) 49 49 49 49 49 49 49 49 49 49 49 49 49 49 49 49 GAMMA-N reg(0x00EF) 49 49 49 49 49 49 ILI9327 reg(0x00F2) 08 08 08 08 08 08 08 08 08 08 08 08 Adjust Control 2 reg(0x00F6) 00 00 00 00 Interface Control

I then ran the diagnose_TFT_support.ino example and got this result:

DiagE_OPENSMART_SHIELD_PINOUT es in LCD_ID_readreg to match Edit mcufiend_shield.h for USE_SPECIAL Edit mcufiend_special.h for USE_OPENSMART_SHIELD_PINOUT Diagnose whether this controller is supported There are FAQs in extras/mcufriend_how_to.txt

tft.readID() finds: ID = 0x7575

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

However, if I run any examples the screen just remains white. Specifcaly when I run the showBMP_kbv_Uno.ino example, I get the following error over and over:

/arduin~1.bmp - bad position

Any help would very much be appreciated.

From C:\Users\David Prentice\Documents\Arduino\libraries\Mcufriend_kbv\extras\mcufriend_how_to.txt

HX8347-G 240x320  ID=0x7575 #define SUPPORT_8347D

You have a HX8347-G controller. Edit C:\Users\David Prentice\Documents\Arduino\libraries\Mcufriend_kbv\MCUFRIEND_kbv.cpp e.g. change this line:

//#define SUPPORT_8347D             //HX8347-D, HX8347-G, HX8347-I, HX8367-A +520 bytes, 0.27s

to:

#define SUPPORT_8347D             //HX8347-D, HX8347-G, HX8347-I, HX8367-A +520 bytes, 0.27s

Run all the examples. They should all work without any changes.

Does your Shield really have U1 like the photos in your link ???

David.

n.b. C:\Users\David Prentice... will have your name instead

Thanks so much for the quick response. I'm currently using the online Arduino Create editor. Do you know if there is anyway to modify libraries when using the online version instead of the download version?

Sorry, but what is U1?

Is that an angry face? Should I be concerned? :)

Sorry, but what is U1?

u1.jpg

Yep, it does have that U1 part from your photo. What does it do?

And thanks for the help. I grabbed the download version, made the changes to the MCUFRIEND library, and it's working now.

Please don't: I grabbed the download version

Use the IDE: Tools/Library Manager Install / Upgrade properly.

U1 is an AMS1117-3.3 or equivalent. Google will find the datasheet.

David.

david_prentice: Please don't: I grabbed the download version

I'm not sure what this means.

I'm still not sure what a U1 is. Maybe instead of asking "what it is?", because "AMS1117-3.3" doesn't help me. I should have asked what does it do? And why did you even ask?

Installing libraries through the library manager insures that you are getting the latest version of the library and that the library will be properly installed. Downloading some random version from someplace, not so much. So, always use the library manager, if possible.

The LM1117 3.3 is a 3.3V voltage regulator.

Understood. By "grabbed the download version" I meant I download the Arduino IDE. Up until this I have been using the web editor (https://create.arduino.cc/editor).

I did use the library manager of the downloaded IDE to install libraries.

Thanks again!

professoradam: Thanks so much for the quick response. I'm currently using the online Arduino Create editor. Do you know if there is anyway to modify libraries when using the online version instead of the download version?

I have never used the online Arduino Create. It has never occurred to me that online Library is "not configurable". With regular local libraries you either edit a library.cpp or library.h or a user_config.h file.

Library authors try to avoid any need for the User to make edits. Unfortunately you have a "less common" controller.

Sorry, but what is U1?

Components on a pcb are labelled. e.g. resistors R1, ..., integrated circuits U1, ..., transistors Q1, ...

Part numbers tend to follow a convention : MFRnnn where MFR is the Manufacturer and nnn is a number. e.g. AMS1117, LM1117, ...

Google is your friend. Type a part number. You generally get an English description like "voltage regulator" as well as links to the technical datasheet.

It is difficult to know what level of message reply is appropriate. Google and Wikipedia are "better". Especially for non-English speakers.

Is that an angry face? Should I be concerned? :)

My apologies. I don't do imogees. I only know that I should avoid 8 followed by right parenthesis. It looks as if I typed three question marks instead of a single question mark. I will avoid this in future.

Thanks for your feedback. It is very useful to know about "online Arduino" Perhaps some readers can offer me some advice regarding "library configuration".

David.