ESP32 ST7789 port

Hi everyone,
So. I saw port Ili9341 for ESP32. I have ST7789. Recently I just tried follow that port and it’s kinda successful. My code is pretty dirty although. I even not used HW pins SPI but it’s very fast! Thanks
I put it on YouTube


Great to see your port working :smiley:

We are working on adding support for more drivers to the esp32 port, but sometimes we are limited by the drivers we have at hand, so, if you don’t mind, you can add support for the ST7789 driver or let us know were your code is and we can try to adapt it so more people can use it.

Do you have a link to were you buyed the display board or could you give us more information about your display?

Is it using SPI or I2C?
Size of the display?
Does it have a touch controller included?


See on GitHub this

I played with those libraries. I changed initialisation SPI and make inverse of display. Almost nothing more

SPI TFT display

Just now found this. Look like someone did it already :joy:

I will try to add support for that driver into the lv_port_esp32 repository, i will try to do that this weekend.

I edited posts for including urls.
Question about your future port - Is original code can be under @copiright?

lbthomsen/esp-idf-littlevgl and littlevgl/lv_port_esp32 are both MTI licensed.

Hi @app-z,

Just added support for the ST7789 into lv_port_esp32, can you test it and let me know if you find any issues?



This item menu is disappeared in last commit. I open issue on GitHub


Just found out that you were using make menuconfig, can you use idf,py menuconfig? until we solve the issue.

That item wasn’t added by us. because the custom items are added at the end of the menu list.

Were you using the esp iot solutions repo?

Didn’t have many time for find out issue. I just checkout in empty folder and run #make configure
As I mentioned before, behind commits giving me that option. Not shure when issue is starting.
Thanks for adding support ST7789. I think it’s minor issue can be resolved easy. Maybe I did something wrong

Solved by @danjulio in !

At first as I mentioned necessary set mode=2 for SPI
Secondly , color is wrong in your port. I am also somehow fixing make (not the build locally. I can make merge request but it doesn’t scene because current version do not work properly


I got my display yesterday but didn’t tested it, do you have the display datasheet? I couldn’t find it, the color format sent to the display might be different to the color format it expects.

Thanks for letting me know about the mode change on the SPI mode.

Thanks for testing :slight_smile:


I kinda found a solution. Need set gamma in initial display. I tested you code with one of the piece of code from git repo with I sent here. I can point you it. So busy it week :confused:

Sure, let me know what piece of code i need to update and i can test it with my display. I will also take a look at the other code examples you sent earlier.

I updated git issue. Please see GitHub

1 Like


Just to let you know that i have updated the lv_port_esp32 repo to handle the issues you reported!
I had to change the initialization for the ST7789 display because the display was flipped, and I just noticed on your picture that your display is also flipped, now it is working as expected :).

Please let me know if you find any other issues

You were right and the colors was not properly done, now it’s fixed:

Working like charm :grinning:

1 Like