Display ID not supported - OSOYOO Model: LACC200643, on Kookye Mega2650 Board

First time forum poster. I’ve tried to be thorough. Happy to provide anything I’ve missed that will help.

Issue: 3.2" TFT LCD screen w LCD Screen Adapter Shield shows up as blank on all example tests

Equipment: OSOYOO Model: LACC200643, on Kookye Mega2650 Board (amazon purchase)

Arrive in an OSOYOO BOX but has a Kookye label on the side, listing shows sold by Kookye
Display has part number HSD035338E1 on face, TFT_320QVT_9341 on back near SD Card mount (note: SD Card slot is empty)
Shield has model TFT LCD Mega Shield V2.2 (Touch screen, TFT LCD, SD Card), don’t see any resistor packs adjacent to the 18x2 connector
Arduino is marked OSOYOO MEGA2650 (made in China)

Background: followed the Quick start guide supplied. downloaded libraries. examples showed display of buttons on one example URTouch_Button Test but the touch screen would not respond and the screen did not update as expected (no “buffer full” from else statement or any other response from serial to screen). The code for this example is included in the attached text file and below. You’ll note that I changed the line for the myGLCD definition (about line 29) to reflect the screen type as best I can tell (see link just below).

The User manual is listed as http://osyoo.com/2016/07/22/ili9341-3-2-screen/

Installed the Adafruit GFX and MCU Friend_kbv libraries for help in diagnostics and received the following when running the diagnose tft and diagnose touch pins and LCD_id readreg examples (See attached text file, also pasted below). BTW first ran examples and only got a blank screen. I noticed in the LCD ID readreg that it mentions for use with UNO. Not sure if it is also applicable to the MEGA but based on reading other posts, I’ve guessed that it is.

I see this in mcufriend_how_to.txt … (ILI9341 240x320 ID=0x9341) but there is no #define support reference next to it.

Request:

Looking for assistance in getting proper setup information such that the board will function with an example that shows the proper touchscreen function. Any diagnostic steps or previous posts that I can be directed to are appreciated.

PASTED OUTPUT FROM diagnose tft, diagnose touch pins, lcd id readreg:

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

tft.readID() finds: ID = 0x404

MCUFRIEND_kbv version: 2.9.9

