Thomas Hartmann

Digital Instrument Cluster with Qt Quick Designer and Qt Safe Renderer

Published Wednesday June 21st, 2017
3 Comments on Digital Instrument Cluster with Qt Quick Designer and Qt Safe Renderer
Posted in Automotive, Biz Circuit & Dev Loop, Design, QtCreator, RTOS | Tags: , , ,

The growth of reconfigurable digital instrument clusters in the automotive industry is exploding. This is driving a need for high performance graphics technologies, designer tooling and solutions for safety critical systems.

The highly optimized Qt Quick technology is a great fit for creating modern digital clusters. Its plug-able back-end technology supports various rendering methods from OpenGL down through OpenVG to software rendering. This flexibility means you can target a wide range of price/performance points such as the NXP i.MX6 family which ranges from quad core with GPU to single core and no GPU.

For the designer, the Qt Quick Designer allows you to design and prototype the cluster user experience without writing any code. If you do chose to edit the QML code the your changes are immediately reflected in the live preview feature of Qt Quick Designer.

Safety critical operation is a key requirement in digital clusters. To satisfy safety requirements the safety critical functionality is separated from the other parts. What the automotive industry calls tell-tales is the safety critical part, these are the warning lamps for things such as airbag, oil level, engine temperature and brakes. These need to be rendered in a separate software partition that has been certified as designed and implemented per the industry’s relevant standards. The Qt Safe Renderer is our implementation that meets these standards.

But UI designers don’t really want to be bothered by such details. They just want to design the UI as a whole, marking items as safety critical is about the extent of what they need to know. We have added this capability into the Qt Quick language and Qt Quick Designer and to make things even more convenient this is done automatically when using one of Qt’s comprehensive set of ISO 7000 standard icons for warning and other indicators. Qt’s drag-and-drop visual design tooling really simplifies this design flow for adding these icons.

Once the design is complete the build process separates the safety critical UI elements from the main UI.  We use the Qt safe Renderer component to render the safety critical items and also to monitor the operation of the main UI. It is critical that any error in operation of the main UI does not impact the correct rendering of the safety critical items. The Qt Safe Renderer will restart the main UI as appropriate should it detect an error. For more details on the Qt Safe Renderer check out this blog post.

To show how all this comes together we created a video. It shows how to design a digital instrument cluster, deploy it to a device and how the Qt Safe Renderer works in practice.

As you can see, Qt offers tools that make design and prototyping digital instrument clusters intuitive for people who prefer visual design tools over coding. As always with Qt, the full power of QML, the Qt framework and C++ are accessible to create even more complex system logic.

You can get going quickly by looking at the code for the digital instrument cluster example used in the video in the Qt examples repository. Some of the Qt Quick components of the example have backends written in C++ which means they need to be built in order to be available in Qt Quick Designer. To do this, build the project for your desktop platform and in Qt Creator go to Tools > Options > Qt Quick > Qt Quick Designer and enable Use QML emulation layer which is built by the selected. For more details on how to integrate custom QML modules have a look at the Qt documentation here.

Contact us to learn more and discuss your needs in more detail.

Do you like this? Share it
Share on LinkedInGoogle+Share on FacebookTweet about this on Twitter

Posted in Automotive, Biz Circuit & Dev Loop, Design, QtCreator, RTOS | Tags: , , ,

3 comments

Juzeppe says:

But can anyone finally tell in a simple sentence, what this “safety certified renderer component” exactly is? Is it a separate GUI-process? Is it some separate environment? What is it?

And also previous blog post was telling that no matter what “safety critical parts continue to operate uninterrupted”, however in this article I see that actually some restarting of UI is involved.

Alistair Adams Alistair Adams says:

Hi Juzeppe, it is a small separate GUI process that has been developed according to ISO26262 ASIL-B standards and is responsible for rendering the tell-tales. The cost of developing software to these standards is significantly more than for other software so it is standard practice to separate out the parts that are not allowed to fail from those where failure is acceptable. Of course no one wants any software to fail but there are large graphics libraries and code bases involved in the rich UI. This makes proving that there is no possibility of failure very expensive. The loss of fancy graphics does not create an immediate driving hazard but an ABS failure lamp might. Hence the ABS failure indicator falls into the safety critical part.

The part that might be restarted is the graphically rich part of the UI.

Hope that helps.

Alex says:

I guess large portion of what we see in this demo is static background images, but how are the needle meters implemented? I have no idea how to create such relatively complex custom UI item in QML (an extremely un-intuitive framework, in my opinion).

I would love to see some back-to-back QML tutorials of simple, but real-life projects. That would be great in helping people understand what QML is for and how to use. Surely, I can’t be the only one out there struggling with this tool (and struggling to see why this tool exists at all)?

Commenting closed.

Get started today with Qt Download now