2.4 inch ST7789 TFT SPI display with Arduino boards

Hi, I'm a new user of this forum! I've been trying to connect my 2.4 inch LCD TFT display wich has a ST7789 chip and uses SPI connection to my Arduino boards (UNO R3, MEGA2560 R3 and NANO V3.0). I've tried to use the libraries "TFT_eSPI" and the Adafruit library for ST7789 (and ST7735). After having done all connections accordingly to the SPI pins of the various boards, and having modified the "User_Setup" file (in the TFT_eSPI library) accordingly to my connections, the screen just doesn't seem to work correctly (I've tried it with the example sketch "TFT_graphicstest_one_lib"). It just diplays mostly white screen, but when the board is booting it sometimes displays some of the graphics that it should display.
In the picture, the connections are: VCC: 3.3V, GND: GND, CS: 53, RESET: 4, DC: 3, SDI(MOSI): 51, SCK: 52, LED: 5V (through 110ohm resistor), SDO(MISO): 50. I've bougt this display on AliExpress, through this link: https://a.aliexpress.com/_EjJIttZ (in the description it says the display uses a ST7735, but as many users reported, and as it's written on the box of the display, the 2.4 inch uses a ST7789).
I uploaded a screenshot from my User_Setup file, so you can see how I initialized the pin connections.
Please, tell me if I've done anything wrong in my connections, or if you need any more information to try to solve my problem. Thanks a lot in advance!
Davide



Today I tried it with my ESP32 and it worked, can somebody please explain why it wouldn't work with my Arduino boards?

Because your display doesn't have level converters from 5V IO to 3.3V.
You are lucky that your display survived.

Oh, sorry, I wrote the wrong connection for VCC. I actually connected it at 3.3V in the picture (even though I also tried it at 5V, but it still didn't work with Arduino boards). By the way, in some reviews of this display people said that for them it only worked at 5V, so it's kind of weird :thinking:... For me it worked only with the ESP32 (at 3.3V), but it still doesn't work with Arduinos... Maybe it's just because Arduinos have less memory?

You can connect VCC to either 5V or 3.3V, as the display board has an LDO on supply.
But if you connect 5V IO pins (CS, DC, SCK, MOSI) directly to the display, then you feed 5V through the protection diodes of the display controller. This distorts the SPI signals and endangers the controller.

So I should use some resistors to lower the voltage? Thanks for answering!

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