Skip to content

I wanted to give you a heads up... #17

@kdschlosser

Description

@kdschlosser

I am overhauling the lcd bus drivers to make the code easier to manage when adding support for additional MCUs which will hopefully occur in the near future. I also needed to make the software rotation available to all bus drivers and not just the RGB driver. This cam about with the addition of the P4 being able to be used with DSI displays. I have also come across a few displays that use I8080 and SPI that don't have hardware rotation or the hardware rotation is only able to rotate 180° which isn't very useful. I also wanted to offload the transmitting to the display onto the second core of the ESP32. By doing this allocating the buffers in DMA memory to get optimal performance isn't a requirement and if DMA memory is used the interrupts that occur for the DMA transfer are not going to be on the core that LVGL is running on so rendering will become faster as a result. Doing this does come at the cost of some additional memory use for at least 1 additional frame buffer to be allocated but I feel it is well worth the extra memory use.

I do strongly recommend adding CONFIG_SPIRAM_XIP_FROM_PSRAM=y to the build command on the ESP32 MCU's that support it and have 8mb or more PSRAM available. What that build option does is it instructs the ESP32 to load the entire firmware into RAM when it boots. This reduces the amount of access that takes place to the flash which shares the same SPI bus as the PSRAM. It gives a significant speed boost but comes at the cost of using a minimum of 2.5mb of memory. The amount of memory use is dictated by the baking of python modules into the firmware. I know that option is available for the S3 and P4, it may be available on other ESP32 MCU's, I have not dove into checking...

I wanted to give this heads up to you to let you know what I am doing so you can give any input on changes being made, make suggestions for additions that should be made or if you simply would like to lend a hand writing the code.

Here is the link for the changes I am making..
https://github.com/lvgl-micropython/lvgl_micropython/tree/updates-lcd_bus-drivers

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions