TFT ST7735S with Wemos D1

Hello,

I have the 1.8inch ST7735S TFT (ILI9225 / ILI9341) screen together with an Arduino Wemos D1.

With an Arduino NANO the screen runs perfect, but with the tft connected to the Wemos I can't get it to work and keep having a white screen.

Wiring connections on back of screen are as follows:

My wiring so far:

CS -> D8
RST -> D4
RS -> D6
SDA -> D7
CLK -> D5
GND -> GND
VCC -> 5V (same as on the Nano)

I found many tutorials of connecting and programming the Wemos D1 to an TFT screen, but nothing happens so far on my screen.

Any help is welcome to solve this problem.

Some extra info of the tft screen:

|Display Color|16BIT RGB 65K color|
|SKU|MAR1801|
|Screen Size |1.8(inch)|
|Type|TFT|
|Driver IC|ST7735S|
|Resolution|128*160 (Pixel)|
|Module Interface|4-wire SPI interface|
|Backlight|2 White Led|
|Active Area |28.03x35.04 (mm)|
|Module PCB Size|38.30x62.48 (mm)|
|Operating Temperature|-20℃~60℃|
|Storage Temperature|-30℃~70℃|
|Operating Voltage|5V/3.3V|
|Power Consumption|TBD|
|Rough Weight(Package containing)|18 (g)|

Your topic has been moved to a more suitable location on the forum. Installation and Troubleshooting is not for problems with (nor for advice on) your project :wink: See About the Installation & Troubleshooting category.

Now these are 3 candidates? Did you try drivers for all three? Which libraries did you try?

Post a link to the display you bought, then we see if it provides more information.

The tft is based on a ST7735S driver. For this I used the libraries of the 7735 and the 7789 which are working on a Arduino NANO.

The link to the displayed I bought:
TFT display

On the Arduino NANO I put the wires as seen on the picture below;
18-inch-tft-spi-serial-module-lcd-kleuren-display.jpg

And that seems to work with the libraries of the ST7735 graphic test. But no luck with a Wemos D1

Please provide exact information about the library. library.properties should have a link.

Not exactly know what you mean, but I think:

url=GitHub - adafruit/Adafruit_ILI9341: Library for Adafruit ILI9341 displays
url=GitHub - adafruit/Adafruit-ST7735-Library: This is a library for the Adafruit 1.8" SPI display http://www.adafruit.com/products/358 and http://www.adafruit.com/products/618

Both used to work with the nano. But when I tried to receive the correct libraries by loading them to the nano the display tuns out scrambled like in the picture below.

So it's getting from bad to worse. And it really starts to annoy .

Solved the scrambled picture on the display.

Was a user error by setting the ports incorrect in the program.

But still no luck on the wemos

Ok. I see that the examples of this library produce output to Serial. So you could post this output from Serial Monitor.
And report which example you use.
And check and report the #define (s) for the pins CS, DC and RST you use for Wemos D1.

I use the library for an Adafruit display based on ST7735 driver. and as example I use the graphicstest.ino with next settings:

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

#if defined(ARDUINO_FEATHER_ESP32) // Feather Huzzah32
  #define TFT_CS         14
  #define TFT_RST        15
  #define TFT_DC         32

#elif defined(ESP8266)
  #define TFT_CS         D8
  #define TFT_RST        D4                                            
  #define TFT_DC         D6

#else
  // For the breakout board, you can use any 2 or 3 pins.
  // These pins will also work for the 1.8" TFT shield.
  #define TFT_CS        8
  #define TFT_RST       9 // Or set to -1 and connect to Arduino RESET pin
  #define TFT_DC        10
#endif

You should.

Output from the Serial monitor with the wemos attached:

20:20:54.490 -> done

20:21:32.653 -> ���Hello! ST77xx TFT TestInitialized

20:21:34.002 -> 92

20:21:50.170 -> done

Output from the serial monitor with the nano attached:

20:26:52.359 -> Hello! ST77xx TFT TestInitialized

20:26:53.604 -> 80

20:27:10.602 -> done

With the example ST7735_readreg.ino from the library TFT_SPI_KBV_master I get this output attached with the nano:

20:38:36.635 -> Bi-directional Read registers

20:38:36.669 -> controller reg(0x01) = 0x00

20:38:36.766 -> controller reg(0x04) = 0xFFFFFF

20:38:36.800 -> controller reg(0x09) = 0xFFFFFFFF

20:38:36.832 -> controller reg(0x0A) = 0xFF

20:38:36.864 -> controller reg(0x0B) = 0xFF

20:38:36.864 -> controller reg(0x0C) = 0xFF

20:38:36.898 -> controller reg(0x0D) = 0xFF

20:38:36.930 -> controller reg(0x0E) = 0xFF

20:38:36.963 -> controller reg(0x0F) = 0xFF

20:38:36.996 -> controller reg(0x2E) = 0xFFFFFF

20:38:37.030 -> controller reg(0xDA) = 0xFF

20:38:37.063 -> controller reg(0xDB) = 0xFF

20:38:37.095 -> controller reg(0xDC) = 0xFF

I expected you might have a boot mode issue, but your Serial output proves it is not a boot mode issue.

The execution times are nearly the same, so the SPI speed is the same most likely, not the cause of the issue.

The voltage level on the input side of the level converter could be a reason.
You could try to connect VCC to 3.3V. You might need to close jumper J1 then.
But you picture in post #4 looks different compared to the lcdwicki site.

Remains to question if the driver could be the cause, maybe the Adafruit library doesn't work with your display with ESP8266. You might try the LCDWICKY driver and example.

Your display has no SDO -> MISO pin, so it is write-only. You get garbage reading registers.

Last idea: search for ST7735 in this forum; there will be more to consider.

GitHub - Bodmer/TFT_eSPI: Arduino and PlatformIO IDE compatible TFT library optimised for the Raspberry Pi Pico (RP2040), STM32, ESP8266 and ESP32 that supports different driver chips
would be the library to use on ESP8266. It supports ST7735 and is highly optimized for these processors.

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