eBay ST7735 1.77" 160x128 LCD showing stripes


I connected my new LCD according to the following instructions:

The only thing I did different is to connect the backlight pin 8 on the LCD to PWM pin 3 on the Uno, of course with a voltage divider to step it down to about 3.3v, for regulating the backlight in the future. For now I hardcoded max brightness.

The result is as above: there are streaks on the media buttons and the black background I placed the white "Hello World!" text on looks pretty grey.

At first I thought it's a defective LCD so I exchanged that but unfortunately the new LCD does exactly the same.

I tried changing the
tft.initR(INITR_BLACKTAB);
line to other tabs but it just worsened it. I also tried adding 1k resistors to the data lines one by one and nothing changed except when I did the RES pin, after which the image was at first a lot clearer but it flickers and then goes to stripes much like the first picture above.

What else can I try?

Below is my code:

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


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

#define TFT_SCLK 13   
#define TFT_MOSI 11   

#define LCD_BL 3

//Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS,  TFT_DC, TFT_RST);
Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_MOSI, TFT_SCLK, TFT_RST);






void setup(void) {

  tft.initR(INITR_BLACKTAB);
  //tft.setRotation(1);

  pinMode(LCD_BL, OUTPUT);
  analogWrite(LCD_BL, 255);

}

void loop() {

  helloworld();
  delay(500);
  
  mediabuttons();
  delay(500);

}

void helloworld() {

  tft.fillScreen(ST7735_BLACK); 
  tft.setTextColor(ST7735_WHITE);
  tft.setTextSize(0);
  tft.setCursor(30,80);
  tft.println("Hello World!");

}

void mediabuttons() {

  // play
  tft.fillScreen(ST7735_BLACK);
  tft.fillRoundRect(25, 10, 78, 60, 8, ST7735_WHITE);
  tft.fillTriangle(42, 20, 42, 60, 90, 40, ST7735_RED);
  delay(500);
  // pause
  tft.fillRoundRect(25, 90, 78, 60, 8, ST7735_WHITE);
  tft.fillRoundRect(39, 98, 20, 45, 5, ST7735_GREEN);
  tft.fillRoundRect(69, 98, 20, 45, 5, ST7735_GREEN);
  delay(500);
  // play color
  tft.fillTriangle(42, 20, 42, 60, 90, 40, ST7735_BLUE);
  delay(50);
  // pause color
  tft.fillRoundRect(39, 98, 20, 45, 5, ST7735_RED);
  tft.fillRoundRect(69, 98, 20, 45, 5, ST7735_RED);
  // play color
  tft.fillTriangle(42, 20, 42, 60, 90, 40, ST7735_GREEN);
  
}

open refund case on ebay

Thanks for your reply. Unfortunately, as I wrote above, I already did that and the new LCD does the same.

new one from another manufacturer?

I'll try a different LCD as a last-ditch effort. For now I'd like to get this one working.

I discovered two other interesting things:

  1. When I use:
    Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);
    instead of
    Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_MOSI, TFT_SCLK, TFT_RST);
    the display reacts a lot faster.

  2. When I invert the display for 20 milliseconds the LCD shows what it's supposed to:

  mediabuttons();
  tft.invertDisplay(true);
  delay(20);
  tft.invertDisplay(false);
  delay(5000);


If the display is working correctly inverted then leave it inverted and the same with the Adafruit initialization if its faster and working correctly with the first line you showed then use the first line. It all looks good in the most recent images you posted.

What I inverted was the color, not the rotation. So it shows what I want except every time I draw something new the screen needs to flash negative momentarily, a lot like an e-ink screen. I would like for the LCD to show what I send to it without the negative flash.

Here's a video:

@jkomets yes I knew what you meant but did not realize you were having to invert every time you wrote to the screen, maybe you dont quite have the right driver or perhaps you can modify the header file

EDIT I did a search and found a thread not quite the same but seemed very similar @ Colour confusion issue with unbranded 160x80 tft and Adafruit library

Thanks. I think I'll ask the vendor about the problem and about which libraries they recommend. Since it's the weekend I expect an answer Monday at the soonest.

The vendor got back to me and said they don't offer technical support, but they did offer to take back the display. I ordered a red one with a slightly different pinout and it worked out of the box, with the code I had written previously. Thanks for the help!

1 Like

@jkomets thanks for taking the time to reply apart from my personal interest it also helps others reading your thread.

1 Like

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