Solved - Mega 2560 PRO produces white screen tft lcd 3.5inches

I ordered a set of 10 arduino MEGA 2560 PRO through AliExpress to XM on 31 of August and I received them on 13 of September
Supplier is
I tested 2 of 10 and they just produce a WHITE Screen of the tft lcd 3.5inch

. Loading 1 program is OK
. Touch screen reacts when touch the SCREEN : OK
. SD card reader is OK
BUT, the screen remains definitely white

I tested different things :
. MEGA 2560 PRO from another shop WinWin ... Works
. Change of PCB interface between Screen and MEGA 2560 PRO (version no 5 and no 6)
. Change of data bus D2, D3,... to D22, D23,...
And nothing improve that problem

Could you help me?
Thank you very much

You have been a member for over 2 years. Please post links to display and PRO board.

Regular Shields mate with Arduino headers on regular Uno, MEGA2560

Anything with hand-wiring relies on your skill and accuracy.


Hello David :slight_smile:
I am very happy to communicate again with you
I continue to develop my poka yoke and I make few items to promote it…

I bought the TOUCHSCREEN to Hong Kong Feng Tai ltd
Wholesale Product Snapshot Product name is 3.5" Inch TFT Touch Screen Module MEGA 2560 R3 UNO R3 mega2560 board, plug and play

I bought the MEGA-2560-PRO to SZ Aitexm Store
Wholesale Product Snapshot Product name is 10 Pieces Mega 2560 PRO (Embed) CH340G ATmega2560-16AU with male pinheaders Compatible for Mega 2560 PRO

I designed the specific PCB for interfacing MEGA and TOUCHSCREEN. I ordered JLCPCB to produce it

I attach a picture of the assembly

Thank you for your help
Best Regards

Your JPEG works. All the other links fail.

It looks as if you have a pcb that receives a PRO module, DS3231 module and has headers for a Mcufriend Shield.

Current Mcufriend shield pcbs are going to damage 3.3V pin on Mega2560, Uno, …
Does your screen get hot?

I don’t know the PRO design. I can’t access your link.


I check the links to :
* the MEGA-2560-PRO: I think something is wrong with that batch

* the TOUCHSCREEN: TFT LCD 3.5inches, OK wth others MEGA-2560-PRO

* the specific PCB, produced by JLCPCB: i attach the Gerber files

Sorry, but I have forgotten the assembly in the room I use during the week; I will be able to test the temperature, the voltage 3.3V and 5V only next week
I have done my best for soldering, because I know the importance of the weld quality :wink:

Your are right, the PCB receive: the MEGA-2560-PRO, a clock DS3231 and the SCREEN 3.5inches
In addition the connector FFC is used to connect 2 additional boards : RFID + NRF24L, with SPI communication

Thank you for your precious help
Michel (36.8 KB)

The Screen link does not show the pcb. i.e. whether it has an AMS1117 regulator.
You can test the screen by plugging into regular Arduino.

You can test the PRO by putting LEDs on the Arduino header and running a rotating LED sketch.

Quite honestly, Chinese boards are made pretty well. I would expect your PRO to be 100%

Only you can test your hardware. It is important for Quality Control to have diagnostic sketches that test for shorts between adjacent pins, breaks, ...

I have 8 LEDs soldered to male header pins with SIL resistor array. I can plug into Arduino header.

I can't do this for you.


Hello David, Thank you very much for your help 

I am quite sure that the origin of the defect is localized inside the MEGA 2560 PRO

  1. by Design of Experiment, i have tested the Touchscreen, the version of PCB and the MEGA itself
    . with and without Touchscreen – with another item of Touchscreen
    . version 5 and version 6 of the specific PCB
    . MEGA from « XM » and from « WinWin » which are 2 copies of « RobotDyn »
  2. I followed your advice and tested the databus with LED
    I add a picture of the assembly of 8 LED
    I wrote a basic software to test to tun on/off 8 LED

With the combinaison D2, D3, D4, D5, D6, D7, D8, D9 the result is :
>> the pin D4 doesn’t work
With the combinaison 22, 23, 24, 25, 26, 27, 28, 29 all the pins are working :slight_smile:

Fortunatly, I routed the both combinaison of pins, following your previous advice :slight_smile:
D2, D3, … D9 and 22, 23, … 29 are routed on the same specific PCB

