Questions/issues with the esp_lcd component

kgschlosser
Posts: 7
Joined: Mon Oct 11, 2021 12:21 pm

Questions/issues with the esp_lcd component

Postby kgschlosser » Mon Jan 29, 2024 10:43 pm

Let me give you some background as to what I am trying to do.

I am currently working on creating LCD drivers for MicroPython. I have decided that the best way to go about doing this is to have what I am calling "bus" drivers written in C code and actual display drivers written in Python. Since many display interface IC's support more than one type of connection method the thought of decoupling the IC driver from the communication method is an ideal thing to do. This has been done to some extent with the esp-lcd component. Where there is an issue is with RGB LCD's. Some of these types of display IC's do have internal GRAM or they have a secondary type of connection SPI or I2C that allow for passing commands to the IC. The issue we have with the RGB LCD portion of the esp-lcd component is the RGB is not a way of communications, it is instead a panel or "display driver" It functions in a completely different way as the i8080, SPI and I2C drivers that are available. This not only causes an API conflict but it also causes problems with dealing with the frame buffers and the amount of memory that is being consumed.

ideally the user should be able to create the frame buffers as they want and be able to pass a pointer to the frame buffer to the driver just like SPI, I8080 or I2C.

I have tried to disable the creation of frame buffers in the RGB driver by setting the number of frame buffers to zero. This results in crashing of the program. I have attempted to collect the frame buffer from the RGB driver to have LVGL use to render to and this doesn't seem to work properly either. There is no callback for when a frame buffer has finished being transferred so there are no mechanics in place to make use of double buffering with DMA memory because there is no way to notify LVGL of when it is safe to flush the buffer data.

It would be nice if the RGB was not a panel driver and had the same design as the rest of the interfaces that are in the esp-lcd component.

If there is anyone that is familiar with using the RGB portion of the esp-lcd component and is willing to shed some light on how to get it working properly that would be a big help.

Thanks,
--Kevin

ESP_Sprite
Posts: 9764
Joined: Thu Nov 26, 2015 4:08 am

Re: Questions/issues with the esp_lcd component

Postby ESP_Sprite » Tue Jan 30, 2024 12:14 am

As a workaround, you can kind-of do this by setting panel_config.flags.no_fb. If you then supply an on_bounce_empty callback, you can copy data from your framebuffer to the bounce buffers in there.

Who is online

Users browsing this forum: Gaston1980, Google [Bot] and 156 guests