How to connect ST7789 display to ESP32 C3 SuperMini?

I have a pretty daunting personal project and I'm on my last desperate attempt for help. I'm new to basically everything: Arduino, soldering, small displays, esp32, etc. I asked for guidance originally in this forum and was directed to using the ESP32 C3 SuperMini because of it's size, which will fit inside of my project. I finally have all of the parts necessary to put it together, but I can't for the life of me get the display to work and just show anything... text, different color background, whatever. I just need to get anything to show so that I can move forward with more complicated code. So I'm doing something wrong, but I don't know what.

I'm assuming I just need the right libraries and the right connections. I've tried a few.

This is what I have:

  • 830 point solderless pcb bread board /w male + male wires for testing
  • ESP32-C3 SuperMini development board
  • 1.54" Full Color TFT Display Module (240x240 SPI Interface ST7789 For Arduino)
  • or... I have a 1.3 TFT display, but it had a weird pin layout, no CS, and I gave up on it so I bought the new one listed above.

This is the pinout that I found for my board (which I found on this forum):
image

This is the exact display that I bought, which has the pins: GND, VCC, SCL, SDA, RST, DC, CS, BL

I've attempted to follow a few different tutorials, but everyone has their own hardware and it's just confusing to me. Like when referencing connecting a display to an esp32 they say, "SDA = MOSI--- D10" and I'm looking at my specific pinout... why would I not connect SDA to SDA? Why does SDA = MOSI? Or, "SCL = SCK --- D8" Why does SCL = SCK? When I have both of those pins on my esp32. And then obviously I don't have D10/D8, so I have to figure out what GPIO to pick.

Everything appears to upload successfully, but nothing ever shows up.

Is this just not something that normal people can learn or what? I'm struggling. My ultimate goal is to just show a looping video on the display at some point. But can ANYONE please help me just get the 2 components working together and have it show something on the screen? Please.

I remember your avatar... and putting it in a simulation. : )

Have you tried Espressif's forum? For example...

And this...

It is better to paste your photos in the thread...

Hey! You know what's frustrating? That simulation was super helpful, and I was able to get it working without a problem with the actual parts. Too bad the ST7789 display is not an option on there. But I didn't end up liking the screen or the gif animations, and now I just can't get anything to work on other displays.

I did try the esp32 forum, and I haven't received any replies yet.

And yes I found that post as well. There's really only a few out there with the same combination and none of them have worked for me. I guess I could try it again.

Can you make any Arduino work with this display, and can you make the ESP work with any display?

I found another ESP32 with pin connections for an ST7789 display... maybe it will help in your search...

I only have the ESP32-C3 Super Mini for testing, but I have three different displays at the moment. As I said above, the esp32 worked with the SH1106 1.3" display. The other displays are both ST7789, and I have not gotten anything to work with either. The pins on them are different.

Read the information on the ST7789 library concerning SPI (the OLED on the left uses IIC communications)... be sure to look for an ESP32 library for the displays.

Well, I followed a tutorial that I found which was kind of close, made some minor adjustments because he was using a different esp32 board, and I was able to get the graphics test to show up and run fine. Although appears to be super fast. Mission successful!

https://www.instructables.com/Interfacing-ST7789-320x240-TFT-Screen-With-an-ESP3/

This library: https://www.arduino.cc/reference/en/libraries/adafruit-st7735-and-st7789-library/

image

Pinout:
ST7789 > ESP32-C3 Super Mini
GND > GND
VCC > 3V3
SCL > GPIO4
SDA > MOSI/GPIO6
RST > TX/GPIO21 (has to be specified in code)
DC > SCL/GPIO9 (has to be specified in code)
CS > SDA/GPIO8 (has to be specified in code)
BL > 3V3