Hi
we are design a GUI based on nRF82840, as the LVGL only supports 32-bit, 16-bit, 8-bit and 1-bit format color by default, is that possible to modify it to support 12-bit depth?
thanks.
Hi
we are design a GUI based on nRF82840, as the LVGL only supports 32-bit, 16-bit, 8-bit and 1-bit format color by default, is that possible to modify it to support 12-bit depth?
thanks.
Hi
All the source code is provided so anything is possible, but in this case it might be easier to simply configure LVGL in 16-bit mode, and add a conversion step before you send the data to the display where the 16-bit samples are converted to 12-bits. Then you can keep most of the LVGL interfaces the same, and simply change the low level code handling the display communication.
There will be some CPU overhead though from the conversion, which could be problematic depending on the resolution of your display, and how often you need to update it.
Best regards
Torbjørn
Hi Torbøm
we are using 16-bit mode already, but the RAM has been consumed by other tasks over 75%. as we can see the lag after loading new images, we want to lower the data throughput by changing the color depth. mainstream LCD displays from our supply chain support 12-bit, so we want to try this.
do you have reference of modifying the LVGL?
thanks
Hi Torbøm
we are using 16-bit mode already, but the RAM has been consumed by other tasks over 75%. as we can see the lag after loading new images, we want to lower the data throughput by changing the color depth. mainstream LCD displays from our supply chain support 12-bit, so we want to try this.
do you have reference of modifying the LVGL?
thanks
Hi
What is the resolution of the display?
I assume you use SPI to communicate with it? What is the SPI frequency?
Poplar said:do you have reference of modifying the LVGL?
Modifying LVGL to do what? Support 12-bit color natively?
We don't have any resources for this internally, and I can't find any references to this online. One challenge of supporting 12-bits is that you can no longer define the color depth as a whole number of bytes, which is used by many of the modules in LVGL.
Looking through the LVGL files it seems the STM backend for LVGL supports a color mode called ARGB4444, but this wouldn't help much if the goal is to reduce memory consumption since each color is still 16-bits.
To figure out how much memory is used by the LVGL driver you could try to generate a RAM/ROM report. Unless you store a screen buffer in RAM most of the display data would typically be stored in flash and not RAM, since pictures, fonts etc are constant data. If this is the case changing to 12-bit color would not have a large impact on RAM consumption, only ROM.
Best regards
Torbjørn
Hi Torbjørn
our case is that there are a lot of tasks running at the background which occupy over 73% of RAM of nRF52840, and mainstream LCD modules support 12-bit color depth as the lowest, so we want to try this solution to see if it can solve the issue of small available RAM while playing simple animation effect, we can see obvious lag when we are doing so under 16-bit color depth.
Thanks.
Hi
By "obvious lag" you mean the animation is playing back too slowly?
Are you storing the animation data in RAM, since you expect the change to 12-bit to reduce the RAM consumption?
Best regards
Torbjørn