7" tft to mega


I have a 7" tft with SSD1963 chip, see ScreenBack.jpg, and would like to get it working on a Mega. I found a post that gives a connecting diagram, see diagram.jpg, but not all names of pins correspond to the diagram. More specific my screen has pins like LED_A, T_DIN, T_CS, T_CLK, etc, see Connector.jpg

I understand the 5V pin is for backlight, but when I apply 5V to that pin from an external source, and ground to ground of course, there is no backlight. I suppose that has to do with a jumper that I need to solder, see backlight.jpg.

My questions are:

  1. How to wire this screen (directly) to the Mega?

  2. Can this screen work with the MCUfriend_kbv library from David Prentice? This because I have my project currently running with a mcufriend 3.5" screen, that works very well with Prentice’s library, and I would be happy if I would not need to rewrite the entire code to correspond to another library.

  3. If yes, how do I initialize the screen in the code?
    If no, what library to use, and how to initialize the screen in the code?

  4. How do I get the backlight working with PWM? I suppose I apply 5V to the 5V pin, ground to ground, but where to apply the PWM signal? And how to solder the jumpers as on backlight.jpg?

If anyone could help, that would be very much appreciated.


ER-TFTM050-2_Arduino_Interfacing.pdf (72.5 KB)

You MUST use level shifters. There are several 40-pin Adapter Shields for Mega. Buy an Adapter.
Check your pinout with the Adapter doc before buying.

Your screen + Adapter will work with UTFT.
Your screen + Adapter will work with MCUFRIEND_kbv. (enable the SPECIAL)


Thanks David, for your quick reply.

I do have an adapter, see attachments, but the first thing I checked was the 3.3V pin, and yes, it gives 5V. So I do not dare to use it, no idea what the other pins might do.

It has a ASM1117 and 5 HCS41 on it. And no documentation of course.

Any insights on the backlight, I suppose that has to do with that 5V pin and the jumpers. Should I isolate the pin from the adapter? And what about the other pins?

Do I understand well that an Arduino Due does not need any adapter, since it is 3.3V?

Thanks in advance for any reply,

It is easy enough to measure the voltages on pin #3, #18, #20 of the Adapter before connecting the TFT.

You can probably find a schematic for v2.0 or a similar adapter.

I suspect that your EastRising display has a different 40-pin to the regular Ebay 40-pin.
In which case you buy an Adapter from EastRising / BuyDisplay.


Can I do without a shield if I use a Due?
I want to make a frame and use the screen on the wall in my living, so I try to avoid the bulky thing you get when using a shield.

An Adapter shield makes a three layer sandwich. No one makes SSD1963 Shields but if they did you would have a two layer sandwich.

You do not need level shiters with the Due.
However you connect the 40-pin it requires trailing wires or an adapter pcb.


Thanks so far.
And can anyone shed some light on post 1 question 4 about the backlight?

Your TFT has the "common" 40-pin pinout. Except for pin#19 which says 3.3V
The "common" Adapters e.g. Elecfreaks have 5V on pin#19

The TFT pcb has "links" for PWM. You move the 0R resistor to your selection.

Only you can investigate your TFT pcb. i.e. see where pin#19 goes.
Only you can investigate your Adapter pcb. I have schematic for ElecFreaks V2.0. I suspect that V2.2 will be similar.

Why do you want PWM on the backlight?
If you select LED_A or 1963_PWM it implies that a logic signal can control the LED current. So there must be a transistor to switch the high LED current.

In practice a 7 inch TFT takes a lot of current. So you are unlikely to use a battery.
So there is nothing to be gained from switching LED on, off, PWM


I am back again. Backlight is working, 5V to 5V and Led_A, and ground to ground. I suppose connecting PWM to LED_A will control the brightness of the backlight, I still need to try that.

David, you mention I should use a SPECIAL with your MCUfriend_kbv library. Can you explain how to do that? I know about coding, yet not about register addressing or adapting libraries.

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

Since it can't read the ID, you must force the ID e.g. tft.begin(0x1963);