Digia has launched a development suite that is intended to ease the job of putting animated graphical interfaces onto embedded devices that run Linux or Android.
Speaking at the Pinnacle European Press Summit in Munich, Germany, Juhapekka Niemi, vice president of sales and marketing for Digia Qt, said: “Creating a user interface for a device sets expectations. The user interface can’t be bad. If you buy an expensive car and the dashboard display is slow, it’s not going to work.”
The company’s Qt software is already used in a number of embedded devices such as settop boxes and for animation tools, as well as the dashboard interface of the Tesla Motors Model-S electric car.
Lars Knoll, CTO at Digia Qt and chief maintainer of the Qt project, said: “Many companies are struggling with how to get started with this user interface. It is often a question of how to get started.”
Qt Enterprise Embedded started as the Boot to Qt project. The commercial product contains the core elements of the Qt environment, such as the QML markup language, which are available under commercial or open-source licences, together with a number of tools that are sold with commercial-licences only.
“It is a full, prebuilt and lightweight stack built on top of Android or embedded Linux designed to make creation of a embedded device as easy as possible – at least as easy as desktop development. You can create animated and smooth touchscreen user interfaces,” Knoll claimed, adding: “It is not just the user interface. There is a lot of back-end logic that can be implemented using C++ APIs.
“A lot of the enablers are in the open-source version. But what Qt Enterprise Embedded offers is that it is all in one package. With the open-source version you have to plug it all together yourself.”
Some of the additional elements in the commercial product are a charts module and a virtual keyboard. A profiler to help improve the performance of QML code will be added later.
To support rapid prototyping the company has built reference ports for the iMX6, Google Nexus 7, BeagleBoard and Raspberry Pi. Although it can run with a more static interface without one, the main hardware requirement other than a general-purpose processor is a graphics processing unit (GPU) that has OpenGL ES 2.0 driver support.
“We use similar technology behind the scenes as OpenGL games do. It is built for high performance. Most of the work on the user interface side will be done by the GPU, leaving the CPU free,” Knoll claimed. “But you can’t really present iPhone-like interfaces without acceleration.”
The embedded Linux version of the stack is based on the Yocto distribution, which is becoming increasingly popular in embedded systems relative to the more traditional desktop distributions that have been stripped down for resource-constrained targets.
In its current form, the stack is designed for a single process, although this can be multithreaded. However, multiple-process support is likely to be added through Wayland for embedded Linux. “We are also working on this for embedded Android,” said Knoll.