ST7735S TFT OLED Display Only Shows White Screen

Setup Summary:

I'm working with an Aguhajsu 128x128 OLED display with the following specs:

  • Driver: ST7735S
  • Resolution: 128x128
  • SPI Interface (8 pins)
  • Power: 3.3V (connected to 5V in my setup; also tried 3.3V without success)
    1.44 inch 128x128 RGB_TFT LCD

Pin Connections:

Code: I'm using the graphicstest.ino example from the Adafruit ST7735 library with the configuration for hardware SPI and an ST7735 display. Here’s the simple version of code:

#include <Adafruit_ST7735.h>
#include <SPI.h>

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

Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);

void setup() {
  Serial.begin(9600);
  Serial.print(F("Hello! ST77xx TFT Test"));
  tft.initR(INITR_GREENTAB); // Init ST7735S chip, green tab
}

void loop() {
  // Test graphics functions
}

Behavior: The display powers on but only shows a white screen, with no visible graphics or text. I've verified all connections and tried different example sketches from the library with the same result.

Voltage Measurements:

  • Pin Voltages:
    • VCC-GND: 5V
    • CS-GND: 5V
    • RESET-GND: 5V
    • A0 (DC)-GND: 5V
    • SDA (SDI/MOSI)-GND: fluctuates between 5V, 2.4V, and -0.46V
    • SCK (SCL)-GND: -0.46V
    • LED (BLK)-GND: 3.3V
  • 662K Voltage Regulator on Display:
    • Right pin to GND: fluctuates between 0.57V and 0.96V
    • Left pin to GND: 5V
      (all this measurements look too suspicious to me )
    • R1 on display : 10.1 ohm
    • C1 on display: 24nF
      Troubleshooting Steps Taken:
  1. Verified wiring multiple times against example setups.
  2. Tried different initializers (e.g., INITR_BLACKTAB, INITR_144GREENTAB) in the code.
  3. Tested with both Arduino 5V and 3.3V for VCC input.
  4. Ran multiple examples from the Adafruit library without any change in output.
  5. Observed and documented voltage fluctuations on specific pins.
  6. Deleted ardunio ide 2.x and librarys and reinstalled.
    Request for Help: Is there a potential hardware issue with my display based on these measurements, or is there an alternate configuration or initializer I should try? Any guidance on further testing, especially with the fluctuating SDA and SCK values, would be appreciated.

Note : If there are any spelling errors or illogical sentences, blame chatgpt. he translated it into english.

init TFT is:

INITR_144GREENTAB

and via resistore -[=]- 1ком, all signal

1 Like


I try this diagram nd chance init section nothing change.

There's a Red wire in Arduino 5V going to TFT LED.
There's a White and a Black wire in Arduino GND - with the Black going to TFT GND and the White to TFT VCC.
Am I seeing that correctly ?

1 Like

VCC - 3.3v
GND - GND
CS - D10
RESET - D9
A0 - D8
SDA - D11 (MOSI)
SCK - D13 (SCK)
LED - 3.3v

1 Like

YES and red(3.3v) to led

Well - that's wrong.

can you explain it why I saw some guide like that. ( Arduino Tutorial: Using the 1.44" Color TFT display (ILI9163C) with Arduino it show the diagram in 1:09

GND should not be going to the display VCC as you, evidently, are doing.

I reassemble wires as it should be result is same.


is there any way to check if screen is broke or something

This is the way to check - it is the test.

Even though VCC is getting 5V, there is a regulator on the display board that makes 3V.
I believe that there should be a level-shifter/s between the Uno and the Display (mosi, miso, A0, Reset).
This may be at odds with various recountings as you may find on the interwebs.

PS - strange how it's labelled "1.44 SPI" but its terminals are named 'sck', 'sda' - which is I2C.

Your youtube guy is using an ILI9163C library

yet your sketch is using ST7735.

I start trying with this liblary then checked seller site and it saying this use ST7735S
Screenshot from 2024-10-28 18-04-45

Maybe you should try the youtube guy's library. How hard is that?

I didn’t see any limiting resistors in 1K in your diagram

Now Muting.

after I try with 1k I remove them then try with 10k nothing change.
reassembly model and test code :

#include <Adafruit_ST7735.h>
#include <SPI.h>

#define TFT_CS     10
#define TFT_RST    9
#define TFT_DC     8
#define TFT_MOSI   11
#define TFT_SCK    13
Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_MOSI, TFT_SCK, TFT_RST);

void setup() {
  Serial.begin(9600);
  Serial.println(F("Hello! ST77xx TFT Test"));

  tft.initR(INITR_144GREENTAB); // Init ST7735S chip, green tab
  tft.fillScreen(ST77XX_BLACK); // Ekranı siyah ile doldur
  delay(1000);

  // Grafik testlerini çalıştır
  testDrawLine();
  delay(1000);
  testDrawRect();
  delay(1000);
  testFillCircle();
  delay(1000);
}

void loop() {
  // Ana döngüde bir şey yapmaya gerek yok
}

// Ekranda farklı renkte çizgiler çizer
void testDrawLine() {
  tft.fillScreen(ST77XX_BLACK);
  for (int16_t x=0; x < tft.width(); x += 6) {
    tft.drawLine(0, 0, x, tft.height() - 1, ST77XX_RED);
  }
  for (int16_t y=0; y < tft.height(); y += 6) {
    tft.drawLine(0, 0, tft.width() - 1, y, ST77XX_YELLOW);
  }
}

// Ekranda farklı renkte dikdörtgenler çizer
void testDrawRect() {
  tft.fillScreen(ST77XX_BLACK);
  for (int16_t x=0; x < tft.width(); x += 6) {
    tft.drawRect(x, x, tft.width() - x * 2, tft.height() - x * 2, ST77XX_GREEN);
  }
}

// Ekranın ortasında dolu daireler çizer
void testFillCircle() {
  tft.fillScreen(ST77XX_BLACK);
  for (int16_t r = 0; r < tft.width()/2; r += 6) {
    tft.fillCircle(tft.width()/2, tft.height()/2, r, ST77XX_BLUE);
  }
}

It's highly likely your display is dead

I'll new one any suggestion 1.44 rgb screen I don't want to deal with like this much again