Garbage on display before showing the very first frame

What do you want to achieve?

smooth startup of my display

What have you tried so far?

several settings in lv_conf.h

Screenshot or video


Others

  • SquareLine Studio version: latest
  • Operating system: macos
  • Target hardware: WT32-SC01-PLUS

The problem started to happen when I moved to 8.x LVGL with the latest SquareLineStudio. As you can see in the attachmen, before the very first frame there is a noise garbage on the screen showing for very short time. Could you help me what went wrong? Previously it worked without this, with no flicker, no garbage. Thanks in advance.

The noise is probably the original content of your display’s framebuffer. As soon LVGL starts up and the first frame is drawn it replaces the random data with the intended data. Possibly your LVGL and driver initialization takes more time now, and a possible solution would be to delay turning on the backlight, keeping it dark until the 1st frame is rendered.

yes, that was my first assumption. But sometimes the ghost contour of second and the third screen elements appears in the noise. If there is only one screen, then no garbage appears.
For a quick fix i moved backlight switch to the very end of setup(). It helped a bit, so the garbage can’t be seen, but still there is a white flash on the screen.

...
  tft.setBrightness(255);
  xTaskCreatePinnedToCore(core0Task, "ScreenTask", 4096, NULL, 1, NULL, 0);
...

I also added a lovyangfx draw black when initializing the display, did not help so my guess is the flashing is coming from lvgl.

update: i disabled backlight, and the flash is still there. The content of the Screen1 flashes for a second (turning on the backlight) then disappears everything (with backlight off). So its definetly the SquareLine generated code what is causing this.

update2: nevermind. I disabled fade out effect on the Screen1 and updated lovyangfx to the latest and the flash disappeared.

1 Like