Qt for MCUs 2.6 released
Qt for MCUs 2.6 has been released! Following up on the previous 2.5 LTS release, 2.6 builds on key performance improvements and adds some valuable features keeping focus on the key needs and requirements of Automotive and Consumer Electronics devices.
You can find the complete list of changes for this version in the changelog. Continue reading for the highlights of this release.
New QML APIs for Qt Quick Ultralite
We have extended the core capabilities of Qt Quick Ultralite by adding new QML APIs directly adapted from big Qt, to simplify the implementation of your application's features and to increase the reusability of existing code written for non-MCU platforms. These are:
- String.arg(), to easily construct parametrized strings
- Object alias properties, to surface a component's internal object
- qsTrId(), to simplify the management of large numbers of translated texts. See also the Text ID based translations documentation page from Qt6.
- Partial rich text support, to embed and layout images or icons inside a Text element
- New animation easing curves, for unlimited animation possibilities
Performance at heart with new benchmarking features
The availability of comprehensive performance data is key in the software development process, to make key decisions and adjust the design or implementation, and ultimately attain the highest level of performance with the lowest memory footprint. The QulPerf QML type has been extended with a new set of metrics to conveniently access and display the framerate, CPU usage, heap memory usage, and stack memory usage from a running application.
Additionally, some of our demos are now enabled with a new benchmarking mode, to help assess the performance level of a custom platform port against our reference tier-1 platforms, or for performance regression testing when upgrading your application to a newer version of Qt for MCUs.
The benchmark enablers can easily be integrated into any Qt for MCUs application to create your own benchmarks and record the performance metrics over a configurable time period.
File system support (Tech Preview)
In many cases on microcontroller-based devices, image assets are stored in flash memory and retrieved by the Qt for MCUs engine through direct memory addressing, however, modern-day microcontrollers often have external storage with file-system support and it can be convenient for a QML application to pick up assets from the filesystem to enable dynamic use cases. New filesystem interfacing APIs are available to register and integrate a filesystem of your choice in the application and enable the Qt Quick Ultralite engine to find and display images located in it. A reference implementation is provided for FatFS.
Image assets can now be referenced through the "file://" prefix in QML. This will enable the replacement of image assets dynamically on the device for requirements such as replaceable GUI themes without change to the device firmware. You can check the new file-loading example available in the Qt for MCUs installation folder for a reference on how to implement it in your application.
As a next step for a stable release, we will further refine the file loading feature and integrate it with custom image format loading and decoding capabilities.
Automotive tooling integration for GHS MULTI IDE
Qt for MCUs strives to be a platform that works seamlessly with established developer workflows and tools. Green Hills MULTI IDE is one of the preferred tools for automotive projects and with this new feature, we enable seamless workflows between Qt and Green Hills tools. The qmlprojectexporter tool now supports the creation of MULTI projects with all the Qt for MCUs elements pre-integrated and can automatically update the MULTI project when QML GUI content has changed. You can also extend existing MULTI projects with Qt for MCUs, even if they have not been initially generated by qmlprojectexporter.
More information about this feature is available in the Generating GHS Multi IDE projects documentation page.
AUTOSAR Classic support
As multi-ECU-driven and software-defined vehicles running on AUTOSAR classic are adapting to touch screen-based displays, e.g., for Instrument Clusters and HVAC displays, Qt has been working with customers and AUTOSAR vendors to understand the requirements of GUI applications running in a safe AUTOSAR Classic architecture, and offer a robust and proven integration of Qt for MCUs to such systems.
With Qt for MCUs 2.6, the first AUTOSAR platform port of Qt for MCUs for the Renesas RH850/D1M1A automotive platform is released. The complete Qt stack is integrated as a Complex Device Driver within the AUTOSAR Classic architecture and is tested with industry-standard tooling solutions for AUTOSAR. You can glance through our documentation to understand more on this integration. A new minimal instrument cluster example has been introduced to demonstrate the integration of C++-based Qt for MCUs APIs with the C-based AUTOSAR world for common vehicle status data parameters.
In the future, we will be working towards enabling more automotive MCUs with Qt on AUTOSAR. We have also explored how Qt for MCUs can support AUTOSAR/CAN data simulation integration on the host PC. A separate blog post to tell more about this solution will be available soon!
New platform integrations
Several new microcontroller platforms have been ported to Qt for MCUs.
Qt and Nuvoton have worked together to enable three new platforms:
- Gerda 4L and Gerda EINS series of automotive-focused MCUs running µITRON 4.0
- NuMaker-HMI-N9H20 boards based on Arm9 MPUs running bare metal
Special capabilities like 2.5D transformations acceleration and other advanced features make Qt for MCUs a perfect choice on this platform.
Support for the GP3285xx series of microcontrollers from Generalplus is now available as tier-3 platform.
An experimental port is now available for Boot2Qt Linux packages for NXP i.MX6 and STM32MP157 series. This gives more flexibility in choosing the right Qt GUI solution on Linux-based systems with limited memory resources.
Please contact The Qt Company through our Support Center to get access to these platform ports.
Code generation optimizations are introduced to reduce redundancy in generated C++ code and in turn reduce the .text section size by 1% to 8% for most applications, reducing overall ROM/flash requirements.
Some improvements have been made in the AnimatedSprite implementation to find and optimize multiple unique areas between frames and in turn further decrease the required flash footprint to store multiple frames for displaying complex animations like boot-up sequences.
All tier-1 platform ports have been upgraded to support the latest hardware vendor SDK versions.
Check out the release changelog to see the complete feature list.
Qt for MCUs 2.7 will be available in March next year and we plan to continue improving our framework by introducing new features and performance improvements. Some of the exciting features expected to be part of future releases are: a full-featured virtual keyboard, static fullscreen GUI rotations, gradients, HW-accelerated JPEG, support for custom image decoders, CMSIS-packs, and many more!
We will continue our efforts to make Qt Quick Ultralite always smaller in size, as well as improve our porting guide so that enabling newer platforms can be done in a breeze!
Get Qt for MCUs 2.6 today!
If you’re an existing Qt for MCUs developer, you can download Qt for MCUs 2.6 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!
Subscribe to our newsletter
Try Qt 6.6 Now!
Download the latest release here: www.qt.io/download.
Qt 6.6. is a feature release with focus on improving UX capabilities including responsive UI technology and the Qt Graph module.
Check out all our open positions here and follow us on Instagram to see what it's like to be #QtPeople.