Qt for MCUs 2.1 released

We're excited to announce that Qt for MCUs 2.1 is now available! This release offers new options to decrease your application's footprint, a new text rendering feature, and new examples and documentation to help you during development.

The complete list of changes included in this version can be found in the changelog in the online documentation. Continue reading for more information on the content of this release.

Lighter applications

RLE image compression

Up until now, uncompressed RGB and PNG formats were available for images included in a Qt Quick Ultralite application, using the built-in resource system. The uncompressed RGB format is fast, but has a very high flash memory cost. The PNG format significantly reduces flash footprint due to its high compression ratio, but requires a potentially large RAM cache to hold the decompressed data. There is now a third alternative that offers both low flash and low RAM footprint: RLE compression.

RLE, for Run-Length Encoding, is a lossless data compression technique that is lightweight and offers decompression time fast enough to blend images directly into the framebuffer without intermediate decompression in RAM.

rle_pngThe compression ratio is good for images with many successive pixels of the same color.

rle_png_compression

Some hardware platforms like Renesas RH850 have hardware acceleration for this format, which means there is no performance penalty compared to using uncompressed data. On most other platforms, a CPU-based implementation is used.

Note that each image in an application can use a different format. Uncompressed, RLE, and PNG can all be combined in the same application. The new RLE format will often be the best option when both flash and RAM are scarce.

You can read more about this new feature on this documentation page.

Lower code size

We've improved how QUL QML compiler converts bindings to C++, resulting in a significant reduction in application code size. Exactly how much depends on the compiler toolchain and the application, but you can expect a decrease of up to 15%. No modifications are required in your application, just rebuild it with version 2.1 to decrease its ROM footprint.

Improved display of dynamic text strings

Text overflow handling

Microcontroller-based devices usually have low to medium resolution displays, with little space for GUI content, and displaying long strings of text in their entirety is almost never possible. There are many cases where text can overflow its reserved space, for example when using dynamic data models with "unpredictable" text strings or when having translations in several languages. When this happens, UIs should appropriately shorten the text while not altering its original meaning, and provide a clue to the user that part of it is missing using the ellipsis character: ... (three dots).

elide

Qt Quick Ultralite now supports automatic truncation of overflowing text with the Text.elide property. The API and behavior is the same as in standard Qt Quick, it works with both single and multi-line text, and the implementation takes into account language specifics such as text direction.

More help during development

Application restart example

Do you need to re-initialize the GUI in your application after an unrecoverable error? Maybe free all graphics resources from RAM when the GUI is not required? Or switch between different applications for different device modes? If you are unsure of the way to stop and restart a Qt for MCUs application on a microcontroller device, we've added a new example to save you time and avoid pitfalls. You can also read the documentation page for a step-by-step guide.

Documentation improvements

Besides a new style for online documentation and a new sidebar for quick access to important pages, we've added new content to help you before and during development. A new overview page provides key information you might need before starting a new project, and the Framebuffer Requirements page will give you valuable insights about framebuffer configuration in your application.

What's next

The next feature update is planned for June with version 2.2. It will be the first Long-Term Support release of Qt for MCUs, providing you with standard support and bug fixes for 18 months from the release date. The more important new features will include automatic line wrapping in QML TextAPIs for Qt runtime error handling, added support for the IAR compiler for Infineon Traveo II, and a new performance and footprint guide to help you get the most out of Qt for MCUs.

Get Qt for MCUs 2.1 today!

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