Qt for MCUs 1.4 released

A new release of Qt for MCUs is available as of today in the Qt Installer. If you are new to Qt, you can try it out here. Version 1.4 introduces a new font engine that can display a wider range of text without bloating the memory footprint. The release 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

With Qt for MCUs 1.4, we address what is usually the main concern when designing an embedded system running on a microcontroller: memory footprint. The limited amount of RAM typically available in these systems often imposes strong limitations to what can or cannot be done on the GUI side. This is particularly true for text rendering. Displaying high-quality text with multiple fonts, at different sizes and/or in multiple languages can be a real challenge, or even impossible in some cases with the traditional approach to text rendering on MCUs. Qt Quick is all about enabling you to create appealing UIs, and text plays a key role in this respect, that is why we integrated to Qt for MCUs the best font engine specifically designed for resource constrained environments.

Monotype Spark™ Font Engine

Besides offering the world's largest font library, Monotype provides an efficient and high-quality font rendering engine for embedded devices, Monotype Spark. It is integrated into Qt Quick Ultralite as a backend to the QML Text API and comes as an additional option to our pre-existing so-called "Static" font engine. If you already have a working Qt for MCUs application, no extra code is required to switch to the new engine. You only need to configure your project to use Spark and if you use multiple fonts, bundle them into a single fontmap file.

So what are the differences between the Static font engine and the Spark font engine, and how should you choose one or the other? To put it simply, feature-wise they both offer similar capabilities. However, while the Static font engine is optimized for speed, the Spark font engine is optimized for size. It is also worth noting that in many cases, the size gains from Spark are far greater than the speed gains from the Static font engine.

To illustrate this, let's have a look at a few benchmarks comparing applications with different font configurations.

Binary size numbers combine both RAM and Flash usage. CJK refers to Chinese, Japanese and Korean.

Clearly, using Spark results in a much smaller footprint when several font configurations and/or many characters need to be displayed. While the Static font engine can be a good solution when text usage is limited or when RAM availability is not an issue, Spark is a better solution in all other cases.

A more detailed comparison of both engines is available in the documentation at this page.

The Spark engine comes with a library of Monotype fonts optimized for embedded devices that cover all the most widely used languages, but it can also load any TrueType font. To install it and start using it, you will need to select the "Monotype Spark Support" component under the platform of your choice in the Qt Installer.


Other changes

We ported Qt for MCUs to a new MCU, the upcoming i.MX RT1170 from NXP. Support for the evaluation kit is currently in Technology Preview but not available yet for download in the Qt Installer. To evaluate Qt on this platform, contact us to request access to the platform package.

Qt Design Studio

Qt Design Studio is a UI design and development tool that enables designers and developers to rapidly prototype and develop complex UIs. Both designers and developers use Qt Design Studio to make collaboration between the two a lot simpler and more streamlined. With the new Qt Design Studio 1.6 release, support for MCU projects has been improved. It offers a design environment compatible with Qt Quick Ultralite and produces QML code that can be directly compiled with Qt for MCUs. To run the project on a MCU board, you can simply open the generated CMake project in Qt Creator IDE and deploy to the device from there.

To get an impression of the tool capabilities, you can watch this video, go to the product page or read the online documentation. If you are new to Qt, you can try it out here. 

Blog Topics: