LvGL v9 Port for STM32H735G-DK - Page 1
Forum section: electronics / general

author: hussamaldean
author_rank: Unknown
timestamp: February 20, 2025, 04:30:16 am
content: Since there was no existing LVGL port for the STM32H735G-DK, I decided to take on the challenge and do it myself. What a journey it has been!The process started with analyzing the schematic to map the LCD connections to the MCU, followed by LTDC configuration and setting up external flash and RAM. Once the hardware was properly initialized, the actual porting of LvGL was straightforward, thanks to the clear and well-structured documentation provided by the LVGL team.One crucial aspect of optimizing performance was proper MPU (Memory Protection Unit) and cache management. Without it, framebuffer operations and DMA2D transfers would be inefficient, leading to performance bottlenecks. By carefully configuring the MPU regions and cache policies, I was able to achieve smooth rendering and efficient DMA2D handling, allowing the MCU to focus on UI updates with minimal overhead.One thing I must say—LvGL is an incredible GUI library! It’s lightweight yet powerful, making it a great choice for embedded GUI development.As for performance? The STM32H735G-DK handled LvGL impressively well! The MCU spends most of its time rendering the UI, while DMA2D efficiently manages LCD flushing, resulting in smooth and responsive graphics.Check out the video to see the performance in action!Feel free to check the github repository from here:https://github.com/hussamaldean/LvGL-V9-Port-STM32H735G-DK

author: bigendian
author_rank: Regular Contributor
timestamp: February 20, 2025, 09:43:45 am
content: congrats. Very nice job.

author: voltsandjolts
author_rank: Unknown
timestamp: February 20, 2025, 10:02:55 am
content: Do you have a direct link to github, rather than that tracking link?

author: hussamaldean
author_rank: Unknown
timestamp: February 20, 2025, 12:56:38 pm
content: Quote from: bigendian on February 20, 2025, 09:43:45 amThank you.It was a great journey though.Quote from: voltsandjolts on February 20, 2025, 10:02:55 amDone.

author: elektryk
author_rank: Regular Contributor
timestamp: February 21, 2025, 09:31:53 am
content: They have decent examples.I've ported this onehttps://github.com/lvgl/lv_port_stm32f746_discoto my custom HW with STM32H750VB, nice MCU but it has only 1x128kB flash, so program runs from external QSPI, without iCache and dCache activated it worked terribly slow.As you can see in this example DMA2D is not used but plain mem2mem transfer. Is it worth to replace it with DMA2D?In my case everything works pretty smoothly except for text scrolling (32px font 480px width).

author: hussamaldean
author_rank: Unknown
timestamp: February 21, 2025, 06:52:30 pm
content: Quote from: elektryk on February 21, 2025, 09:31:53 amYes. Enabling both caches will improve the speed significantly.However, you will start facing issue with the cache issue.Check the CubeMX setup.Also, using DMA2D will improve the graphics.If you want switch to STM32U5G9 for even faster 2.5D graphics.

author: elektryk
author_rank: Regular Contributor
timestamp: February 21, 2025, 08:40:14 pm
content: QuoteNice amount of flash and RAM, but H7 still has some advantages (480MHz vs. 160MHz, 2 CAN vs. 1).Probably TouchGFX is needed to fully use U5G capabilities, I'm afraid that with LVGL it may be even slower than H7 because LVGL itself doesn't use all of those HW accelerations.

author: hussamaldean
author_rank: Unknown
timestamp: February 22, 2025, 04:15:08 am
content: Quote from: elektryk on February 21, 2025, 08:40:14 pmLvGL is now partner with STMicroelectronics. Hence, you will get the support for NeoChromVG without any issue.Take a look at this post:https://www.linkedin.com/posts/husamuldeen-al-daffaie-816778140_embeddedabrsystems-lvgl-display-activity-7287761903936823296-4DrC?utm_source=share&utm_medium=member_desktop&rcm=ACoAACJJBZIBFZC6iepSxtjZueNXakmcJrGNdj8I managed to do it.

author: Fire Doger
author_rank: Regular Contributor
timestamp: March 01, 2025, 10:54:54 am
content: I use U5G9 at my work. I wouldn't recommend it for anything that includes movement.In same project the F7 was perfectly fine. To make U5 "acceptable" we spend 6 months optimizing things...And now we need to redesign the PCB to use different flash because font rendering drops frames.160Mhz are definitely too low.Also with current touchGFX vector fonts doesn't work.H series will be future proof, they will eventually make an H with neoChromVG.U series will make you chase clocks...Ps. The optimizations also improved F7 variant and we may drop the U5 variant completely without releasing it...

author: hussamaldean
author_rank: Unknown
timestamp: March 06, 2025, 02:56:46 pm
content: Quote from: Fire Doger on March 01, 2025, 10:54:54 amH7R& will have NeoChromVG.Can't wait to get my hands on those chips.ANyway, I tested U5G9 with NeochromVG on LvGL, decent performance for low power MCU.I've tested it on Riverdi 5inch and power what I can say, results were impressive for low power MCU.