Failing to make display show anything on the STM32H757I-EVAL board
- April 20, 2026
- 3 replies
- 162 views
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:
- GPIO of the attached display pins
- FMC to enable SDRAM
- DSIHOST
- LTDC
- DMA2D
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.
