2026-04-20 7:10 AM
Hello everyone,
I am currently trying to create a CMake based C-project for the ST Evaluation board STM32H757I-EVAL, that allows me to render a UI on the MIPI DSI connected display, that comes with it.
Due to other work related requirements, I don't want to use TouchGFX, but will later try to add the LVGL framework to create our UI.
However, at time of writing I have been unable to configure my project in such a way, that I can manually fill a Framebuffer and have that have any effect on the display. I have created a github repo with a "minimal" example of the configuration efforts so far.
A "short" overview:
I tried to create said CMake project through the STM32CubeMX code generator, and after a lot of trial, error and misunderstanding what is and isn't generated, I added the ST libraries for the external SDRAM "IS42S32800J" as well as the display driver IC "OTM8009A" and tried to configure the clocks and configurations of the following components:
Most of the configuration values were take off an example project that was also generated by CubeMX, namely LCD_DSI_CmdMode_SingleBuffer, but because that can only be generated as a STM32CubeIDE project, and the code structure is fundamentally different to how CubeMX generated my CMake-type project, I'm almost sure that what I have understood and used off it is in some way wrong.
I got to the point where I can boot up and run through the configuration code without issue, but the display only loads up a peculiar, singular white noise image, a photo is attached.
Writing around in the configured memory area has no apparent effect.
I "know" that at least some of the configuration seems to work, because I'm able to turn the display on/off using OTM8009A's library commands OTM8009A_DisplayOff(Lcd_CompObj) and OTM8009A_DisplayOn(Lcd_CompObj).
I suspect that either the clock configuration is wrong or something in the initialization order is wrong, such that it leads to timing issues.
I can however not figure out, what it is.
TLDR:
I'm trying to create a minimal DSI Command Mode + LTDC example, with the Framebuffer located on the SDRAM at 0xD0000000. It only shows a static bit of white noise.
The sources to my project attempt are in a github repo.
I'd be very grateful for any pointers.
Thanks in advance.
Solved! Go to Solution.
2026-04-27 2:20 AM - edited 2026-04-28 5:37 AM
PS: Not a solution, sorry.
Thank you for the responses. To my knowledge I've already been through the CubeH7 package examples and have compared and copied the clock values there to mimic that working example. Whether there's been a copy paste error or another thing results in my problem is still unclear to me.
However, we have abandoned the idea of using a MIPI DSI interface due to this complicated setup, lack of CMake and CubeMX based project examples and struggles to find good suppliers for appropriate DSI displays.
This post can be marked as closed.
Thank you again for the help!
Best regards,
Chris
2026-04-20 8:58 AM
Hello,
Try to refer/inspire from the LCD_DSI examples provided in CubeH7 package:
and reflect all the clocks and LCD configs in CubeMx.
2026-04-21 8:10 AM
Try start activate LTDC without big framebuffer and without SDRAM activate. Simply define window fo 50x50 pixels in internal ram. Try start LCD working this way. After work you can try add SDRAM ...
2026-04-27 2:20 AM - edited 2026-04-28 5:37 AM
PS: Not a solution, sorry.
Thank you for the responses. To my knowledge I've already been through the CubeH7 package examples and have compared and copied the clock values there to mimic that working example. Whether there's been a copy paste error or another thing results in my problem is still unclear to me.
However, we have abandoned the idea of using a MIPI DSI interface due to this complicated setup, lack of CMake and CubeMX based project examples and struggles to find good suppliers for appropriate DSI displays.
This post can be marked as closed.
Thank you again for the help!
Best regards,
Chris
2026-04-27 2:59 AM - edited 2026-04-27 3:07 AM
This post can be marked as closed.
Thank you again for the help!
You can mark the post you estimate answered your question (Not this one).