Qt GUI on STM32: Building Efficient Embedded Applications

Qt QML development
2025-03-13
6 minutes
Qt GUI on STM32: Building Efficient Embedded Applications

Products from the STM32 family have been a popular target for embedded Qt applications for quite a long time. One of the most popular choices for a very long time was MPU from the STM32MP1 series. The boards in this family feature, among other things, the ability to run full Linux. This simply means convenience and great possibilities for developing advanced embedded systems.

However, after some time in many projects, these boards proved to be insufficient. As experts in Qt development ourselves, we develop embedded systems and their graphical user interfaces that target various boards, and more than once we had problems with the performance of STM32MP1 especially with screens with higher resolution.

At Embedded World 2025 in Nuremberg, STMicroelectronics presented, among other things, the newer STM32MP2 family with our app as an example of developing Qt GUI on STM32 products. We thought it was a great opportunity to introduce you to the world of application development on products from ST.

 

Qt GUI demo by Scythe Studio on STMicroelectronics boothQt GUI demo by Scythe Studio on STMicroelectronics booth

 

Qt on STM32 – More Than Just Pretty Graphical User Interfaces

The STM32 family of microprocessors (MPUs) and microcontrollers (MCUs) offers a powerful platform for embedded development. Combined with Qt, developers can create rich, interactive, and visually appealing graphical user interfaces while leveraging STM32’s energy efficiency and computing power. Qt’s cross-platform nature allows applications to run seamlessly across various operating systems

Qt is a complete graphics framework for creating cross-platform applications and embedded software. It can run on a wide spectrum of devices including low-level microcontrollers, microprocessors, minicomputers, mobiles, and other desktop-grade platforms. Qt also consists of cool tools like Qt Creator or Qt Design Studio that can really speed up your embedded systems development.

In case you don’t know it and its capabilities well, then have a look at our other article on What is Qt and how to create a GUI with it.

Key benefits of using Qt on STM32 devices include:

 

  • Hardware acceleration: Qt leverages OpenGL and Vulkan where available, enabling smooth graphics rendering for really great GUI development.
  •  

  • Scalability: Works on both MCU and MPU architectures, allowing for a broad range of device capabilities.
  •  

  • Rapid development: Qt’s QML and C++ combination speeds up UI/UX development while maintaining performance.
  •  

  • Enormous content: Qt’s content is enormous. I always say that the number of modules and other offerings included in both open-source and Qt commercial licenses is just overwhelming. You have access to not only GUI programming mechanisms but also 3D modules and advanced connectivity features.

 

STM32MP1 vs. STM32MP2: What’s New?

STM32MP2 series was announced in October 2023 and made publically available in 2024. STMicroelectronics introduced it as a deserved upgrade to STM32MP1 addressing performance, efficiency, and new features. If I were to start a new embedded project, I wouldn’t even consider STM32MP1 as the new line is way more future-proof. It truly makes a difference.

 

STM32MP257F-DK, source: https://www.st.com/en/evaluation-tools/stm32mp257f-dk.htmlSTM32MP257F-DK, source: https://www.st.com/en/evaluation-tools/stm32mp257f-dk.html

 

Getting Started with Qt on STM32

I will introduce you to how we usually start working on embedded GUI projects using STM32 products. To start developing with Qt on an STM32 device, you’ll need:

 

  1. Hardware: An STM32MP2 or STM32MP1 development board. If you start a new project I would suggest trying STM32MP257F-DK. It’s a discovery board which is great for prototypes. It’s often the case that our customers after the initial prototyping phase need a custom board with resources, shape, size, and interfaces specific to their product. For example to have a board matching the housing of the device. In such a case we cooperate with reliable partners to design custom carrier boards and prepare suitable Yocto Linux images.
    While evaluation kit setup often includes a display, you should already start the process with one that is as close to possible to your final concept.
  2.  

  3. Software Development Kit (SDK): STMicroelectronics does a truly great job with its documentation. To start you will need to get the SDK for the OpenSTLinux distribution which is described in the ST wiki.
  4.  

  5. Getting Qt: To develop Qt applications you will need the OpenSTLinux Qt extension called X-LINUX-QT which consists of the libraries and sample Qt GUI use cases.
  6.  

  7. Development Environment: You will also need to
    • IDE just like Qt Creator for efficient programming
    • Cross-compilation tools for ARM-based STM32 devices.

 

OS Layer Considerations

STM32MPUs typically run OpenSTLinux, while STM32MCUs use FreeRTOS or bare-metal firmware. Qt can run efficiently on Linux-based STM32MPUs, while Qt for MCUs provides a lightweight GUI alternative for microcontrollers.

Do you need Qt for MCU? Not necessarily. If you are working with an STM32MPU, you can use full Qt as well. However, if your project involves an MCU with limited resources, Qt for MCU provides an optimized way to deliver graphical user interfaces. We explored this in our blog post: Qt for MCU. Remember that Qt for MCU is part of the Qt commercial license offering however, it’s very useful for projects like consumer electronics.

If needed, you can build your own embedded Linux distribution with Yocto based on the meta layers from ST. However, you have to comply with OpenSTLinux licenses.

You can also use a real-time operating system such as FreeRTOS or Zephyr, but let’s skip this part in this article.

 

Embedded Devices in Action: Qt Framework and STM32 Applications

At Embedded World 2025, STMicroelectronics showcased our Brain Viewer Qt application demo at their booth in two locations. This cutting-edge Qt application runs on the STM32MP257, leveraging its enhanced 3D graphics capabilities.

 

Adam Sowa - CTO as Scythe with our demo at ST boothAdam Sowa – CTO as Scythe with our demo at ST booth

 

The Brain Viewer application is a visualization tool that renders a 3D model of the human brain, designed for medical applications. Running on the STM32MP2, it demonstrates:

 

  • Smooth 3D rendering and decent performance.
  •  

  • Intuitive UI/UX built with Qt’s QML framework.
  •  

  • Real-time interaction with medical datasets, highlighting the power of Qt on embedded devices.

You can learn more about our Brain Viewer project here: Brain Viewer 3D Qt GUI app.

 

3D model of the human brain presented in Brain Viewer3D model of the human brain presented in Brain Viewer

 

Looking Ahead. Qt 6 and the Future of STM32 Development

For us, the fact that ST showcased our advanced Qt 3D GUI on their new board inspires and empowers developers at our organization to further develop advanced demos and tighten cooperation with ST and Qt Group company which is our long-term partner.

The boards from ST are most suitable for creating various embedded systems including, in particular, the industrial automation, medical, or consumer electronics sectors.

Write to us if you need support in creating embedded solutions containing GUI in Qt.

Scythe-Studio - Chief Executive Officer

Łukasz Kosiński Chief Executive Officer

Need Qt QML development services?

service partner

Let's face it? It is a challenge to get top Qt QML developers on board. Help yourself and start the collaboration with Scythe Studio - real experts in Qt C++ framework.

Discover our capabilities

Latest posts

[ 95, 134 ]