Qt for MCUs 2.5 LTS released

We are thrilled to announce the release of Qt for MCUs 2.5 LTS. This is in line with our promise to deliver stable and robust long-term support releases to help reduce your development and maintenance costs. 

Screenshot (8)

This release comes with a blend of new features and improvements, and as always, support for new microcontrollers.

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

Vector graphics on all platforms

QtQuick Ultralite Shapes is now supported across all platforms. Until now there was a limitation on the Shapes module, which was only enabled on platforms with hardware vector graphics acceleration such as Infineon Traveo II or NXP i.MX RT1170. Now every  Qt Quick Ultralite platform port unlocks this feature with a software backend, which is a fall back implementation when hardware acceleration is not available. 

Storing the representation of a particular shape as a set of 2D paths instead of a rasterized image can often significantly reduce flash usage, albeit sometimes at the cost of decreasing runtime performance (framerate).  Shapes also add custom drawing capabilities to Qt Quick Ultralite, making it more versatile and apt for use cases like curved progress bars, curved roads, and drawing elements adapted to round displays such as on a smartwatch.

Future releases of Shapes will have a gradient fill support and further drawing performance improvements. 

Performance and memory footprint improvements

Introduction of new features always bears risk of performance compromise. We are continuously working on performance improvements to deliver more Frames Per Second (FPS) with fewer required bytes in every version.

Performance improvements

In this release, we have improved the error handling mechanism in the core framework to reduce overhead in critical paths and in turn improve framerate by 10% in some of our reference demos.  

The Text Cache performance has been tweaked to efficiently blend individual alpha maps, which boosted the framerate by 20% in our standard textcache tests. 

Improvements to image sequences

The AnimatedSprite type has been further improved in several ways, both performance-wise and feature-wise, the following are some of the highlights

Playback control: we have enabled more control over the playback of the sequence and introduced the capability to interrupt and resume the playback sequence. The AnimatedSprite now has the paused() boolean property which enables the user to know the current playback state and manually change the current frame.

Flash footprint reduction: identical frames in a given sequence are not duplicated in Flash anymore. A single reference is stored and re-used for each occurrence in the sequence.

Performance optimizations: a new resource property lets you choose which optimization strategy to use for a given image sequence, giving you flexibility to find out the best tradeoff between performance and memory footprint depending on your device and application characteristics.

For the next release, we will improve optimizations available for image sequences, in terms of performance and ROM size, so that low-end MCUs can have complex animations/sequences which would require a large number of frames.

New Platforms!

Qt for MCUs now supports the ESP32-S3-Korvo-2 in addition to S3-Box kit running FreeRTOS. On this platform, Qt for MCUs delivers robust performance on an MCU that does not have a dedicated graphics accelerator. Please contact Qt Group to get access to these platform ports.  

 

The new version of NXP 1060 EVKB is supported now as a reference and accessible through the online installer or the Maintenance tool, the previous version of the evaluation kit is supported only till 2.4. 

More updates!

To support a wide range of embedded compilers and be compliant with legacy devices, Qt for MCUs is now fully compliant with the C++03 standard. This will enable you to use older compiler versions that are certified by the BSP provider for a particular platform.

The qmlprojectexporter tool has been extended with a new feature to generate a base project for different build systems and IDEs from a given QML project, to help set up your favorite host development environment in no time. It supports CMake and GHS MULTI IDE for now, but more embedded IDEs will be supported in future versions.

Our Renesas RH850/D1M1A reference port now supports LVDS display output. Documentation and instructions are updated to enable easy configuration of custom displays. 

MCU SDK updates

  • All STM32 reference ports have been updated to support the latest version of STM32Cube SDKs
  • NXP reference ports now support NXP MCUXpresso SDK 2.13
  • Infineon Traveo II reference ports are now compatible with Infineon Graphics Driver v1.21 and v2.1.0 for 4M and 6M variant respectively
  • The Renesas RH850/D1M1A reference port now supports RGL v2.1

Check out the release changelog to see the complete feature list.

What's Next

The next feature release will be Qt for MCUs 2.6 in November, and our endeavor to enable more of Qt's Design and Development workflow on microcontrollers will continue.  We will introduce new performance APIs to easily collect and visualize benchmark data for applications running on the target device, tools to effortlessly estimate the size of graphical assets in your application, support for loading graphical assets placed in embedded file systems, enablers for developing Qt for MCUs applications in an AUTOSAR environment, and much more! 

Get Qt for MCUs 2.5 LTS today!

If you’re an existing Qt for MCUs developer, you can download Qt for MCUs 2.5 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