DISCO-F746NG display Bug

Hello,

I noticed a display bug on a DISCO-F746NG: the image on the display jumps.

Here is a video of the bug with a slightly modified demo program in which I added this function ThisThread::sleep_for(chrono::milliseconds(X));
Sans-titre

We can also see this bug with this example without any modification: DISCO-F746NG_MbedOs_LvGL_example - Example of using the LVGL (8) with the MbedOS (6.… | Mbed

This oddity happens after 1610 seconds and lasts about 70 seconds. This phenomenon seems to repeat itself approximately every 4300 seconds thereafter (I noticed it around 5900 s, 10200 s, 14490 s, 18790 s, 23080 s, 37500 s).

This bug only appears when using certain functions. Here is a list of the ones I was able to identify:

ThisThread::sleep_for(chrono::milliseconds(X));

If we use a Ticker:
ticker ticker1; int MySub(){…;} int main(){…; ticker1.attach(&MySub,Xms);}

LCD_DISCO_F746NG lcd_; lcd_.clear();

GuiBase::clear();

If we use Label label1; label1.Draw(); but not if we use NumericLabel numlabel1; numlabel1.Draw();

if a ButtonGroup is created, ButtonGroup btgroup1; and that we do not call btgroup1.Touched().

I wonder if this is a bug specific to the DISCO-F746NG board? Or if it would also appear on other cards? Is it a hardware or software bug? If anyone has an idea on the matter?

Marc.

Hello,

information overflow!

BR, Jan

Thank’s Jan, I updated my post.

I can agree some strange behavior is visible on the display after approx every 25min from restart.
This example was done by me and it was not updated for a while. It seems for more than year.
But to be honest I am not an expert in display control so I made this just as an example to demonstrante it is possible to do that on Mbed. because I was not able to find any working example with LVGL.

In the LVGL repo in their example for F746 was made an commit and after I aply these change, then it seems the issue is gone, the example is running for more than 2 hours. I updated the example on that occasion - Update MbedOS to 6.16, update LVGL to 8.3.4 and update Notebook URL

BR, Jan

Maybe @JojoS can bring some light.

BR, Jan

I had tried this graphics also and observed the same problem. That was several years ago, I can’t remember if I tried to fix it.
This board is capable of running much more nicer GUI, e.g. lvgl. My (unfinished) HeaterController project is running also on the Disco F746 and uses lvgl. The screenshot is not up to date, now I have some slider gauges, I need to update it on github:

Thank you very much for you reply.
I tried the updated example DISCO-F746NG_MbedOs_LvGL_example - Example of using the LVGL (8) with the MbedOS (6.… | Mbed I confirm that the bug no longer appears there while Ticker and thread_sleep_for( ) are used. I still have to explore the possibilities of this library. :+1:
However, I don’t know how to test the HeaterController project. I seem to find only libraries in the link? :thinking:
Mark.

I have used Mbed-CE for my project and the libraries are included as git submodules.
The complete project can be loaded by

git clone --recurse-submodules <url>

I have to check if all libs are public, I wll update this post when done.

When you are interested in lvgl, check also the editor ‘SquareLine Studio’. There are a few YouTube videos from the lvgl makers and these are very compact and informative.
The lvgl repo contains also simple examples, also worthy to check, lvgl screens can be created also without the SLS editor.
I haven’t checked Jan’s code, but it will work also and you can simply modify screens.

edit:
I have updated my repo so that it works again with F74NG. The recent changes where focussed on the F769NI board and screen resolution is different.
lvgl has a virtual screen size and can scroll if not everything fits. But scrolling is slow, my driver has to be optimized.

I have used this DISCO module a few times over years. I have frequently seen this problem but never got to the root of it.

Thanks for your feedback, thanks to JojoS for his comment on the lvgl library and ‘Square Line Studio’. I found some very interesting web pages on this topic:
For developers - Get started now | LVGL and Welcome to the documentation of LVGL! — LVGL documentation which links to the same pages, in particular the one on Widgets which describes the possibilities of this open and free library. When I have some time, I will test some of these widgets. :grinning:
However, I did not find what “Mbed-CE” corresponds to (for my general knowledge)? I downloaded the “HeaterController” project but I don’t know how to test it on my module? :thinking: Do you know a tutorial for using this type of project? I assume that the site https://github.com/ can contain projects and libraries from various languages and environments?

The example contains official LVGL examples and can be configured at the end of this config file

About Mbed

BR, Jan

Thanks for those links, I went to see what Mbed CE is. I haven’t tried a compatible environment yet, but I’m counting on it.

Following this post, I wanted to successively display the examples included in the LVGL library, this is what I expose on this post: Erase a touch screen or destroy objects with the LVGL library?

Marc.