Probably a write-only Mega2560 Shield
#define USE_SPECIAL in mcufriend_shield.h
#define appropriate SPECIAL in mcufriend_special.h
e.g. USE_MEGA_16BIT_SHIELD
e.g. USE_MEGA_8BIT_SHIELD
Hint. A Mega2560 Shield has a 18x2 male header
Often a row of resistor-packs near the 18x2
RP1-RP7 implies 16-bit but it might be 8-bit
RP1-RP4 or RP1-RP5 can only be 8-bit

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

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) 0C 0C ID: ILI9320, ILI9325, ILI9335, …
reg(0x0004) 0C 0C 0C 0C Manufacturer ID
reg(0x0009) 0D 0D 0D 0D 0D Status Register
reg(0x000A) 0E 0E Get Power Mode
reg(0x000C) 0C 0C Get Pixel Format
reg(0x0061) 6D 6D RDID1 HX8347-G
reg(0x0062) 6E 6E RDID2 HX8347-G
reg(0x0063) 6F 6F RDID3 HX8347-G
reg(0x0064) 6C 6C RDID1 HX8347-A
reg(0x0065) 6D 6D RDID2 HX8347-A
reg(0x0066) 6E 6E RDID3 HX8347-A
reg(0x0067) 6F 6F RDID Himax HX8347-A
reg(0x0070) 7C 7C Panel Himax HX8347-A
reg(0x00A1) 2D 2D 2D 2D 2D RD_DDB SSD1963
reg(0x00B0) 3C 3C RGB Interface Signal Control
reg(0x00B4) 3C 3C Inversion Control
reg(0x00B6) 3E 3E 3E 3E 3E Display Control
reg(0x00B7) 3F 3F Entry Mode Set
reg(0x00BF) 3F 3F 3F 3F 3F 3F ILI9481, HX8357-B
reg(0x00C0) 4C 4C 4C 4C 4C 4C 4C 4C 4C Panel Control
reg(0x00C8) 4C 4C 4C 4C 4C 4C 4C 4C 4C 4C 4C 4C 4C GAMMA
reg(0x00CC) 4C 4C Panel Control
reg(0x00D0) 5C 5C 5C Power Control
reg(0x00D2) 5E 5E 5E 5E 5E NVM Read
reg(0x00D3) 5F 5F 5F 5F ILI9341, ILI9488
reg(0x00D4) 5C 5C 5C 5C Novatek ID
reg(0x00DA) 5E 5E RDID1
reg(0x00DB) 5F 5F RDID2
reg(0x00DC) 5C 5C RDID3
reg(0x00E0) 6C 6C 6C 6C 6C 6C 6C 6C 6C 6C 6C 6C 6C 6C 6C 6C GAMMA-P
reg(0x00E1) 6D 6D 6D 6D 6D 6D 6D 6D 6D 6D 6D 6D 6D 6D 6D 6D GAMMA-N
reg(0x00EF) 6F 6F 6F 6F 6F 6F ILI9327
reg(0x00F2) 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E Adjust Control 2
reg(0x00F6) 7E 7E 7E 7E 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) 0C 0C ID: ILI9320, ILI9325, ILI9335, …
reg(0x0004) 0C 0C 0C 0C Manufacturer ID
reg(0x0009) 0D 0D 0D 0D 0D Status Register
reg(0x000A) 0E 0E Get Power Mode
reg(0x000C) 0C 0C Get Pixel Format
reg(0x0061) 6D 6D RDID1 HX8347-G
reg(0x0062) 6E 6E RDID2 HX8347-G
reg(0x0063) 6F 6F RDID3 HX8347-G
reg(0x0064) 6C 6C RDID1 HX8347-A
reg(0x0065) 6D 6D RDID2 HX8347-A
reg(0x0066) 6E 6E RDID3 HX8347-A
reg(0x0067) 6F 6F RDID Himax HX8347-A
reg(0x0070) 7C 7C Panel Himax HX8347-A
reg(0x00A1) 2D 2D 2D 2D 2D RD_DDB SSD1963
reg(0x00B0) 3C 3C RGB Interface Signal Control
reg(0x00B4) 3C 3C Inversion Control
reg(0x00B6) 3E 3E 3E 3E 3E Display Control
reg(0x00B7) 3F 3F Entry Mode Set
reg(0x00BF) 3F 3F 3F 3F 3F 3F ILI9481, HX8357-B
reg(0x00C0) 4C 4C 4C 4C 4C 4C 4C 4C 4C Panel Control
reg(0x00C8) 4C 4C 4C 4C 4C 4C 4C 4C 4C 4C 4C 4C 4C GAMMA
reg(0x00CC) 4C 4C Panel Control
reg(0x00D0) 5C 5C 5C Power Control
reg(0x00D2) 5E 5E 5E 5E 5E NVM Read
reg(0x00D3) 5F 5F 5F 5F ILI9341, ILI9488
reg(0x00D4) 5C 5C 5C 5C Novatek ID
reg(0x00DA) 5E 5E RDID1
reg(0x00DB) 5F 5F RDID2
reg(0x00DC) 5C 5C RDID3
reg(0x00E0) 6C 6C 6C 6C 6C 6C 6C 6C 6C 6C 6C 6C 6C 6C 6C 6C GAMMA-P
reg(0x00E1) 6D 6D 6D 6D 6D 6D 6D 6D 6D 6D 6D 6D 6D 6D 6D 6D GAMMA-N
reg(0x00EF) 6F 6F 6F 6F 6F 6F ILI9327
reg(0x00F2) 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E 7E Adjust Control 2
reg(0x00F6) 7E 7E 7E 7E Interface Control

OSOYOO testing output V1.txt (11 KB)

Your display is write-only. I suggest that you use UTFT and URTouch libraries.

MCUFRIEND_kbv can "work" with write-only screens but you have to enable some SPECIAL drivers.
And none of the "read" methods will work on a write-only display. e.g. readID() or readGRAM()

The link says ILI9325 but your pcb says TFT_320QVT_9341 . Which implies an ILI9341.

  1. Install UTFT and URTouch from RinkyDink. UTFT is version 2.83
  2. Edit the constructor in the examples e.g.

C:\Users\David Prentice\Documents\Arduino\libraries\UTFT\examples\Arduino (AVR)\UTFT_Demo_320x240\UTFT_Demo_320x240.ino

// Remember to change the model parameter to suit your display module!
UTFT myGLCD(ILI9341_16,38,39,40,41);
  1. Run the edited example sketch.
  2. Report back.

When you have it working for UTFT, we can show you how to use URTouch. And how to use MCUFRIEND_kbv (if you want to)

David.

Thank you David. In addition to posting here, I've read a bunch of your other post responses on displays as well and your input is always concise and helpful. Great job and very much appreciated.

Thank you for pointing out that the display is write-only. I did not even pay attention to that but that's good info to have.

I followed your instructions and re-downloaded the UTFT and URTOUCH libraries from RinkyDink (replacing the modified versions from Kookye). I then updated the constructor as you noted (ILI9341). Once I followed both of these steps, the examples UTFT_DEMO_320x240, and the URTOUCH Button examples worked. This was exactly what I needed, to be able to prove that the hardware was functioning properly.

Unfortunately, while the hardware functions properly, it does not function properly for long. It will run any appropriate demo for about 30s-1min and then the screen will go blank (all white/grey). This happens every time even when the unit is sitting untouched on a bench. I suspected that it may be because I was powering by USB so I supplied the board power separately through the power jack (using a 9v supply and then a 12V supply capable of supplying 5A). This did not have any effect. Seems like there is a bad solder joint or faulty component that fails shortly after power up.

Thanks again for your help. You have provided the solution that I needed.

Please don't use external power supplies.

Your Mega2560 is powered by the USB cable.
The Adapter Shield is powered by the Mega2560
The Display receives power from the Adapter Shield.

i.e. you just plug everything together. One USB cable to your PC.

I don't have your display nor your Adapter.

There might be a jumper or solder-bridge on the Adapter but the photos in the link show them open. i.e. don't alter. Does the screen backlight look normal brightness?

Does the working sketch look correct? i.e. crisp colours. no glare.

David.

Hi David: My first and current efforts are to use the stack just as you have explained above. USB-Mega-Adapt Shield-Display (everything plugged together, no external power supply).

I have attached photos so you can see the actual adapter, etc.

Last night, I disassembled the stack again so I could take the pics. When I reassembled everything (just as it had been, same as the description in the first line as this post), everything appears to be functioning normally. I've loaded the tft display, ur calibration, ur button test. All have not displayed the "white screen" issue. Possibly there was a bad connection at one or more pins in the stack. I gently shake the stack, move it around, gently squeeze the connectors....no issue. The unit has been sitting and running for about 20minutes now.

To answer your questions in the last post:

  1. Does the screen backlight appear normal? Yes. This is true now and also before when I was having the white screen issue.
    2)Does the working sketch look correct? Yes. This is true now. Prior, it would look normally for about 30s and then white screen.

My plan is to leave the unit running on my desk and periodically check for function. If it continues to behave normally, then I'll begin development. Happy to run any other tests or provide any other info you think could be helpful to others later.

As a general rule. Arduino headers are well soldered and reliable. Arduino Shields are well soldered and reliable.

Your display only has a 20x2 set of pins at one end. So it is not as mechanically robust as Arduino+Shield which has several sets of pins that mate securely.

You should find that all the UTFT and URTouch examples work. (Remember to use your constructor)
If you have a problem, quote UTFT example by name.

David.

Update:

While sitting on my desk, the during testing described above, the screen went to white out. This happened after about 30-40min. Powering down and back up, the unit now goes to white out after about 30s again. No changes have been made.

Additional Info:

Last night, I had tested the Mega by itself, running the blink example. It was able to run for an extended time without failing. This seems to indicate that the hardware failure is on the shield or screen.

Hi David:

Yes. All the examples do work while the hardware is cooperating.

I agree on the robustness of the header at the end of the display. While it was running well, I suspected that and wiggled it back and forth to see if I could cause a failure. The wiggling did not cause a failure to my surprise.

Update:

TFT Demo ran for about 4 hrs before white screen. Reboot - currently running, been running for about 30min.
UR Button Demo runs for a shorter time before failure. After reboot - fails in about 30s. Touch screen demo, even when not touched, seems to cause failure sooner and more frequently.

Update:

I had ordered 2 duplicate Screen/Shield/Boards and 1 was lost in shipping. It's replacement arrived today. Without making any changes to the above setup, simply downloading the code to the hardware that arrived, the replacement unit operated without the "white screen" issue. The white screen issue appears to be connected to the original hardware and since the Mega was tested independently, it appears to be connected to the original screen or shield....More to come.

Conclusion:

Two Issues Existed and were solved -

1)David Prentice helped identify the display board and provided the info needed to update the demos to make the software and hardware operate properly in preparation for development. Thank you David. (SEE NOTES ABOVE FOR DETAILS)

2)The display and/or shield of the original unit had a hardware issue that would cause the unit to white screen after a diminishing amount of time after the first run. The replaced unit did not display this issue. The original unit has been returned to the manufacturer.