2022-03-21 09:18 PM
Hi everyone,
@Kevin HUBER
I am using stm32mp157f-dk2 with ecosystem 3.1, with weston support.
I connected the HDMI display to the development kit, reset the device, but nothing displayed.
After checking, modetest show that the HDMI are properly connected, and the test command
modetest -M stm -s 33:320x1480-60.08 -v
run successfully. But still, nothing displayed.
Anyone knows how to fix this?
Actually, I have report this issue before, in
https://community.st.com/s/question/0D53W00001L0jviSAB/failed-to-start-loadsave-screen-backlight
But I didn't solve that last time.
In addition, does anyone know to how remove the GTK demo from yocto/disable it from application?
I tried to remove packagegroup-st-demo from CORE_IMAGE_EXTRA_INSTALL variable in image.bb, but it doesn't work.
For now I can only disable it by stopping the entire weston service, which is definitely not what I want.
Regards,
Leung
Solved! Go to Solution.
2022-04-07 10:08 AM
Hi @WLeun.3 ,
We found that the LTDC pins are missing in your mx dts. This is normal because by default CubeMx generates the configuration for having the mode DSI on LTDC.
On the starter package, we made a custom DTS to support the HDMI and the DSI mode at the same time.
Please take example on this page to modify your CubeMx DTS:
You have to at least add the ltdc pins like in the wiki or in the file "stm32mp15-pinctrl.dtsi" on the Developer Package.
ltdc_pins_a: ltdc-0 {
pins {
pinmux = <STM32_PINMUX('G', 7, AF14)>, /* LCD_CLK */
<STM32_PINMUX('I', 10, AF14)>, /* LCD_HSYNC */
<STM32_PINMUX('I', 9, AF14)>, /* LCD_VSYNC */
<STM32_PINMUX('F', 10, AF14)>, /* LCD_DE */
<STM32_PINMUX('H', 2, AF14)>, /* LCD_R0 */
<STM32_PINMUX('H', 3, AF14)>, /* LCD_R1 */
<STM32_PINMUX('H', 8, AF14)>, /* LCD_R2 */
<STM32_PINMUX('H', 9, AF14)>, /* LCD_R3 */
<STM32_PINMUX('H', 10, AF14)>, /* LCD_R4 */
<STM32_PINMUX('C', 0, AF14)>, /* LCD_R5 */
<STM32_PINMUX('H', 12, AF14)>, /* LCD_R6 */
<STM32_PINMUX('E', 15, AF14)>, /* LCD_R7 */
<STM32_PINMUX('E', 5, AF14)>, /* LCD_G0 */
<STM32_PINMUX('E', 6, AF14)>, /* LCD_G1 */
<STM32_PINMUX('H', 13, AF14)>, /* LCD_G2 */
<STM32_PINMUX('H', 14, AF14)>, /* LCD_G3 */
<STM32_PINMUX('H', 15, AF14)>, /* LCD_G4 */
<STM32_PINMUX('I', 0, AF14)>, /* LCD_G5 */
<STM32_PINMUX('I', 1, AF14)>, /* LCD_G6 */
<STM32_PINMUX('I', 2, AF14)>, /* LCD_G7 */
<STM32_PINMUX('D', 9, AF14)>, /* LCD_B0 */
<STM32_PINMUX('G', 12, AF14)>, /* LCD_B1 */
<STM32_PINMUX('G', 10, AF14)>, /* LCD_B2 */
<STM32_PINMUX('D', 10, AF14)>, /* LCD_B3 */
<STM32_PINMUX('I', 4, AF14)>, /* LCD_B4 */
<STM32_PINMUX('A', 3, AF14)>, /* LCD_B5 */
<STM32_PINMUX('B', 8, AF14)>, /* LCD_B6 */
<STM32_PINMUX('D', 8, AF14)>; /* LCD_B7 */
bias-disable;
drive-push-pull;
slew-rate = <1>;
};
};
ltdc_sleep_pins_a: ltdc-sleep-0 {
pins {
pinmux = <STM32_PINMUX('G', 7, ANALOG)>, /* LCD_CLK */
<STM32_PINMUX('I', 10, ANALOG)>, /* LCD_HSYNC */
<STM32_PINMUX('I', 9, ANALOG)>, /* LCD_VSYNC */
<STM32_PINMUX('F', 10, ANALOG)>, /* LCD_DE */
<STM32_PINMUX('H', 2, ANALOG)>, /* LCD_R0 */
<STM32_PINMUX('H', 3, ANALOG)>, /* LCD_R1 */
<STM32_PINMUX('H', 8, ANALOG)>, /* LCD_R2 */
<STM32_PINMUX('H', 9, ANALOG)>, /* LCD_R3 */
<STM32_PINMUX('H', 10, ANALOG)>, /* LCD_R4 */
<STM32_PINMUX('C', 0, ANALOG)>, /* LCD_R5 */
<STM32_PINMUX('H', 12, ANALOG)>, /* LCD_R6 */
<STM32_PINMUX('E', 15, ANALOG)>, /* LCD_R7 */
<STM32_PINMUX('E', 5, ANALOG)>, /* LCD_G0 */
<STM32_PINMUX('E', 6, ANALOG)>, /* LCD_G1 */
<STM32_PINMUX('H', 13, ANALOG)>, /* LCD_G2 */
<STM32_PINMUX('H', 14, ANALOG)>, /* LCD_G3 */
<STM32_PINMUX('H', 15, ANALOG)>, /* LCD_G4 */
<STM32_PINMUX('I', 0, ANALOG)>, /* LCD_G5 */
<STM32_PINMUX('I', 1, ANALOG)>, /* LCD_G6 */
<STM32_PINMUX('I', 2, ANALOG)>, /* LCD_G7 */
<STM32_PINMUX('D', 9, ANALOG)>, /* LCD_B0 */
<STM32_PINMUX('G', 12, ANALOG)>, /* LCD_B1 */
<STM32_PINMUX('G', 10, ANALOG)>, /* LCD_B2 */
<STM32_PINMUX('D', 10, ANALOG)>, /* LCD_B3 */
<STM32_PINMUX('I', 4, ANALOG)>, /* LCD_B4 */
<STM32_PINMUX('A', 3, ANALOG)>, /* LCD_B5 */
<STM32_PINMUX('B', 8, ANALOG)>, /* LCD_B6 */
<STM32_PINMUX('D', 8, ANALOG)>; /* LCD_B7 */
};
};
Then I think these lines will also be needed to build:
/* USER CODE BEGIN ltdc */
pinctrl-names = "default", "sleep";
pinctrl-0 = <<dc_pins_a>;
pinctrl-1 = <<dc_sleep_pins_a>;
Hope it helps,
Regards,
Kevin
In order to give better visibility on the answered topics, please click on 'Select as Best' on the reply which solved your issue or answered your question. See also 'Best Answers'
2022-03-27 09:49 PM
Do anyone encounter this blacklight issue before?
Any suggestions are welcome.
The issue only happened on the HDMI display. The DSI display work completely fine.
I have also found this page, but it doesn't help much
https://wiki.st.com/stm32mpu/wiki/How_to_display_on_HDMI#FAQ
2022-04-06 08:34 PM
Hi,
It has been almost 3 weeks since the original post, but I have yet to receive any response...
last week I tried the starter package to see if the hdmi display correctly. It does, but I noticed two things.
This suggests to me that the hdmi backlight error is not fatal, and it is not the root cause that cause my hdmi display to fail.
The only difference between my project and the starter package is that I have edit the config file to use the cubeMX generated dts.
So it should be either:
Can any st employee take a look at it? @Kevin HUBER
Regards,
Leung
2022-04-07 08:50 AM
Hello @WLeun.3 ,
Sorry for the delay, I have your post opened since several days, but I unfortunately was not able to work on it.
It is interesting to read that you are able to use the HDMI with the starter Package.
But this is weird that you also have the FAILED backlight error with the starter Package. I will make some tests on my 157F-DK2 to help you.
Do you made the test with the Starter Package on the same display?
Do you already read this wiki page? https://wiki.st.com/stm32mpu/wiki/How_to_display_on_HDMI
After a first read of your mx dts, I didn't find something wrong, but I will investigate more.
In your bootlog, you have a warning related to your power that is not providing enough current:
****************************************************
* WARNING 500mA power supply detected *
* Current too low, use a 3A power supply! *
****************************************************
I don't think this is related to your error, but it can causes some problem with the peripherals. Please be careful to use a power supply of 5V and at least 3A.
The error that I can see in your Bootlog is:
[FAILED] Failed to start Load/Save …s of backlight:5a000000.dsi.0.
This error is related to the DSI screen, but if you are only using the HDMI, it can be normal. Did you unplug the dsi screen?
Please can you test on another screen with a resolution more standard than 320x1480?
Regards,
Kevin
2022-04-07 08:58 AM
Hi again @WLeun.3 ,
Regarding how to remove the GTK Demo from the distribution package, I don't remember it right now, but I come back when I have the information.
Waiting my answer, you can have a look at the script that launch the demo at start, which is "/usr/local/demo/demo_launcher.py" and this script is called by "/usr/local/weston-start-at-startup/start_up_demo_launcher.sh"
Regards,
Kevin
2022-04-07 10:08 AM
Hi @WLeun.3 ,
We found that the LTDC pins are missing in your mx dts. This is normal because by default CubeMx generates the configuration for having the mode DSI on LTDC.
On the starter package, we made a custom DTS to support the HDMI and the DSI mode at the same time.
Please take example on this page to modify your CubeMx DTS:
You have to at least add the ltdc pins like in the wiki or in the file "stm32mp15-pinctrl.dtsi" on the Developer Package.
ltdc_pins_a: ltdc-0 {
pins {
pinmux = <STM32_PINMUX('G', 7, AF14)>, /* LCD_CLK */
<STM32_PINMUX('I', 10, AF14)>, /* LCD_HSYNC */
<STM32_PINMUX('I', 9, AF14)>, /* LCD_VSYNC */
<STM32_PINMUX('F', 10, AF14)>, /* LCD_DE */
<STM32_PINMUX('H', 2, AF14)>, /* LCD_R0 */
<STM32_PINMUX('H', 3, AF14)>, /* LCD_R1 */
<STM32_PINMUX('H', 8, AF14)>, /* LCD_R2 */
<STM32_PINMUX('H', 9, AF14)>, /* LCD_R3 */
<STM32_PINMUX('H', 10, AF14)>, /* LCD_R4 */
<STM32_PINMUX('C', 0, AF14)>, /* LCD_R5 */
<STM32_PINMUX('H', 12, AF14)>, /* LCD_R6 */
<STM32_PINMUX('E', 15, AF14)>, /* LCD_R7 */
<STM32_PINMUX('E', 5, AF14)>, /* LCD_G0 */
<STM32_PINMUX('E', 6, AF14)>, /* LCD_G1 */
<STM32_PINMUX('H', 13, AF14)>, /* LCD_G2 */
<STM32_PINMUX('H', 14, AF14)>, /* LCD_G3 */
<STM32_PINMUX('H', 15, AF14)>, /* LCD_G4 */
<STM32_PINMUX('I', 0, AF14)>, /* LCD_G5 */
<STM32_PINMUX('I', 1, AF14)>, /* LCD_G6 */
<STM32_PINMUX('I', 2, AF14)>, /* LCD_G7 */
<STM32_PINMUX('D', 9, AF14)>, /* LCD_B0 */
<STM32_PINMUX('G', 12, AF14)>, /* LCD_B1 */
<STM32_PINMUX('G', 10, AF14)>, /* LCD_B2 */
<STM32_PINMUX('D', 10, AF14)>, /* LCD_B3 */
<STM32_PINMUX('I', 4, AF14)>, /* LCD_B4 */
<STM32_PINMUX('A', 3, AF14)>, /* LCD_B5 */
<STM32_PINMUX('B', 8, AF14)>, /* LCD_B6 */
<STM32_PINMUX('D', 8, AF14)>; /* LCD_B7 */
bias-disable;
drive-push-pull;
slew-rate = <1>;
};
};
ltdc_sleep_pins_a: ltdc-sleep-0 {
pins {
pinmux = <STM32_PINMUX('G', 7, ANALOG)>, /* LCD_CLK */
<STM32_PINMUX('I', 10, ANALOG)>, /* LCD_HSYNC */
<STM32_PINMUX('I', 9, ANALOG)>, /* LCD_VSYNC */
<STM32_PINMUX('F', 10, ANALOG)>, /* LCD_DE */
<STM32_PINMUX('H', 2, ANALOG)>, /* LCD_R0 */
<STM32_PINMUX('H', 3, ANALOG)>, /* LCD_R1 */
<STM32_PINMUX('H', 8, ANALOG)>, /* LCD_R2 */
<STM32_PINMUX('H', 9, ANALOG)>, /* LCD_R3 */
<STM32_PINMUX('H', 10, ANALOG)>, /* LCD_R4 */
<STM32_PINMUX('C', 0, ANALOG)>, /* LCD_R5 */
<STM32_PINMUX('H', 12, ANALOG)>, /* LCD_R6 */
<STM32_PINMUX('E', 15, ANALOG)>, /* LCD_R7 */
<STM32_PINMUX('E', 5, ANALOG)>, /* LCD_G0 */
<STM32_PINMUX('E', 6, ANALOG)>, /* LCD_G1 */
<STM32_PINMUX('H', 13, ANALOG)>, /* LCD_G2 */
<STM32_PINMUX('H', 14, ANALOG)>, /* LCD_G3 */
<STM32_PINMUX('H', 15, ANALOG)>, /* LCD_G4 */
<STM32_PINMUX('I', 0, ANALOG)>, /* LCD_G5 */
<STM32_PINMUX('I', 1, ANALOG)>, /* LCD_G6 */
<STM32_PINMUX('I', 2, ANALOG)>, /* LCD_G7 */
<STM32_PINMUX('D', 9, ANALOG)>, /* LCD_B0 */
<STM32_PINMUX('G', 12, ANALOG)>, /* LCD_B1 */
<STM32_PINMUX('G', 10, ANALOG)>, /* LCD_B2 */
<STM32_PINMUX('D', 10, ANALOG)>, /* LCD_B3 */
<STM32_PINMUX('I', 4, ANALOG)>, /* LCD_B4 */
<STM32_PINMUX('A', 3, ANALOG)>, /* LCD_B5 */
<STM32_PINMUX('B', 8, ANALOG)>, /* LCD_B6 */
<STM32_PINMUX('D', 8, ANALOG)>; /* LCD_B7 */
};
};
Then I think these lines will also be needed to build:
/* USER CODE BEGIN ltdc */
pinctrl-names = "default", "sleep";
pinctrl-0 = <<dc_pins_a>;
pinctrl-1 = <<dc_sleep_pins_a>;
Hope it helps,
Regards,
Kevin
In order to give better visibility on the answered topics, please click on 'Select as Best' on the reply which solved your issue or answered your question. See also 'Best Answers'
2022-04-07 09:20 PM
Hi @Kevin HUBER ,
Thanks for your help! And yes, it is the missing LTDC configuration that cause all the troubles. It works perfectly now.
I agree that the backlight error is related to dsi display only. It does not affect my hdmi display and the error exists no matter I plug/unplug the dsi display. The service should instead controllng the backlight of hdmi display, but I am not sure if that is possible/necessary.
For removing GTK demo, the demo_launcher.py and start_up_demo_launcher.sh is only related to the application. How can I remove the "operating system"
and replace it with my own?
Regards,
Leung
2022-04-08 02:46 AM
Hello @WLeun.3 ,
Good news that you are now able to use the HDMI ;).
Regarding you last question, I don't understand what you mean by "operating system".
What you have shared is only the splashscreen of linux (just an image displayed), the GTK demo is no more launched on your board.
What you see is only the Wayland Weston Framework that displays the splashscreen of Linux. Please read this page to have more information about Weston configuration: https://wiki.st.com/stm32mpu/wiki/Wayland_Weston_overview#Configuration
You can already run your personal application / demo or load an image.
Do you mean, that you want to change the default splashscreen image of linux?
This image is managed by the splashscreen layer as I explained in this other question: how-to-enable-the-kernel-splashscreen-on-stm32mp157-board-kernel-54-and-lcd-rgb-interface-
The file "psplash-drm.bb" adds the file psplash-drm-start.service to your filesystem.
The two default images used for the splashscreen are in the same folder:
The names of the pictures to use is in the Makefile of the psplash-drm folder.
Hope it helps,
Regards,
Kevin
In order to give better visibility on the answered topics, please click on 'Select as Best' on the reply which solved your issue or answered your question. See also 'Best Answers'