Thank you for your guidance here David, and all the related MCUFRIEND work over on GutHub, much appreciated!
Hello!
I´m having the white screen problem with my TFT Touch screen too... ![]()
I´ve tried to solve the problem like you said but i can´t!
This is the link of the product!
Thanks for the link. It shows a red shield with yellow header pins and an AMS1117 regulator U1. The text says that it has an ILI9341 controller.
Please confirm whether the photos of the pcb are accurate.
Please confirm the ID that is reported on the Serial Terminal e.g. from graphictest_kbv or diagnose_TFT_support
Follow the instructions in #18
Make notes on paper.
Please type from paper notes to your message.
Please copy-paste any messages from the Serial Terminal. (Click on the Terminal Screen. Press ctl-A ctl-C to copy. Press ctl-V to paste to your message.)
David.
I have the product in front of me and it is the same but this my first time ever using an Arduino.... ![]()
I´ve followed the instructions but the controller ILI9341 doesn´t even appear on the document...
Comparing the pcb photos there are some differences...
You do not need to understand technical things.
Just describe the difference(s) between the pcb and the photos on the link e.g.
- colour of header pins. Yellow or Black?
- presence of regulator U1. Yes or No?
Do you know how to run the Serial Terminal? Click the icon at the top-right of your Sketch window. Set to 9600 baud.
Do you know how to install Libraries?
Everyone has to start with Arduino. There are a lot of things to learn. Many are intuitive if you are familiar with a PC.
If English is not your first language, use Google to translate.
David.
1- The header pins are yellow
2 - Yes
the only difference is that there are not those two small components called C1 and C2 (as you can see in the link photo) and the other "components" are in slightly diffrent positions...
I don´t think so...
i can´t find the option to change that to 9600 baud. ( i´m using IDE on Windows).
Yes i think so but it´s better if you tell me the right way to install them so i can confirm please.
thanks for all the help you´re providing!
it´s already in 9600 baud
Make sure that you install/upgrade MCUFRIEND_kbv, Adafruit_GFX, TouchScreen libraries from the IDE Library Manager.
Sketch->Include Library->Manage Libraries... (works with all IDEs)
Then search for "kbv" or "GFX" to find the library. Click on [Upgrade] or [Install]
The current IDE v1.8.9 can reach the Library Manager via Tools->Library Manager
Regarding Serial Terminal:
- did you see any text ?
- have you tried to copy-paste ?
David.
ok the libraries are ready and I downloaded the touch screen library from the internet and then I used the function: add zip library.
When I ran the diagnostic_TFT_suport and opened the Terminal Serial appeared this:
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.8
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
Please do not install from ZIP. The Library Manager is much better. I found Adafruit Touchscreen from the Library Manager. It will install with a click from the Manager. (you do not need to visit Github)
You can run the LCD_ID_readreg sketch. I might be able to help.
David.
Is that library compatible with my non Adafruit tft shield?
ok i´ll do it
This is what i got from the 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) 00 00 00 00 00 Status Register
reg(0x000A) 00 00 Get Power Mode
reg(0x000C) 00 00 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) 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
That looks BROKEN to me.
You can try forcing the ID e.g. edit setup() function in graphictest_kbv.ino
void setup(void) {
Serial.begin(9600);
uint32_t when = millis();
// while (!Serial) ; //hangs a Leonardo until you connect a Serial
if (!Serial) delay(5000); //allow some time for Leonardo
Serial.println("Serial took " + String((millis() - when)) + "ms to start");
// tft.reset(); //hardware reset
uint16_t ID = tft.readID(); //
Serial.print("ID = 0x");
Serial.println(ID, HEX);
if (ID == 0xD3D3) ID = 0x9481; // write-only shield
// ID = 0x9329; // force ID
tft.begin(ID);
}
change the "force ID" line to 0x9320 or 0x9329 e.g.
ID = 0x9329; // force ID
David.
Do I need to execute that code?
i´ve executed the graphictest_kbv and the result in the Serial Terminal was:
Serial took 0ms to start
ID = 0x0
(i´m using the COM8 door)
Is it possible that i´m doing something wrong?
You have "graphictest_kbv.ino" in your IDE "edit window"
Find the setup() function. It is near line #85.
You just need to delete the two slash characters // at the left of line #96
Then click the [Upload] icon (second from left)
It will still report ID = 0x0 to the Serial Terminal.
But the TFT might work with ID=0x9320 or with ID=0x9329
David.
I can´t seem to find that on the edit window....
Use ctl-F to search for "force" or "setup"
While running the graphictest.kbv?