Webinar Q&A: Graphics on STM32
-
These Q&As are from the webinar with Qt and ST Microelectronics 'Graphics on STM32: tools for embedded GUI design and development' and intended for anyone interested!
Webinar Questions
- Will the source code be available for the demos?
- Are there any online courses? Can you share the link to the June 29-30 course and promocode?
- How can we integrate c/c libraries and our code
- As an embedded design engineer how proficient do I need to be in C for working with QT design studio ?
- Is the "MOC" used for embedded Qt similar to in Desktop/Core Qt?
- I have purchased several graphics demo boards but have never been able to get source. How does one get source for demos.
- what documentation is available to get into Qt on STM32
- Why Qt over something like TouchGFX ?
- Suport for all STM32 family or only Cortex-M7 ?
- You are using QML states rather than screens for new menus. Is there a best practice you recommend?
- Is the Qt for MCU available for Linux OS / Ubuntu?
- I would like to know some typical footprints, for example what is the RAM and Flash requirements on the treadmill application shown on the presentation? As well as other example.
- How much time did you spend in creating the demo covered in this webinar?
- What are the limits in terms of resolution and fps when implementing on MCU rather than MPU?
- Can we use Qt to load images from Sd card and play them in real time with support of transparency between background and loaded image?
- Do you provide integrated testframework for GUI?
-
-
How can we integrate c/c++ libraries and our code
Qt for MCUs applications are standard C++ applications using CMake. To integrate external libraries such as HAL drivers, you would add the include path to the headers, and add the library to your project within atarget_link_libraries()
function call. -
As an embedded design engineer how proficient do I need to be in C for working with QT design studio?
You do not have to know C or C++ at all in order to use Design Studio to design your UI components. C++ would be used by software engineers to connect the UI to back end data such as sensor input or manage a state machine. -
Is the "MOC" used for embedded Qt similar to in Desktop/Core Qt?
MOC is not used for Qt for MCUs. -
I have purchased several graphics demo boards but have never been able to get source. How does one get source for demos.
You can receive access to source code of the demos along with an evaluation license of Qt for MCUs. You can contact your account manager to request an evaluation through the website. -
what documentation is available to get into Qt on STM32
We have great documentation available on https://doc.qt.io/QtForMCUs/. It includes step by step guides to setting up your STM32 Discovery Kit to run Qt for MCU projects. -
Why Qt over something like TouchGFX?
TouchGFX is a fantastic tool for extremely simple UIs. As you progress into more complex and modern looking interfaces, the benefits of Qt and the simplicity of the QML language begin to shine.
As I shared in the webinar, making use of Qt also enables you to quickly scale the same application code up to MPUs with additional capabilities.
The Qt framework is the sole focus of The Qt Company and as such, you are provided with world-class support and stability. -
Suport for all STM32 family or only Cortex-M7?
We have support for the M7, M4, and even some M0 processors. As long as they have Chrom-ART to help accelerate the 2D graphics, we should be able to support them. -
You are using QML states rather than screens for new menus. Is there a best practice you recommend?
I did use States for all my content transitions in the demo. There are a couple of reasons for this. Qt for MCU currently has a limitation that you cannot create QML Components dynamically with the exception of Model/View types like ListView. They must all be declared ahead of time. This is the primary reason why using States to construct your UI content is ideal in MCUs. It is also easier to create and manage different layouts in Design Studio by using States. -
Is the Qt for MCU available for Linux OS / Ubuntu?
We don't have official support for the Qt for MCU runtime on full fledged OSes running on MPUs. However, it is possible to do this if you need a low footprint, software rendered UI and don't require the many other middleware libraries provided with Qt Core. You can contact your Qt Account Manager to discuss this further, but we will typically set up a Professional Services project to build this for your device. -
I would like to know some typical footprints, for example what is the RAM and Flash requirements on the treadmill application shown on the presentation? As well as other example.
The Treadmill application took a total of 2.8 MB of flash. I have not measured RAM usage. Some of the assets will be decompressed at runtime, but all the code is statically allocated, so it should be roughly similar. We have the ability to specify certain assets that should always be loaded from flash or always loaded to RAM so that you have control over your usage. This demo was also running at 800x480 resolution double buffered so the framebuffer uses part of that RAM as well. -
How much time did you spend in creating the demo covered in this webinar?
The initial development took me about 3 or 4 weeks. The UI was mostly complete from the designer, but I needed to create the back end C++ classes and connect them. I also rearranged some of the assets to make them more efficient.
To convert the MCU application into an MPU and add the Multimedia content took around 1 day. -
What are the limits in terms of resolution and fps when implementing on MCU rather than MPU?
That really depends on the power of the MCU vs. the GPU on the MPU SBC. If you take a very low powered MPU without a discrete GPU, your framerate may be significantly lower than an MCU with Chrom-ART. We have UIs on STM32 devices that run near 60 FPS, and others that run closer to 25-30 fps.
FPS also depends on the resolution of the display. Less pixels to render into the framebuffer means less CPU load for each frame.
There are MCUs that run near HD resolutions, so you really have your choice when it comes to that. -
Can we use Qt to load images from Sd card and play them in real time with support of transparency between background and loaded image?
Qt for MCUs does have an ImageProvider class which you can use to render any decompressed image at run time. We support transparency in images as well. -
Do you provide integrated testframework for GUI?
The Qt Company recently acquired the Froglogic Squish GUI testing framework. This framework can be used to test all your Qt Core applications. Qt for MCUs is special and doesn't provide the same back end hooks as Qt Core. However, the Qt for MCUs simulator which runs on your Windows development host can be attached, so you can use Squish to test your UI in the simulated MCU run-time.
-
-
- There are free demo images and source codes available for Qt on STM32 MCUs. A few resource links below. For commercial projects, please contact your Qt advisor or contact us.
- Free demo images: https://www.qt.io/microcontrollers-st
- Examples: https://wiki.qt.io/Category:Learning::Demos_and_Examples
- Libraries: https://marketplace.qt.io/collections/plugins?page=1
- Forum topic: https://forum.qt.io/topic/39733/solved-qt-examples-and-demos-source-code/2
- Contact us: https://www.qt.io/contact-us
- Getting started with 'Qt for MCUs' https://www.qt.io/product/develop-software-microcontrollers-mcu#getstarted
- Yes, the technical training courses are available at the following link. https://resources.qt.io/training However, we are sold out of MCU training courses at this time and will be adding more soon. Please sign up for news on the new schedule by registering for the waitlist on the event pages.
-
-
How can we integrate c/c++ libraries and our code
Qt for MCUs applications are standard C++ applications using CMake. To integrate external libraries such as HAL drivers, you would add the include path to the headers, and add the library to your project within atarget_link_libraries()
function call. -
As an embedded design engineer how proficient do I need to be in C for working with QT design studio?
You do not have to know C or C++ at all in order to use Design Studio to design your UI components. C++ would be used by software engineers to connect the UI to back end data such as sensor input or manage a state machine. -
Is the "MOC" used for embedded Qt similar to in Desktop/Core Qt?
MOC is not used for Qt for MCUs. -
I have purchased several graphics demo boards but have never been able to get source. How does one get source for demos.
You can receive access to source code of the demos along with an evaluation license of Qt for MCUs. You can contact your account manager to request an evaluation through the website. -
what documentation is available to get into Qt on STM32
We have great documentation available on https://doc.qt.io/QtForMCUs/. It includes step by step guides to setting up your STM32 Discovery Kit to run Qt for MCU projects. -
Why Qt over something like TouchGFX?
TouchGFX is a fantastic tool for extremely simple UIs. As you progress into more complex and modern looking interfaces, the benefits of Qt and the simplicity of the QML language begin to shine.
As I shared in the webinar, making use of Qt also enables you to quickly scale the same application code up to MPUs with additional capabilities.
The Qt framework is the sole focus of The Qt Company and as such, you are provided with world-class support and stability. -
Suport for all STM32 family or only Cortex-M7?
We have support for the M7, M4, and even some M0 processors. As long as they have Chrom-ART to help accelerate the 2D graphics, we should be able to support them. -
You are using QML states rather than screens for new menus. Is there a best practice you recommend?
I did use States for all my content transitions in the demo. There are a couple of reasons for this. Qt for MCU currently has a limitation that you cannot create QML Components dynamically with the exception of Model/View types like ListView. They must all be declared ahead of time. This is the primary reason why using States to construct your UI content is ideal in MCUs. It is also easier to create and manage different layouts in Design Studio by using States. -
Is the Qt for MCU available for Linux OS / Ubuntu?
We don't have official support for the Qt for MCU runtime on full fledged OSes running on MPUs. However, it is possible to do this if you need a low footprint, software rendered UI and don't require the many other middleware libraries provided with Qt Core. You can contact your Qt Account Manager to discuss this further, but we will typically set up a Professional Services project to build this for your device. -
I would like to know some typical footprints, for example what is the RAM and Flash requirements on the treadmill application shown on the presentation? As well as other example.
The Treadmill application took a total of 2.8 MB of flash. I have not measured RAM usage. Some of the assets will be decompressed at runtime, but all the code is statically allocated, so it should be roughly similar. We have the ability to specify certain assets that should always be loaded from flash or always loaded to RAM so that you have control over your usage. This demo was also running at 800x480 resolution double buffered so the framebuffer uses part of that RAM as well. -
How much time did you spend in creating the demo covered in this webinar?
The initial development took me about 3 or 4 weeks. The UI was mostly complete from the designer, but I needed to create the back end C++ classes and connect them. I also rearranged some of the assets to make them more efficient.
To convert the MCU application into an MPU and add the Multimedia content took around 1 day. -
What are the limits in terms of resolution and fps when implementing on MCU rather than MPU?
That really depends on the power of the MCU vs. the GPU on the MPU SBC. If you take a very low powered MPU without a discrete GPU, your framerate may be significantly lower than an MCU with Chrom-ART. We have UIs on STM32 devices that run near 60 FPS, and others that run closer to 25-30 fps.
FPS also depends on the resolution of the display. Less pixels to render into the framebuffer means less CPU load for each frame.
There are MCUs that run near HD resolutions, so you really have your choice when it comes to that. -
Can we use Qt to load images from Sd card and play them in real time with support of transparency between background and loaded image?
Qt for MCUs does have an ImageProvider class which you can use to render any decompressed image at run time. We support transparency in images as well. -
Do you provide integrated testframework for GUI?
The Qt Company recently acquired the Froglogic Squish GUI testing framework. This framework can be used to test all your Qt Core applications. Qt for MCUs is special and doesn't provide the same back end hooks as Qt Core. However, the Qt for MCUs simulator which runs on your Windows development host can be attached, so you can use Squish to test your UI in the simulated MCU run-time.
-
-
-
How can we integrate c/c++ libraries and our code
Qt for MCUs applications are standard C++ applications using CMake. To integrate external libraries such as HAL drivers, you would add the include path to the headers, and add the library to your project within atarget_link_libraries()
function call. -
As an embedded design engineer how proficient do I need to be in C for working with QT design studio?
You do not have to know C or C++ at all in order to use Design Studio to design your UI components. C++ would be used by software engineers to connect the UI to back end data such as sensor input or manage a state machine. -
Is the "MOC" used for embedded Qt similar to in Desktop/Core Qt?
MOC is not used for Qt for MCUs. -
I have purchased several graphics demo boards but have never been able to get source. How does one get source for demos.
You can receive access to source code of the demos along with an evaluation license of Qt for MCUs. You can contact your account manager to request an evaluation through the website. -
what documentation is available to get into Qt on STM32
We have great documentation available on https://doc.qt.io/QtForMCUs/. It includes step by step guides to setting up your STM32 Discovery Kit to run Qt for MCU projects. -
Why Qt over something like TouchGFX?
TouchGFX is a fantastic tool for extremely simple UIs. As you progress into more complex and modern looking interfaces, the benefits of Qt and the simplicity of the QML language begin to shine.
As I shared in the webinar, making use of Qt also enables you to quickly scale the same application code up to MPUs with additional capabilities.
The Qt framework is the sole focus of The Qt Company and as such, you are provided with world-class support and stability. -
Suport for all STM32 family or only Cortex-M7?
We have support for the M7, M4, and even some M0 processors. As long as they have Chrom-ART to help accelerate the 2D graphics, we should be able to support them. -
You are using QML states rather than screens for new menus. Is there a best practice you recommend?
I did use States for all my content transitions in the demo. There are a couple of reasons for this. Qt for MCU currently has a limitation that you cannot create QML Components dynamically with the exception of Model/View types like ListView. They must all be declared ahead of time. This is the primary reason why using States to construct your UI content is ideal in MCUs. It is also easier to create and manage different layouts in Design Studio by using States. -
Is the Qt for MCU available for Linux OS / Ubuntu?
We don't have official support for the Qt for MCU runtime on full fledged OSes running on MPUs. However, it is possible to do this if you need a low footprint, software rendered UI and don't require the many other middleware libraries provided with Qt Core. You can contact your Qt Account Manager to discuss this further, but we will typically set up a Professional Services project to build this for your device. -
I would like to know some typical footprints, for example what is the RAM and Flash requirements on the treadmill application shown on the presentation? As well as other example.
The Treadmill application took a total of 2.8 MB of flash. I have not measured RAM usage. Some of the assets will be decompressed at runtime, but all the code is statically allocated, so it should be roughly similar. We have the ability to specify certain assets that should always be loaded from flash or always loaded to RAM so that you have control over your usage. This demo was also running at 800x480 resolution double buffered so the framebuffer uses part of that RAM as well. -
How much time did you spend in creating the demo covered in this webinar?
The initial development took me about 3 or 4 weeks. The UI was mostly complete from the designer, but I needed to create the back end C++ classes and connect them. I also rearranged some of the assets to make them more efficient.
To convert the MCU application into an MPU and add the Multimedia content took around 1 day. -
What are the limits in terms of resolution and fps when implementing on MCU rather than MPU?
That really depends on the power of the MCU vs. the GPU on the MPU SBC. If you take a very low powered MPU without a discrete GPU, your framerate may be significantly lower than an MCU with Chrom-ART. We have UIs on STM32 devices that run near 60 FPS, and others that run closer to 25-30 fps.
FPS also depends on the resolution of the display. Less pixels to render into the framebuffer means less CPU load for each frame.
There are MCUs that run near HD resolutions, so you really have your choice when it comes to that. -
Can we use Qt to load images from Sd card and play them in real time with support of transparency between background and loaded image?
Qt for MCUs does have an ImageProvider class which you can use to render any decompressed image at run time. We support transparency in images as well. -
Do you provide integrated testframework for GUI?
The Qt Company recently acquired the Froglogic Squish GUI testing framework. This framework can be used to test all your Qt Core applications. Qt for MCUs is special and doesn't provide the same back end hooks as Qt Core. However, the Qt for MCUs simulator which runs on your Windows development host can be attached, so you can use Squish to test your UI in the simulated MCU run-time.
@Pendletonic Thank you Corey! Great answers.
-