Qt announced a Linux-driven Qt Automotive Suite based on Qt for Device Creation designed for quickly developing IVI and instrument cluster GUIs.
The Qt Company announced that it will soon ship an automotive stack for developing in-vehicle infotainment (IVI) and instrument cluster GUIs. The Qt Automotive Suite combines a new Application Manager and Qt IVI API library with a customized version of Qt Device Creation and hooks to the Qt Creator IDE. There’s also a modified version of Qt Creator with a new “GammaRay” feature.
The Qt Automotive Suite aims to save time for Qt developers who are currently duplicating efforts by designing their own automotive stacks. As described in a blog announcement from The Qt Company’s Alistair Adams, the project emerged from discussions with automotive- and Qt-focused embedded developers Pelagicore and KDAB. Realizing they could benefit from standardizing on common components for their Qt-based automotive IVI and instrument cluster designs, the three companies announced the platform last October.
Qt Automotive Suite architecture
(click image to enlarge)
The company has now released more details on the open source stack, which will be available in v1.0 form later this month, shortly after the release of v5.7 of the cross-platform Qt development framework. Although originally described as being built on top of the open source GENIVI automotive platform architecture, Adams now says only that “where it makes sense, we will provide backends for GENIVI, QNX and AGL.” The proprietary QNX is the leading OS used in automotive computers, while the Linux Foundation’s AGL (Automotive Grade Linux), has its own, increasingly popular, somewhat GENIVI-like, open source Linux spec.
The Qt Automotive Suite is intended as a way to provide easier tools for OEMs that are increasingly customizing HMI displays to match the interior physical design of cars, writes Adams. This design coordination is growing more important as cars sprout multiple IVI screens and cluster displays. “The tools we are adding will make it faster to try out UI changes and to deploy to the target,” he adds.
The Qt Automotive Suite is built around Qt for Device Creation, an offshoot of the cross-platform Qt that is specifically designed for embedded Linux developers. The software is built around a Boot to Qt embedded workflow stack that enables fast startup on development boards. In the latest Qt 5.6 release, Qt for Device Creation was more greatly aligned with Yocto Project code and meta layers.
The Qt Automotive Suite borrows key components of Qt for Device Creation, including the QML language, the Qt Wayland Compositor, and Qt WebEngine. It shares the software’s class library, and similarly enables remote deployment and debugging directly to a target board.
A new Application Manager component separates the HMI into different functional units that allow independent teams to develop and test code both separately and simultaneously. This approach is also said to ease system updates. The Application Manager handles the complete application lifecycle. It validates the installation package, handles API access permissions, and is capable of shutting down idle applications to conserve resources.
The Qt Wayland Compositor, which is moving to the mainstream Qt framework later this month as a technical preview, coordinates closely with the Application Manager. It’s responsible for the implementation of virtual keyboards and notifications, “as well as compositing the displays from multiple applications,” writes Adams. The QML language, meanwhile, is “used to define the layout and behavior of output from each application.”
The HMI is divided into different applications, for example for media playback, phone call handling, and vehicle status. To help these apps communicate with the GENIVI, AGL, or QNX middleware, there’s a new set of Qt IVI APIs that cover various radios, tuners, media technologies, and other automotive-focused componenets. These standardized APIs are said to enable greater re-use and less development time.
The Qt Company plans to add a version of Qt for Device Creation’s desktop device emulator that is customized to work with the APIs. There’s also a new QML Live program for quick testing of color schemes, fonts, and animations.
Qt Creator deploys a GammaRay
The Qt Automotive Suite also integrates with a special version of the Qt Creator IDE. As with Qt for Device Creation, you can build and download an app to the target device and quickly launch a debugger from within Qt Creator. This convenience “removes the lengthy device flashing stage,” writes Adams.
The automotive implementation of Qt Creator adds a new “GammaRay” tools which “allows for runtime introspection, visualization and manipulation of internal structures such as scene graphs and state machines,” write Adams. ”GammaRay also provides building blocks for the creation of visualization and diagnosis of proprietary frameworks, specialized hardware or protocols, custom controls or third party components.”
Finally, the Qt Automotive Suite “makes it easy to build a redistributable SDK that contains your specific HMI assets and added middleware together with the Qt tooling,” writes Adams. The software will be available in both open source and commercial versions.
The open source version of Qt Automotive Suite is available here, although as noted, v1.0 won’t arrive until later this month. Pre-built Yocto Project stacks are available for the Boundary Devices Sabre-Lite i.MX6 board and for the Nvidia DriveCX platform.