7" TFT LCD SSD1963 Screen Not Working With Mega 2560 and Due

I have a 7" (SSD1963) TFT LCD available on Aliexpress:

And with that bought the white Mega Shield V2.2 (I’m aware of it’s 5V output at 3.3V problem, and never plugged in this shield directly as is):

I bended the LCD 3.3V pin, 5V pin, and the ground pin to provide external 5V supply and ground.
I soldered a jumper at the shield’s pinheader which connected to Arduino’s 3.3V so that the 3.3V pin on LCD is given a separate 3.3V. This was done because, after lurking over the forum posts, I realized that the shield gave 5V for this particular pin (I never supplied 5V to that pin).

Then, I connected the shield onto Mega 2560.
I used the example sketch of UTFT library for 800x480 display. But it only gave a white screen. I tried the following initializations:
UTFT myGLCD(SSD1963_800,38,39,40,41);
UTFT myGLCD(SSD1963_800ALT,38,39,40,41);
UTFT myGLCD(ITDB50,38,39,40,41);

Since nothing was working, I tried all of the combo available for ssd1963, but there was only white screen with every code.

Then I thought there maybe some issue with the shield, so I borrowed an Arduino Due and connected the pins in order to match the ITDB02 shield connection (the shield seems to be working with Arduino Mega this video: Arduino Mega HMI touch screen "7 inch TFT LCD" based Load controlling and display Seconds "Basics" - YouTube)
But even then, after trying the above initializations in the code, the TFT was showing the white screen!

It turns out that the white screen (Mega V2.2) also has the same pinouts as the ITDB02 shield, except for the 5V instead of 3.3V for that one pin, as discussed above. The pinouts for the white and blue shields (ITDB02), are attached, as well as a connection table. A picture of the circuit is also attached.

What could be the problem?

circuit picture close.pdf (114 KB)

circuit picture closeup.pdf (104 KB)

circuit picture.pdf (254 KB)

ITDB02 Connection.pdf (34.6 KB)

ITDB02 Datasheet.pdf (275 KB)

ITDB02 Schematic.pdf (57.6 KB)

Mega V2.0 Schematic.pdf (23.8 KB)

Mega V2.2 White front.pdf (581 KB)

pinout table.pdf (137 KB)

I suggest that you plug the Adapter shield into the MEGA2560. Then measure the voltages on the 40-pin socket. i.e. to compare with the documented screen requirements for 3.3V and 5V.

And with your DMM, draw a schematic for the V2.2 Adapter. You can find the V2.0 Adapter schematic on the Internet. So it is simply a question of checking for differences.

Only you can read the pinout of the 40-pin screen. Only you can know what your pinout_table.pdf is supposed to mean.

I would expect the backlight to take a "high" current from the 5V pin. Make sure that you limit it to 300-400mA with a series resistor e.g. 2R2 - 4R7 The controller will only take a moderate current from the 3.3V pin.

It looks as if the Shield has a LDO regulator at the bottom left. It probably takes 5V from Arduino and outputs 3.3V for the screen. Since there is no schematic and no documentation for your V2.2 Adapter you have to diagnose for yourself.


Okay, I should have been a bit clearer regarding the shield. I've tested the shield by giving HIGH to different pins and measuring the voltages. It turns out that it gives 3.3V to all of the pins of the LCD except for LCD's 5V pin and 3.3V pin. It seems like the shield is exactly the same as Elecfreaks V2.0, I can't figure out what's different. Anyways, I'm more concerned as to why it's not working with Arduino Due.

That mysterious "pinout_table.pdf" has to do with Arduino Due connections. I was looking around and found that picture on the forums, and connected the screen based on those connections. Both ITDB02 and V2.0's schematic have the same pinouts as that connection of pinout_table.pdf, so I suppose these should work well on a Due. But nothing is happening except for white screen.

I tried adding a POT for 5v pin on the lcd, but after varying it, it would turn off the backlight suddenly. Even with the resistance added, the screen was white.

Is there anyway to check the LCD? I mean besides the backlight nothing is working so it might be an issue with the LCD itself. Shouldn't the LCD work on Due with the same pinouts as Mega?

Thanks for your reply, btw!

[Edit:] P.S. The LCD is connected to Due via arduino jumpers pins, as seen on "circuit picture.pdf" and "circuit picture closeup.pdf".

If the Adapter Shield produces the correct voltages and correct logic signals for the 40-pin display, it should all work fine.

I would check currents as well as voltages. A 7 inch display backlight is going to take as much current as your PC is willing to provide from an USB port.

I would expect the UTFT model=SSD1963_800ALT to work for the 7.0 inch screen but since I only have a 5.0 inch I can't test it.

Yes, a "Mega Shield" will work on a Due. i.e, data bus on digital #22-37 (which are random Port pins on a Due) But you would normally use a CTE or EHOUSE Due Adapter Shield and configure UTFT accordingly. (and the data bus is efficiently mapped to Due Ports)


The LCD is connected to Due without the shield, using Arduino jumper wires (based on the connection mentioned in the pinout_table.pdf -- which emulates the ITDB02 and Mega V2.2 shield).

The backlight is drawing ~370mA from the external supply (bypassing the Arduino altogether -- with common ground). The 3.3V pin of the Due is supplying ~220mA.

I've tried ITDB50, SSD1963_800, SSD1963_800ALT, and CTE70 in the code. None of them work.

Can this be a problem with the LCD itself? If so, how can I check it?

Personally, I have a 5.0 inch 40-pin SSD1963 screen like your 7.0 inch.

I use a 40-pin Due Adapter Shield with a Due clone. Either UTFT model=SSD1963_800 Or MCUFRIEND_kbv with a similar initialisation.

I generally run it with a BluePill soldered to Protoboard with 40-pin socket for screen.

My screen works fine. Everything is powered by the USB cable.

I would guess that there are a lot of UTFT users and SSD1963 7.0 inch owners. Perhaps they can tell you about their experience.

I would be very wary of Dupont jumper wires. There are just too many wires and any single wire with a loose or intermittent connection is going to be fatal.

If you are too tight to buy a Due Adapter Shield, make you own one with a Protoshield and soldered routeing wires. All the same, I am sure that many readers use a Mega Adapter Shield with Mega2560 or with a Due. I only have a Due Adapter Shield.


So I went to the electronic shop and, after a lot of convincing, got him to test another 7" display. To my surprise, the display responded to the program and the same connections as I had made with my LCD (with due + arduino jumper wires), but it still wasn't how it was supposed to be. I mean, there was no white screen this time, but the problem was that the output didn't seem proper. It was as if there were garbage pixels, here and there, and some sort of "animation" was being run at one portion of the screen, and that too not in a proper way, meaning that some rudimentary form of animation was being run, and on top there were additional fixed colored lines, etc. I was running the demo animation from the UTFT library with SSD1963_800ALT.

Now, I'm not sure whether it was due to the LCD being bad or that I did not initialize the correct parameters. The guy won't let me test it further, and I have no way of knowing whether there's a fault with the LCD or not. What I do know, however, is that my own LCD is faulty, as it's only showing white screen and nothing else. The only way to test whether the he has a running LCD or not is to buy it, and I can't afford to buy another faulty LCD for my project.

But I was wondering whether you've faced this problem of weird output being displayed (as in some movement which looks like animation being played at the background of one portion of the screen, white the rest of the screen has garbage pixels here and there). Is it due to bad hardware or wrong initialization?

I was also wondering whether I could ditch the LCD all together and opt for running my program through Laptop's GUI. Is there a good GUI interface through Laptop? I've seen some videos where they use processing, but I'm not sure whether I would be able to draw complex drawings on it as opposed to rectangular buttons (it looked restricted).

I am impressed that you have Electronics Shops that you can walk into !!

I presume that the shopkeeper plugged the 40-pin screen into a 40-pin Adapter Shield. And ran UTFT examples on a Due or Mega2560.

If the shopkeeper's LCD did not work properly, there is something wrong with her display or Adapter.

If the shopkeeper used flying wires, I would not expect anything to work reliably.

If the shopkeeper worked 100%, you take your display into the shop. Plug it into the shop Adapter Shield. If it does not work, you have a bad display.


Well, the shopkeeper has no clue of how to use the LCD. He just orders stuff from China and sells them without any warranties. He only has the white v2.2 shield, so I couldn't use that as it gives 5V at 3.3V pin.

I was the one who connected the display with arduino jumper wires, and voila, it turned on, but with problems as I mentioned before.

Just to be sure: if I have the wrong parameters in the code, will it show white screen or gibberish animation?

The schematic that I find for V2.0 Adapter has five 74C541PW buffer chips but no mention of any regulator. It has U4 VCC=5V and U5, U6, U7, U8 VCC=3.3V. Pin #2 on CONN254_2X20 supplies 5V. Pin #18 is NC

It is your job to create/correct a schematic for the V2.2 on your desk.

I suspect that your V2.2 pcb contains a 3.3V regulator. It should be pretty easy to route 3.3V to pin#2 and 5V to pin#18 if that is what your 40-pin screen requires.

I suspect that the screen has got its own regulators. The screen is on your desk. You can create a schematic from following the pcb tracks.