Mega 2560 7" TFT SSD1963 Wiring

I have a 7" TFT (SSD1963QL9) that I am trying to wire to an Arduino Mega 2560. I have all the logic converters ready but not sure what pins to connect to and from the Arduino and TFT.

I have attached a pic of the pins, it is JP1.

Thanks a heap in advance!

Your post was MOVED to its current location as it is more suitable.

Could you also take a few moments to Learn How To Use The Forum.

Other general help and troubleshooting advice can be found here.
It will help you get the best out of the forum in the future.

Thanks for moving the post. I have done thorough searching but unable to find a suitable answer. Is there more information that you think would be helpful?

Thanks

For parallel mode, you would need

DB0 to DB15 (16 bit mode)
RS
WR
RD
3.3V
GND
maybe REST for LCD reset
not sure what F_CS and CS are for

The SD_xxx are probably for the onboard SD card reader, and the T_xxx are for the touch controller.

You can use the PORTK and PORTF for the 16 bit lines

You buy a Mega2560 Adapter shield like https://www.ebay.co.uk/itm/293021203810 white pcb
or like https://www.ebay.co.uk/itm/273956209111 make sure you select the Mega2560 pcb.

Compare the SSD1963 display pinout with the TFT pinout in the first link. Look for any differences.

If everything is ok you just plug the Shield into your Mega2560 and the Display into the 40-pin Adapter socket.

The Shield contains all the level shifters. SSD1963 libraries like UTFT should work out of the box.

David.

It looks like the shields are the way to go, thank you.

I have one concern, it looks like the 3.3v and 5v pins would come from the Arduino Mega... the TFT says it draws 200mA (3.3v) and 400mA (5v) which is of course far too much for the Arduino pins. I have suitable power supplies ready for the TFT pins so would I have to unsolder the pins that come with the shield and connect my own power supplies or am I missing something here?

Thanks a heap.

I think you will find that these adapters have on-board 3.3V regulators.
You can select suitable voltages with jumpers or solder-bridges.

Likewise, I expect that your SSD1963 board wants 5V for its own on-board regulator and backlight.

USB can supply 500mA at 5V. 7 inch backlights are fairly greedy. I only have 5 inch SSD1963 which is reasonable.

David.

Thank you David. I am in Australia so trying to find one in the country so postage isn't 4 weeks.

Cheers

I thought that China to Australia was pretty quick. It looks all downhill from here.

Actually China to the UK has improved since AliExpress started chargeable delivery.

You can buy common Arduino items from local suppliers with genuine UK stock.
A lot of Ebay sellers say UK but actually do just-in-time from a Chinese warehouse.

If the quoted Ebay delivery time is 3 days it implies UK stock.
If the quoted Ebay delivery time is 7 days it is probably just-in-time from Chinese warehouse.
If the quoted Ebay delivery time is 10-20 days it implies China. And sometimes turns into 20-40 days.

If I want something urgently, it arrives in 15 hours from Farnell.

David.

I got one from China, should be here in 11 days. Will report back with it working or the TFT smoldering.
Thank you for your help again.

I’ve got one of these from BuyDisplay, with a shield for the Mega2560. BuyDisplay say that it can run in 8 bit mode. I’ve changed the two ‘obvious’ places, but that leaves me with an interesting display. Once I’ve sorted it, I’ll come back here with an answer. My aim is to get the display running on a Nano 33 BLE.

I have got one specific SPECIAL to work as 8080-8 interface with MCUFRIEND_kbv. The code is on GitHub
However this is for a CTE Due Adapter Shield.

I don't have a Mega2560 Adapter Shield. But it should be simple enough. Both USE_MEGA_8BIT_SHIELD and USE_MEGA_8BIT_PORTC_SHIELD specials should work out of the box.

Likewise, the regular NANO_33BLE "shield" wiring that should work by default. You will need the updated MCUFRIEND_kbv.cpp from GitHub.

Note that the Library Manager only installs "Releases".

Please let me know how you get on. At least you have chosen a Target board with proper 3.3V logic.

David.

David,

Thanks - I hope to have time this weekend to have a go.

Ian Brown

Hey @david_prentice
I finally received my shield, took a long time. I have it working using the UTFT master demo (800x480). It seems to work well except the text is backwards (see pic)... would this mean I have the wires backwards? I don't see how that could be.

I can get the TFT to work sucessfully using the UTFT master library and the UTFT_Demo_800x480 example.

In the GUIslice_config.h file I have uncommented out the line: #include "../configs/ard-shld-eastrising_50_ssd1963_res.h" (the pin numbers are correct) but now my program won't compile. I have attached the errors below:

Arduino: 1.8.15 (Windows Store 1.8.49.0) (Windows 10), Board: "Arduino Mega or Mega 2560, ATmega2560 (Mega 2560)"

C:\Users\User\Documents\Arduino\libraries\GUIslice\src\GUIslice_drv_utft.cpp: In function 'const char* gslc_DrvGetNameTouch(gslc_tsGui*)':

C:\Users\User\Documents\Arduino\libraries\GUIslice\src\GUIslice_drv_utft.cpp:178:10: error: 'm_acDrvTouch' was not declared in this scope

   return m_acDrvTouch;

          ^~~~~~~~~~~~

C:\Users\User\Documents\Arduino\libraries\GUIslice\src\GUIslice_drv_utft.cpp:178:10: note: suggested alternative: 'm_acDrvDisp'

   return m_acDrvTouch;

          ^~~~~~~~~~~~

          m_acDrvDisp

Multiple libraries were found for "UTFT.h"

 Used: C:\Users\User\Documents\Arduino\libraries\UTFT

 Not used: C:\Users\User\Documents\Arduino\libraries\utft-master

exit status 1

Error compiling for board Arduino Mega or Mega 2560.



This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

First off. Post a link to your actual display and the actual Adapter Shield that you have bought.
Quote Arduino board by name e.g. Due, Mega2560, ...

Install libraries via the IDE Library Manager
Run all the examples that come with the library.

Unfortunately the UTFT author is very strong minded. He will not cooperate with the Manager.
You have to download and install manually. With all the associated risks and pitfalls.

Please post a link to where you found UTFT.

Then quote example by name.
Paste the constructor statement to your message.

You will get a solution from Forum readers.

Your display is clearly WRONG.

David.

Hey @david_prentice thanks again.

The shield I bought is TFT/SD Shield Expansion Board For MEGA 2560 LCD Module SD Card 2.8 3.2 Inch Sale - Banggood Australia

The TFT I bought is 7" 7.0" Inch TFT LCD Display 800x480 SSD1963 Touch Panel Screen PWM LED Backlight Controller Module For 51/AVR/STM32|3D Printer Parts & Accessories| - AliExpress

I have an Arduino Mega 2560 (ATMega2560).

I have installed all libraries via the IDE manager apart from the UTFT library which I got from UTFT - Rinky-Dink Electronics

The example that works for me is "UTFT_Demo_800x480" from the above library. The example "UTFT_ViewFont" also works. In both examples the text is backwards (mirrored).

I should also mention I am using GUIslice and want my GUI from that to work.

Thanks for the help.

+3 for the links.
-1 for the missing constructor !!

From C:\Users\David Prentice\Documents\Arduino\libraries\UTFT\examples\Arduino (AVR)\UTFT_Demo_800x480\UTFT_Demo_800x480.ino

// Remember to change the model parameter to suit your display module!
UTFT myGLCD(ITDB50,38,39,40,41);

You should use the appropriate constructor e.g.

UTFT myGLCD(CTE70,38,39,40,41);

From C:\Users\David Prentice\Documents\Arduino\libraries\UTFT\UTFT.h

#define SSD1963_480		12
#define SSD1963_800		13
...
#define	SSD1963_800ALT	20
...
#define ITDB43			12	// SSD1963	(16bit) 480x272
#define ITDB50			13	// SSD1963	(16bit) 800x480
#define CTE50			13	// SSD1963	(16bit) 800x480
#define EHOUSE50		13	// SSD1963	(16bit) 800x480
...
#define CTE70			20	// SSD1963	(16bit) 800x480 Alternative Init
#define EHOUSE70		20	// SSD1963	(16bit) 800x480 Alternative Init

For some reason Mr Karlsen prefers to use gobbledygook "model names" which is fine if you have bought your screen from one of his preferred suppliers e.g. ColdTears.

Personally I am happier with a Controller name like SSD1963_800_7 but this is not my library.

Please paste your constructor statement.
Mirroring, wrong colours, wrong direction, ... are easy for me to fix. But only when I know which constructor you are using.

Panels vary. Which is why you can configure controllers to suit different colours, directions etc.

Forget about GUISlice until you have your screen working correctly.

David.

1 Like

Hi @david_prentice
I changed
UTFT myGLCD(ITDB50,38,39,40,41);
to
UTFT myGLCD(CTE70,38,39,40,41);
as suggested and the TFT now displays that test the correct way.

The constructor I am using in the TFT is (now) UTFT myGLCD(CTE70,38,39,40,41);

I am having trouble actually finding what the constructor is in my program that I am trying to use GUIslice in...

David,

Thanks for your help. However…..no luck so far. I’ve stepped away from my laptop for a while so can’t append the outputs from your diagnostic sketches.

For clarity

  • Mega 2560
  • 7"Arduino Touch Screen Shield w/SSD1963,Library for Mega/Due (ER-TFTM070-4V2.1-4124-3403-3433)
  • I’m using the shield, I’m not plugging the screen directly into the Mega.
  • Using the master branch of MCUFriend on GitHub

Nothing is displayed and the backlight stays off. The screen is working, if I use the UTFT library supplied with the screen then it works in 16bit mode.

I’ve noticed that some of the parameters used in the startup commands differed. Swapping the UTFT parameters didn’t solve it. So, I’m using copious Serial.print/println commands to see what’s different. There’s got to be something: if the same commands and data were being sent, I’d expect the display to show stuff.

I’ll let you know what I find when I next get to spend some time on it. My plan is to get both the UTFT code and your MCUFriend code to churn out everything written to/read from the shield. Then, compare/contrast.

As discussed, my aim is to get this screen working on the Arduino Nano 33 BLE, and so in 8bit mode. However, one step at a time. I want to get it working with MCUFriend first, then 8 bit mode on the Mega, then finally over to the Nano 33 BLE. Change one thing at a time - make it easier to track down problems.

I’ve forked the GitHub repo, once this all works I’ll submit a PR. Then, feel free to mock my code or merge it in, as appropriate.

Ian