Qt for MCUs 1.5 released

A new release of Qt for MCUs is now available in the Qt Installer. If you are new to Qt for MCUs, you can try it out here. Version 1.5 introduces new platform APIs for easy integration of Qt for MCUs on any microcontroller, along with an in-depth porting guide to get you going. Additionally, it includes a set of C++ APIs to load new images at runtime into your QML GUI. As with every release, 1.5 also includes API improvements and bug fixes, enhancing usability and stability.

You can find the full list of changes in the changelog which is available in the online documentation. Read on for more information on the main new features.

What's new

Platform APIs

There are many microcontrollers out there for you to consider when starting a new embedded project, even if they are not all necessarily a good fit for devices with a high resolution display and advanced GUIs. To ensure you can use Qt for MCUs on hardware adapted to advanced graphical applications, we will continuously be adding support for new MCUs in future releases. But if you decide to go with a chip that is not on our supported list, we want to make it as easy as possible for you to port Qt Quick Ultralite on that platform. That is why we are introducing in Qt for MCUs 1.5 a whole new set of APIs enabling that integration.

It consists mainly of two parts:

  • The Platform namespace exposes the different abstract functions you must implement. These are the functions that are called by the Qt Quick Ultralite engine to interface with the hardware. There are 18 of them to implement at most, some of them being optional.
  • The PlatformInterface namespace provides all the APIs you need in your platform adaptation code to call back into the engine, for example to handle touch events received from the touch screen driver or to trigger an engine update based on a timer or by other means. 

You won't always have to implement all platform functions when porting Qt Quick Ultralite to your hardware. The Qt for MCUs SDK includes the source code of all our platform adaptations, which means that if you need to adapt Qt Quick Ultralite to a custom board based on one of our supported MCUs, or if you need to port to a new MCU from a supported family (for example STM32H7 or NXP i.MX RT), you will usually only have to make minor changes to one of our adaptations.

If you want to save even more time on platform integration, you can always get in touch with our professional service team to do that work for you.

Platform Porting Guide

Having simple platform APIs to enable you porting Qul to your hardware is nice, having in-depth documentation to guide you through all the porting steps is even better! The 1.5 documentation includes a detailed porting guide to help you get going. It covers everything from prerequisites, to getting graphics on the screen, to using your platform in Qt Creator. You can read it there.

To help you further, the SDK now also comes with an example platform, a dummy adaptation that serves as a simple reference. It is particularly useful as a starting point when porting to a whole new MCU.

Image and ImageProvider C++ APIs

We have got feedback from many of you that an API was needed to display images loaded at runtime. Until Qt for MCUs 1.4, only static images could be displayed in a Qt Quick Ultralite GUI by explicitly adding them to the Qt resource system in your project file. In other words, images that are known at compile-time.  But there are many cases where this is not sufficient, for example you might want to display images downloaded from a remote server, read from a file system on a removable media device or simply flashed to a reserved memory space after the device has been deployed.

To enable these cases, we added the Image C++ class. It is used to wrap raw image data loaded by your application code and can be set as source of a QML Image. For advanced image loading logic, you can combine it with the ImageProvider C++ class. Both classes are modeled after the QImage and QuickImageProvider APIs from Qt and have similar semantics. 

Here is a simple application demonstrating yet another use case, integrating video playback:

ezgif-4-9fbe6e889059Video sample: (c) copyright 2008, Blender Foundation / www.bigbuckbunny.org

Other changes

Additional smaller features, changes and bug fixes made it into 1.5. You can read about all of them by following this link.

Try it now

To get the most out of Qt for MCUs, we recommend to always use the latest version. If you already have a previous version installed, simply run the Qt Maintenance Tool located in your Qt for MCUs installation folder and select version 1.5 to add it to your installation. If you are new to Qt for MCUs and would like to give it a try, you can request a free evaluation here.

Happy coding!


Want more free training resources related to embedded development? Qt is running a series of free-to-join online events, focusing on embedded development, desktop development and design. To learn more, click here 

Installer Qt Goes Virt Embedded 2


Blog Topics: