Qt for MCUs 2.8 LTS released

We are thrilled to announce the release of Qt for MCUs 2.8 LTS, which comes with new exciting GUI building blocks, improvements to build tools workflows, extended support for Infineon TRAVEO T2G microcontrollers, and much more. Qt for MCUs 2.8 is a Long-Term Support version, offering increased stability throughout your development. As such, it is the preferred version for all new projects. Standard Support will be available for 18 months, until December 2025.

You can find the complete list of changes for this version in the changelog. Continue reading for the highlights of this release.

Dynamic layouts

We added the Qt Quick Layouts module to Qt Quick Ultralite, enabling the easy creation of resizable user interfaces.

This addition is directly adapted from the Qt 6 module with the same name and contains a subset of its APIs: the Layout, GridLayout, ColumnLayout, and RowLayout QML types. Behavior and naming are compatible to enable code reuse between applications targeted at both MCU and non-MCU platforms.

Unlike the Row and Column types, which can only arrange the position of their child elements, the layouts can also resize them. This makes them particularly well-suited for resizable and responsive components, often needed when targeting different screen resolutions with one design.

A new layouts example has been added, providing a reference for integration in your applications.

Virtual keyboard (Technology Preview)

We added a feature-rich yet lightweight virtual keyboard component, with planned support for all the most common languages.

Text or numerical input is one of the most common UI features in all types of applications, especially on touchscreen-equipped devices. Creating a flexible virtual keyboard that supports various languages is no small feat. To let you focus on the creation of your product rather than writing complex components such as this one, we added the Qt Virtual Keyboard module to Qt for MCUs, with a subset of features and APIs from its bigger sibling in Qt 6.

The feature is released as Technology Preview in Qt for MCUs 2.8 LTS. It has built-in key layouts for English, German, and numerical input, as well as features such as alternative character view, dynamic language switching, and scalability to different sizes. To pair with this new component, we added the TextInput QML type, which can also handle hardware keys.

In future releases, the module will be upgraded to Stable, and both the virtual keyboard and TextInput components will receive additional features such as support for many other languages, full style and layout customization, and text selection.

Using it in your applications is simple, you can find out how in the new text_input example.

Quicker workflows with 3rd party build tools

The qmlprojectexporter tool has been updated with new export options, enabling the creation of self-contained CMSIS-Pack and CMake packages from a Qt for MCUs project.

While Qt Creator provides a ready-to-use environment to build an application with Qt for MCUs - particularly convenient for prototyping on evaluation boards or to develop the GUI using the desktop simulator - many users complement it with other embedded IDEs or build systems when developing the complete application for the final target device. To ease this workflow, we added export options in Qt tools to generate packages that can then be imported into other projects, for example for NXP MCUXpresso IDE, Zephyr, or ESP-IDF.

mcu_3rdparty_workflow

CMSIS-Pack

A CMSIS-Pack generated by qmlprojectexporter contains everything to build your Qt for MCUs GUI inside an IDE supporting this standard. It contains the Qt Quick Ultralite headers and libraries, the sources of the target platform, and logic to generate or re-generate the GUI sources whenever the graphical assets change (QML, images, fonts).

You can learn how to use this option on this page and in the updated Quick Start Guide for NXP i.MX RT1170.

CMake package

With the new CMake export option, you can create a self-contained package including the same elements as in a CMSIS-Pack but for any CMake-based project, which doesn’t need to use Qt for MCUs’ own CMake build system. This enables easier integration with, for example, Zephyr or ESP-IDF.

You can learn more about this option in this guide.

In future releases, we will add further options to offer a similar workflow for tools such as Infineon Modus Toolbox, STM32CubeMX/IDE, Renesas e² studio, IAR Embedded Workbench, or Arm Keil MDK.

Extended support for Infineon TRAVEO T2G

The platform port for the Infineon TRAVEO T2G family of microcontrollers has been extended with a reference integration of hardware-accelerated JPEG decoding and support for the new 4M Lite Kit board.

TRAVEO T2G  Cluster 4M Lite Kit

The TRAVEO T2G 4M Lite Kit is a new low-cost evaluation board from Infineon based on the CYT3DL microcontroller. It features an on-board USB debug probe and an RGB display output over USB, which enables graphics to be streamed to the host computer. This is particularly convenient during GUI prototyping and development, as it eliminates the need for a physical display and can be configured for different display resolutions. The capture below shows the VLC media player displaying the stream of a 1280x480 application rendered on a 4M Lite Kit.

This board has been added as a Tier-2 target in Qt for MCUs 2.8 LTS. Instructions on how to use the display-over-USB features are available here.

Hardware-accelerated JPEG decoding

Both the CYT4DN and CYT4EN microcontrollers include an image decoder capable of decoding high-resolution JPEG frames in real time. This enables use cases such as startup animations, pre-rendered 3D animations, or graphics streaming from a different device, while keeping memory usage to a minimum.

The imagedecoder example in Qt for MCUs has been extended with an integration of the TRAVEO T2G JPEG decoder, providing a reference on how to use it as a backend for QML Images and AnimatedSprites.

And more!

We are continuing our efforts to make Qt Quick Ultralite even lighter by introducing additional optimizations to the C++ code generated from QML. This decreases the size of the binaries’ .text section and reduces flash memory usage overall. As a result, the same application compiled with Qt for MCUs 2.8 LTS is, on average, 1% to 3% smaller compared to 2.7 and 4% to 10% smaller compared to 2.5 LTS.

Version 3.1.1 of the Monotype Fontmap Editor tool is now included with Qt for MCUs. It adds a new ‘subsetting’ feature to remove unused glyph data from fonts used with the dynamic Spark font engine. This can save up to several megabytes of flash memory when a limited set of characters is needed from certain application fonts.

Last but not least, the feature to configure the display rotation, introduced as Technology Preview in Qt for MCUs 2.7, has been upgraded to Stable. New optimizations to minimize runtime performance degradation have been added and documentation has been improved.

What's Next

The last feature release of 2024 will be Qt for MCUs 2.9 in November. Some of the highlights we are planning to include are:

  • Qt Quick Ultralite for embedded Linux, a lighter alternative to big Qt for SoC/MPU-based systems with limited resources,
  • Improvements to the virtual keyboard, with additional languages and customization support,
  • Integration with Zephyr RTOS and build system,
  • The list type for QML.

Other exciting new features will be available throughout next year, so stay tuned for updates.

Get Qt for MCUs 2.8 LTS today!

If you’re an existing Qt for MCUs developer, you can download Qt for MCUs 2.8 LTS from the Qt Maintenance Tool, located at the root of your Qt for MCUs installation directory. If you're looking to dive in for the first time, click here to get started. Either way, we hope you enjoy the new features and improvements, and as always, we would love to hear your feedback and feature requests in the comments!


Blog Topics:

Comments