Display doesn't work

Hello!

I have a problem with display and need your help.

I've got display KIT TFT01-5.0 purchased here (click here), shield from eBay (click here) and original Arduino Uno R3 Board. I used two libraries - UTFT and UTouch

When I load a sketch to board, display doesn't show anything - just white screen.

How to fix it? Have I used correct libraries? What should I write to 'myGLCD'?

Waiting for answer :slight_smile:

If you post your sketch, we'll take a look.

KrisKasprzak, done.

// UTFT_Textrotation_Demo (C)2012 Henning Karlsen
// web: http://www.henningkarlsen.com/electronics
//
// This program is a demo of the textrotation-functions.
//
// This demo was made for modules with a screen resolution 
// of 320x240 pixels.
//
// This program requires the UTFT library.
//

#include <UTFT.h>

// Declare which fonts we will be using
extern uint8_t BigFont[];
extern uint8_t SevenSegNumFont[];

// Uncomment the next line for Arduino 2009/Uno
UTFT myGLCD(ITDB50,19,18,17,16);   // Remember to change the model parameter to suit your display module!

// Uncomment the next line for Arduino Mega
//UTFT myGLCD(ITDB32S,38,39,40,41);   // Remember to change the model parameter to suit your display module!

void setup()
{
  myGLCD.InitLCD();
  myGLCD.clrScr();
  myGLCD.setFont(BigFont);
}

void loop()
{
    myGLCD.print("Text rotation", 0, 0);
    myGLCD.setColor(0, 0, 255);
    myGLCD.print("0 degrees", 0, 16, 0);
    myGLCD.print("90 degrees", 319, 0, 90);
    myGLCD.print("180 degrees", 319, 239, 180);
    myGLCD.print("270 degrees", 0, 239, 270);

    myGLCD.setFont(SevenSegNumFont);
    myGLCD.setColor(0, 255, 0);
    myGLCD.print("45", 90, 100, 45);
    myGLCD.print("90", 200, 50, 90);
    myGLCD.print("180", 300, 200, 180);

  while (true) {};
}

BTW, controller is SSD1963QL9.

Hi,

While you are waiting for code checks you may want to verify voltage issues.

I have an Uno shield that looks exactly like yours. The shield feeds 5V on Pin2 ( called Vcc or 3.3V )

If your TFT says Vcc on Pin2 it should be okay.

If your TFT says 3.3V on Pin2 - it may be damaged by the shield (my experience)

The blue potentiometer controls brightness.

It is worth checking voltages just to eliminate that problem.

Best of luck!

cblx5:
Hi,

While you are waiting for code checks you may want to verify voltage issues.

I have an Uno shield that looks exactly like yours. The shield feeds 5V on Pin2 ( called Vcc or 3.3V )

If your TFT says Vcc on Pin2 it should be okay.

If your TFT says 3.3V on Pin2 - it may be damaged by the shield (my experience)

The blue potentiometer controls brightness.

It is worth checking voltages just to eliminate that problem.

Best of luck!

How can I check it? In Arduino IDE or on my board?

I've remembered one fact: When I connected Sainsmart 4.3" Display, it worked without problems... Does it mean, that it was fed voltage okay?

Hi,

You can do it only one way...

You need to use a voltmeter between Pin 1 which is GND and Pin 2 which is labelled 'Vcc' or 3.3V'
see attached.

//// edit
You need to first test the shield while powered but without the TFT plugged in. If the shield has 5V on pin2 and your TFT says 3.3V, you may cause some damage by plugging in. If your TFT says Vcc you should be ok plugging in.

Please note - I already think the Uno shield is delivering 5V which looks like mine. Therefore your TFT SHOULD be labelled Vcc to work

/// end edit

However.... (but do not rely on the following )

'Vcc' usually means 5V and '3.3V' means 3.3V on a TFT.

I tried to zoom in on your 'russian' picture and I think your TFT says 3.3V. Looking from the back, it is second last pin at the bottom left of your TFT. ( Please note my picture is looking from the front like when it is plugged in).

One last thing, if your Sainsmart 4.3 says 'Vcc' on Pin 2 and your Russian one says '3.3V' on Pin 2, one of them will not work with the shield.

So as you say the Sainsmart works, then the Russian one must have the same label on Pin 2. If this is so then you are probably ok and just need correct drivers.

cblx5, thanks for information :slight_smile:

just took this photo on my shield - which is 5 V ( so TFT must say 'Vcc' on pin 2)

attached here....

16 days passed away.

cblx5, I've done an experiment. I've checked shield in 2 boards: Sainsmart and original UNO, connecting there shield.

Original UNO + shield = 5V
Sainsmart + shield = 5V

Also I've got Arduino Due, then I checked here, that Due + shield = 5V.

What does this expemirent mean? Some of 6th topic wasn't incomprehensible for me.


What about code? I tried to fill stroke myGLCD as (TFT01_50,19,18,17,16) - doesn't help. But anyway I should try to choose display's model, if there's no other ways.

Waiting...

Hi,

I did not fully understand your post but I assume you meant when you tested (experimented) your shields all had 5V on the POWER PIN ( I called this Pin 2 in previous post).

I again tried to zoom in on your TFT picture on the Russian website, see attached picture.

I THINK the power pin is labelled 3.3V. If I am correct, your shields must supply 3.3 volts on this pin when you plug it in. Also LED_A pin must supply 3.3 volts.

If you have plugged this TFT into the UNO shield, it might have destroyed your TFT, because 5Volts is too much. I mean you have destroyed the electronics, but the white screen will still work.

If you think your TFT is still working ( and KrisKasprzak said you have a SSD1963 controller )you should be trying one of the following.........

UTFT myGLCD(SSD1963_480,38,39,40,41); // 480x272 Screen on Mega
UTFT myGLCD(SSD1963_800,38,39,40,41); // 800x480 Screen on Mega

UTFT myGLCD(SSD1963_480,25,26,27,28); // 480x272 Screen on Due
UTFT myGLCD(SSD1963_800,25,26,27,28); // 800x480 Screen on Due

I have pasted more examples below and more device IDs from the UTFT library below for example........

TFT01_43
ITDB50
TFT01_50

but do try others

Finally and again, if your TFT does say '3.3V' on the power pin, DONT plug it into your 5V shields. I think you may have already done this, so am sorry to say your TFT might be destroyed.

Also there is a guy called Graham (HL) on this forum who is a real expert, I hope he also comments.

Good luck.

// Set the pins to the correct ones for your development shield
// ------------------------------------------------------------
// Arduino Uno / 2009:
// -------------------
// Standard Arduino Uno/2009 shield            : <display model>,A5,A4,A3,A2
// DisplayModule Arduino Uno TFT shield        : <display model>,A5,A4,A3,A2
//
// Arduino Mega:
// -------------------
// Standard Arduino Mega/Due shield            : <display model>,38,39,40,41
// CTE TFT LCD/SD Shield for Arduino Mega      : <display model>,38,39,40,41
//
// Remember to change the model parameter to suit your display module!
UTFT myGLCD(ITDB43,38,39,40,41);     //  Screen on Mega
//UTFT myGLCD(ITDB43,38,39,40,41);   //  Screen on Mega
//UTFT myGLCD(ITDB43,25,26,27,28);      //  Screen on Due
#define HX8347A 0
#define ILI9327 1
#define SSD1289 2
#define ILI9325C 3
#define ILI9325D_8 4
#define ILI9325D_16 5
#define HX8340B_8 6
#define HX8340B_S 7
#define HX8352A 8
#define ST7735 9
#define PCF8833 10
#define S1D19122 11
#define SSD1963_480 12
#define SSD1963_800 13
#define S6D1121_8 14
#define S6D1121_16 15
#define SSD1289LATCHED 16
//#define NOT_IN_USE 17
//#define NOT_IN_USE 18
#define SSD1289_8 19
#define SSD1963_800ALT 20
#define ILI9481 21
#define ILI9325D_16ALT 22
#define S6D0164 23
#define ST7735S 24
#define ILI9341_S5P 25
#define ILI9341_S4P 26
#define R61581 27
#define ILI9486 28
#define CPLD 29
#define HX8353C 30
#define ST7735_ALT 31

#define ITDB32 0 // HX8347-A (16bit)
#define ITDB32WC 1 // ILI9327  (16bit)
#define TFT01_32W 1 // ILI9327 (16bit)
#define ITDB32S 2 // SSD1289  (16bit)
#define TFT01_32 2 // SSD1289  (16bit)
#define CTE32 2 // SSD1289  (16bit)
#define ITDB24 3 // ILI9325C (8bit)
#define ITDB24D 4 // ILI9325D (8bit)
#define ITDB24DWOT 4 // ILI9325D (8bit)
#define ITDB28 4 // ILI9325D (8bit)
#define TFT01_24_8 4 // ILI9325D (8bit)
#define DMTFT24104      4   // ILI9325D (8bit)
#define DMTFT28103      4   // ILI9325D (8bit)
#define TFT01_24_16 5 // ILI9325D (16bit)
#define ITDB22 6 // HX8340-B (8bit)
#define ITDB22SP 7 // HX8340-B (Serial 4Pin)
#define ITDB32WD 8 // HX8352-A (16bit)
#define TFT01_32WD 8 // HX8352-A (16bit)
#define CTE32W 8 // HX8352-A (16bit)
#define ITDB18SP 9 // ST7735   (Serial 5Pin)
#define LPH9135 10 // PCF8833 (Serial 5Pin)
#define ITDB25H 11 // S1D19122 (16bit)
#define ITDB43 12 // SSD1963 (16bit) 480x272
#define TFT01_43 12 // SSD1963 (16bit) 480x272
#define ITDB50 13 // SSD1963 (16bit) 800x480
#define TFT01_50 13 // SSD1963 (16bit) 800x480
#define CTE50 13 // SSD1963 (16bit) 800x480
#define EHOUSE50 13 // SSD1963 (16bit) 800x480
#define ITDB24E_8 14 // S6D1121 (8bit)
#define TFT01_24R2 14 // S6D1121 (8bit)
#define ITDB24E_16 15 // S6D1121 (16bit)
#define INFINIT32 16 // SSD1289 (Latched 16bit) -- Legacy, will be removed later
#define ELEE32_REVA 16 // SSD1289 (Latched 16bit)
//#define NOT_IN_USE 17 
//#define NOT_IN_USE 18 
#define ELEE32_REVB 19 // SSD1289 (8bit)
#define TFT01_70 20 // SSD1963 (16bit) 800x480 Alternative Init
#define CTE70 20 // SSD1963 (16bit) 800x480 Alternative Init
#define EHOUSE70 20 // SSD1963 (16bit) 800x480 Alternative Init
#define CTE32HR 21 // ILI9481 (16bit)
#define CTE28 22 // ILI9325D (16bit) Alternative Init
#define TFT01_28 22 // ILI9325D (16bit) Alternative Init
#define CTE22 23 // S6D0164 (8bit)
#define TFT01_22 23 // S6D0164 (8bit)
#define DMTFT22102      23  // S6D0164  (8bit)
#define TFT01_18SP 24 // ST7735S  (Serial 5Pin)
#define TFT01_22SP 25 // ILI9341 (Serial 5Pin)
#define TFT01_24SP 25 // ILI9341 (Serial 5Pin)
#define TFT22SHLD 25 // ILI9341 (Serial 5Pin)
#define DMTFT28105      25  // ILI9341  (Serial 5Pin)
#define MI0283QT9 26  // ILI9341 (Serial 4Pin)
#define CTE35IPS 27 // R61581 (16bit)
#define CTE40 28 // ILI9486 (16bit)
#define EHOUSE50CPLD 29 // CPLD (16bit)
#define CTE50CPLD 29 // CPLD (16bit)
#define CTE70CPLD 29 // CPLD (16bit)
#define DMTFT18101      30  // HX8353C  (Serial 5Pin)
#define TFT18SHLD 31 // ST7735 (Serial 5Pin) Alternative Init

cblx5:
Also there is a guy called Graham (HL) on this forum who is a real expert, I hope he also comments.

Whoo hooo, I am an expert :D.

You fairly much covered everything cblx5. If he is using a CTE shield with a DUE, he will need to uncomment the line "#define CTE_DUE_SHIELD 1" in UTFT/hardware/arm/HW_ARM_defines.h .

Regards,

Graham

Hi electroman123 ,

One thing I did not mention is that you can convert a TFT shield from 5 Volts to 3.3 Volt, if it is a good shield !!!!!

If your shield has jumpers like in the picture attached of a CTE Shield (CTE is short for Cold Tears Electronics). You can change voltages on the Power Pin or the LED_A by opening or closing the jumpers.

In the picture JP1 is 'open' and JP2 is 'closed' with a blob of solder. This gives 3.3V on the power pin

If one cleans of the solder on JP2 so it is 'open' and puts a blob of solder on JP1 so it closes then the power pin is 5V.

JP3 and JP4 allow the voltage on LED_A to be changed.

JP5 in this shield is a special PWM pin to additionally control screen brightness.

So the CTE TFT shield can be configured for nearly most types of TFTs.

Good Luck

TFT Shield Jumpers.JPG