Go Down

Topic: SOLVED - eBay 1.8" ST7735 LCD Problem (Read 6579 times) previous topic - next topic

riaanc

Mar 26, 2014, 09:35 am Last Edit: Mar 26, 2014, 08:19 pm by riaanc Reason: 1
Hey Guys

I bought this LCD from eBay and it arrived yesterday: http://www.ebay.com/itm/171032035075?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1439.l2649. The board that arrived did not say "HY 1.8" as I expected but "KMR 1.8". See photo:
http://i.imgur.com/lcURzp8.jpg

I hooked up the LCD (Sorry, I left the board at home, so I can't give the exact connections between the board and arduino, but I think it must be right, because there are some images and lines being printed. Read further).

I downloaded the latest Adafruit 7735 and GFX library files from Github and tried running the example. I could see faint images being printed but the display was mostly just a bright white. Looking at the LCD from a very low angle (70 degrees or so, I could cleary see the text and lines being shown looked OK, but it was as if the contrast was extremely low. Everything is just bright white.

When I press the Arduino's reset button, the display shows the image with proper black bakground and contrast for a few seconds, but as soon as the Arduino boot and runs the code again, the display again turns the strange low constrast white.

I tried initializing with initR and BLACKTAB, REDTAB, GREENTAB and also initB. initB displayed nothing. initR displayed text and lines, all of them still very faint.

Something obviously happens while the arduino resets that makes the LCD show properly. I narrowed it down to pin13 on the arduino. With the adafruit example running, I uploaded another sketch which simply sets pin13 to an output and digitalWrites it to LOW. Doing this, the LCD obviously freezes with the last image it displayed, but it displays it correctly with black background.

I tried another arduino uno - still same problem. I tried the following sketch found here: http://forum.arduino.cc/index.php?topic=125034.msg1077149#msg1077149

Code: [Select]

#define cs_lcd   10
#define cs_sd    7
#define dc       9
#define rst      8

#include <Adafruit_GFX.h>    // Core graphics library
#include <Adafruit_ST7735.h> // Hardware-specific library
#include <SPI.h>

Adafruit_ST7735 tft = Adafruit_ST7735(cs_lcd, dc, rst);

void setup()
{
 tft.initR(INITR_REDTAB);
 tft.fillScreen(ST7735_BLACK);
 tft.setTextWrap(false);
}


void loop()
{
 tft.setTextSize(5);
 tft.setTextColor(ST7735_WHITE, ST7735_BLACK);
 for ( int i = 0; i < 100; i++ )
 {
   tft.setCursor(40, 50);
   tft.print( i );
   delay( 100 );
 }
 
}


Here is a video of the problem: http://youtu.be/Q9nfqhFJk_A Everytime the screen displays properly is after I press the arduino's reset button.

Can anyone tell me what might be wrong?

I read another forum post today that said that even though the LCD borad can be powered by 5V (JP1 on board left open circuit), the SPI must be at 3.3V logic level? Could this be a problem?

riaanc

I managed to fix the problem. Although the LCD may be supplied by 5V, the logic must still be at 3.3V level. For now, I just placed 1K resistors in-line with the four data lines. Just in case someone else struggles with the odd naming convention on the board:










eBay LCD BoardAdafruit Pin NameArduino Pin No (Hardware SPI)Notes
SCKSCLK131K resistor in line
SDAMOSI111K resistor in line
CSTFT_CSdefined by "cs" in sketch1K resistor in line
A0DCdefined by "dc" in sketch1K resistor in line
RSTRSTdefined by "rst" in sketch, or connected to Arduion RESET
LED+Connect to Arduino 3.3V. Module has a 10R resistor inline already. LED is rated for 3.5V 30mA
LED-Connect to GND


Next, I'll try using the SD Card.

keywords: ST7735S, ST7735R, kmr-1.8 spi v1, streaks, white display

merlin2049er

Thanks.  I'll try this.  I've been pulling out my hair trying to get this 1.8" lcd to work.

Where did you find the st7735.h file?


electronicabertran

Thanks a lot, putting the 10k resistors, solved the problem to me, too....great...many thanks.

electronicabertran

Thanks a lot, putting the 1k resistors, solved the problem to me, too....great...many thanks.

Noixo

Sorry if I shouldn't add to such an old post but I just wanted to add that the "1k" resistor solution didn't work for me. It helped and make the screen flicker less and the colours more visible but it didn't stop it completely. What worked for me was running the Arduino off 3.3 volts rather than 5.

I was very relieved when I got it to work properly because I was sure I fried my board. (My backlight doesn't seem to have a current limiting resistor, so it got really hot when I first tried to power it up.)

Go Up