Problems with 2,4'' TFT SPI Display after soldering

Hello everyone!
I have a very frustraiting problem with my 2,4'' TFT SPI 240x320 display (ST7789 based, if it matters)
Long story short - I connected everything on my breadboard, and it was working fine, so i began the soldering. I have some experience with arduino, and i know how much problems can poor soldering cause, so i was very carefull - making sure there is no shorts, cleaning everything with isopropyl and checking connections every step, with my multimeter.
After i was done and connected soldered device to arduino, it was also working fine, but after 20mins or so, the screen of display just went white.
The day after i tried again, and it worked! But also only for some time.

I tried to change Arduino itself to a new one, but problem remain.

So i started to invistigate connections, and found some confusing results. (When i say that there is a "connection" i mean that my multimeter giving me a beeb, when i touch different pins with it)
When power is OFF, all connections are working as expected. But when i give power ON, my GND and 5V or 3.3V pins on arduino itself are connected. Which should mean the shortcut. But when i drop the power, connection dissaper!

Other confusing result - when power is OFF, GND pin on LCD and on arduino are connected. But when power ON, this connection is lost.

And final too mention - some of pins, used in TFT display (in my case there are CS - pin 10, RESET - pin 8, DC - pin 9, MOSI - pin 11, SCK - pin 13, MISO - pin 12. All for Arduino UNO) are also connected to GND of arduino, when power is ON.

And after i found the problem pattern. When my screen goes white, there is no connection for LED pin on screen (LED pin connected to 3.3V, the same as VCC). After i turn OFF the power, connection also not there. Only after some of touching it with multimeter, connection is restored (how - no idea), and when i connect everything together again - it is working! But only for a few seconds. And after this LED pin connection lost again.

So, my questions are:

  1. How it can be, that connections in scheme behave itself differently, depending on power supply?
  2. How can it be, that my LED pin loosing its connection, and after not working for a while - gains it again?
  3. What can my problem be, considering that device was working in first.

I also give you a photo of my soldering, as well as a test code i use, even tho im sure it is not a software problem.

Thanks in advance, dear community, i hope i learn something new with you!

#include <Adafruit_GFX.h>

#include <Adafruit_ST7789.h>

#include <SPI.h>


#define TFT_CS 10
#define TFT_DC 9
#define TFT_RST 8

Adafruit_ST7789 tft = Adafruit_ST7789(TFT_CS, TFT_DC, TFT_RST); //CS - 10, RESET - 8, DC - 9, MOSI - 11, SCK - 13, LED - //, MISO - 12.




void setup() {
  // put your setup code here, to run once:
  tft.init(240, 320);

  tft.setRotation(3);


  tft.invertDisplay(false);

  tft.fillScreen(ST77XX_CYAN);
  delay(2000);
  tft.fillScreen(ST77XX_YELLOW);
  delay(2000);
  tft.fillScreen(ST77XX_GREEN);


}

void loop() {
  // put your main code here, to run repeatedly:



}


Are you checking for continuity when the power is on (the beep on your multimeter)

Because that should only be check if power is off.

You should be checking for voltage levels when power is on.

Your screen works with 3.3V logic, your arduino works with 5V logic, for that reason communication between both devices is not sustained. You must convert the signal from the 5V pins into a 3.3V logical signal, so that the communication between the two is coherent.

You can achieve this by installing a resistive voltage divider on the MISO, MOSI, SCK, DC and RESET lines. The backlight power can go to 5V without problems.

You can also achieve this using a CD4050BE, or some bidirectional 5V to 3.3V converter module with a minimum of 6 channels.

Let's hope that something hasn't happened to your screen by connecting it directly to SPI lines that work with 5V logic. Cross our fingers...

As seen at a photo, i do use voltage deviders, so all logical gates of Screen are recieving 3.3V.
I also checked it with multimeter before connectiong to Screen.

Yes, i've been cheking continuity with power ON. Is it bad? Can it damage anything?

Ah I see it now. The resistors were a bit camouflaged against the green board.

Thank you for taking photos of your project. I'm finding it difficult to see the layout of the top side of the board. Would you be able to take a straight-on photo?

Even better, could you draw a circuit diagram? Nothing fancy, even a rough pencil and paper version would be very helpful.

Damage? Potentially. Continuity test can theoretically cause damage to delicate parts, even if the circuit is off (or so I am told).

My guess? No damage, but all your test results are invalid.

^ this.

First, with the circuit off, check continuity between ground at the Arduino, and ground at the TFT (only because I am suspicious).

After that, power the circuit on, set multimeter to DC Voltage, connect your negative probe to ground, and carefully start measuring points with the positive probe, hunting for clues.

Don't accidentally bridge two points with one positive probe. Been there, done that..

Don't have your probes in the wrong multimeter socket. I haven't made that mistake, yet..

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.