But, I don’t know (I don’t remember) how to use the second combinaison 22, 23, … 29
as DATABUS to communicate with the screen :frowning:

Could you still help me ?
Thank you very much

Test-8LED.ino (1.27 KB)

With picture in attachment :slight_smile:

Your sketch should work. Personally, I would put the LEDs’ digital numbers in a loop.

From extras/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

You probably want the USE_MEGA_8BIT_PROTOSHIELD which has control pins on A0-A4 and databus on 22-29


Hello David

I just installed the Arduino 1.8.10 version and kept my librairies Adafruit_GFX, MCUFRIEND_kbv, Touchscreen, LiquidCrystal_I2C, MFRC522, RF24 and ds3231

I tried the USE_SPECIAL



It failed, even by using the other possibilities:

//#define USE_MEGA_8BIT_SHIELD // 4.7sec Mega2560 Shield
//#define USE_MEGA_16BIT_SHIELD // 2.14sec Mega2560 Shield

I used the SOFT : graphictest_kbv
I used a MEGA-2560-PRO which works correctly

Without "USE SPECIAL", the screen works correctly (colors and text)
With "USE SPECIAL", the SCREEN is WHITE :frowning:

Thank you to help me :slight_smile:
Have a good night

Hello David
I tried again my 8 LED assembly and started to run graphictest_kbv
• Screen works with STANDARD <> Screen doesn’t work with any SPECIAL
• The 8 LED blink with STANDARD and also blink with any of the 3 SPECIAL
I don’t know what to test and what to do …
Thank tou for your help

You can verify that any pin "works" by using your LED sketch.
It should reveal open and shorted pins. Shorts are commonly between adjacent pins. You need a more sophisticated program to test every point on a pcb.

You can verify any wiring scheme by editing the #defines in LCD_ID_readreg sketch.
It should match the default shield report when all your defines match your custom wires.

This applies to anyone that intends to hand-wire in a different scheme.


Hello David

Yesterday, for the DATABUS, I clearly identified that the pin :
• 4 doesn’t work – but : 2-3-5-6-7-8-9 are OK
• 24 works
Is there a way to reaffect the DATABUS form 2-3-4-5-6-7-8-9 to 22-23-24-25-26-27-28-29 ?
Is that way electronic or by software ?

Thank You very much

Hello again David
I am sorry to disturb you, but I am not able to implement the backup solution for the databus : the elements you gave me aren't sufficient...
. The PCB links the MEGA-2560-PRO and the SCREEN with the double databus d2...d9 and d22..d29
. I defined "special" and "proto shield" like you asked
But the screen doesn't work :frowning:

I can assure you that it does work. But first of all, you MUST get the spelling correct.

Hello David,

You are absolutely right !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
IT WORKS :slight_smile: :slight_smile: :slight_smile:
I spend more than 9 months with your proposal and till now I didn't manage to make it work
I just made a new try, after reading again your advise :

  • special.h ... USE-MEGA-8BIT-PROTOSHIELD
  • shield.h ... #define USE-SPECIAL
  • databus between MEGA and LCD :
    MEGA 22 ... LCD 8
    MEGA 23 ... LCD 9
    MEGA 24 ... LCD 2 !!!!!!!!!!!
    MEGA 25 ... LCD 3
    MEGA 26 ... LCD 4
    MEGA 27 ... LCD 5
    MEGA 28 ... LCD 6
    MEGA 29 ... LCD 7

The secret was about the shift of the pin numbers :wink:
My last try uses my specific PCB : I still have to test it without any PCB (just to be shure)

Thank you very very much :slight_smile:

I spend more than 9 months with your proposal and till now I didn’t manage to make it work

I understood that you had it working in the past. My apologies.

When two members have a remote conversation, we both have to explain each step. e.g.

Write down each step. However trivial. Number each step. Don’t worry about inserting a new number between 2 and 3. Just go 2, 2.1, 3, …

Yes, it takes you time. But it often means you get a solution in the first reply.

Of course, you need to make it easy for your readers e.g.
clickable links
build-able code that uses libraries available from Library Manager.


IT WORKS !!!!!!!!!!!!!!!!!!!!!!!!!!!!!
THANK YOU :slight_smile: :slight_smile: :slight_smile: