Fast driver for IPS 240x240 ST7789 display

Discuss development of drivers for external hardware and components, such as LCD screens, sensors, motor drivers, etc.
Target audience: Users and developers of drivers.
Post Reply
devbis
Posts: 7
Joined: Sun Feb 17, 2019 11:03 am

Fast driver for IPS 240x240 ST7789 display

Post by devbis » Sun Apr 21, 2019 9:08 pm

Hi everyone,

Some time ago I presented my driver for the IPS driver from AliExpress (viewtopic.php?f=15&t=5969).
It was written in Python and its performance was deficient.
So I rewrote this driver in pure C, and the performance of the screen increased significantly (35 times faster drawing a line)

https://github.com/devbis/st7789_mpy/

I checked the driver on ESP8266 and ESP32 controllers.
Feel free to use it.

User avatar
mcauser
Posts: 453
Joined: Mon Jun 15, 2015 8:03 am

Re: Fast driver for IPS 240x240 ST7789 display

Post by mcauser » Thu Apr 25, 2019 11:49 pm

Nice work! I definitely think it makes sense having data intensive libraries, especially display drivers, written in pure C.
I have a bunch if libraries that could benefit from the same optimisation.

Tblo18
Posts: 1
Joined: Mon Jun 01, 2020 9:20 am

Re: Fast driver for IPS 240x240 ST7789 display

Post by Tblo18 » Mon Jun 01, 2020 9:26 am

Hi Devibis,

Thanks a lot for your work! I am using your driver and was wondering if its possible to display a picture using the "ST7789.blit_buffer" function. I am using a esp32 right now. As far as i can tell i am not able to load the bytearray into ram. It looks like my bytearray is just do big to load ist into the ram of the esp32. So maybe you could give me a hint on how to implement this.

Thanks a lot and have a great day :)!

devbis
Posts: 7
Joined: Sun Feb 17, 2019 11:03 am

Re: Fast driver for IPS 240x240 ST7789 display

Post by devbis » Thu Jul 02, 2020 11:08 am

You can use frozen modules that don't require RAM and keep the data directly on the flash.
(You have to convert an image to bytearray before compiling)
Another approach is to write an image to the display by chunks, e.g. by several rows.
It depends on the image you use.

Post Reply