I have tried following the examples and double checked pin assignments and I am able to compile to the due but ALL I get is white screen, have tried other libraries and get nothing but white screen.
I wont list all the libraries, all I would like is hopefully from someone who has made this combo work it to have it display "hello world", I can then modify and build from there
(I have successfully used OLED with an UNO and I have had the DUE working with 2 line LCD screen)
First off. Can you confirm that the pcb looks like the picture in your link. i.e. U1-U5 mounted. empty U6.
But actually C1, R2, R3, R1, R4 mounted. empty R5.
Please confirm whether you have a soldering iron and feel confident to remove R4 and mount R5.
Don't worry. I can get you working even if you can't solder.
There is no point in using 8-bit interface because the 16-bit header pins are always engaged.
Please move 0R from R4 to R5. Don't worry if you lose the 0R. Solder a plain wire across the pads.
Plug the Shield into the Due as Nature intended.
Install MCUFRIEND_kbv and Adafruit_GFX via IDE Library Manager.
Follow instructions in mcufriend_how_to.txt
17. If you do not have a standard Uno Shield, you can add a SPECIAL to the mcufriend_special.h
Edit mcufriend_shield.h: #define USE_SPECIAL
Edit mcufriend_special.h: e.g. #define USE_MEGA_16BIT_SHIELD
If your "special" is write-only, the library can not read the ID. It always returns 0xD3D3
Since your shield is write-only you must always "force" the ID e.g. in setup()
uint16_t ID = tft.readID();
if (ID == 0xD3D3) ID = 0x9488; // write-only shield
tft.begin(ID);
Please report back.
David.
p.s. write notes on paper. then you can report each numbered step that you took in your "problem" message.
it takes a few minutes but ensures that you get accurate replies.
Move R0 from R4 to R5 (quick continuity test indicates its soldered correctly)
Adafruit GFX - 1.10.13 uninstalled and re-installed clean
MCUFRIEND_kbv 2.9.9 uninstalled and re-installed clean
MCUFRIEND_kbv\utility\mcufriend_special.h (tried each one separately [not together]) #define USE_DUE_16BIT_SHIELD //RD on PA15 (D24) #define USE_MEGA_16BIT_SHIELD // 2.14sec Mega2560 Shield
MCUFRIEND_kbv\MCUFRIEND_kbv.cpp (9488 is defined to work) #define SUPPORT_9488_555 //costs +230 bytes, 0.03s / 0.19s
MCUFRIEND_kbv\examples\testcard_kbv
if (ID == 0xD3D3) ID = 0x9488; // write-only shield
Serial Output:
TFT ID = 0xD3D3 <-read ID
TFT ID = 0x9488 <-forced ID
My apologies. I was waiting for a "new message" from you to say you had linked to a video.
This Forum software does not report edits.
Anyway, your video shows an 8-bit interface being driven by a 16-bit library. Hence all the "unusual pixels".
Your photo in #2 shows R4=0R i.e. 8-bit interface
Your photo in #7 shows R5=0R i.e. 16-bit interface.
I note that your pcb has no printed info about R4 and R5.
I also note that the copper traces are different on my ST7796 shield but the components are identical i,e, U1-U5
So it is possible that R5 and R4 do not work properly. i.e. the pcb layout is wrong. (you did say that your shield was cheap)
Are you sure that R4 is vacant and R5 is soldered ok in #7 ?
Both 8-bit and 16bit interface work in v2.9.9 for Mega2560
But only 16-bit interface works for Due.
If your Shield is "8bit-only" you would need to install the current Beta from GitHub to work on your Due.
e.g. from ZIP (or as a regular Master Branch if you are a GitHub member)
And you enable USE_MEGA_8BIT_PORTC_SHIELD and USE_SPECIAL
I am intrigued. R4 and R5 simply configure IM0 pin high for 8bit and low for 16bit. So you can test the pcb "integrity" by removing both R4 and R5. Test pads with a DMM. i.e. R5 pad should be 0V. R4 pad should be 3.3V
When you mount the appropriate 0R the common pad is either 3.3V or 0V.