Category: "Android"

In December 2016, Google presented its new operating system for the Internet of Things (IoT), called Android Things. As the name implies it’s a derivative of Android, just like Android Auto, Android TV and Android Wear. It’s supposed to run on low-power embedded devices such as emtrion’s SBC-SAMA5D36, which is well suited to be used in devices such as fridges, ovens, microwaves and many more. Unlike Android it can be run with or without a display and runs only one single application, called the home activity, which is launched on boot. Google decided to implement the Java Runtime on Android Things, so that Android App developers are able to write IoT apps in their familiar Android Studio environment. To this day Google has not yet released the source code of Things but a few images for different hardware platforms. In an internal study, we at emtrion have ported Android Things to our single board computer SBC-SAMA5D36. The SBC-SAMA5D36 is well suited for the use in IoT environments with its numerous peripheral connections and the possibility to use a touchscreen.

Android Things on emtrion's SBC-SAMA5D36
Android Things on emtrion's SBC-SAMA5D36

A key part of Android Things is the Peripheral I/O API, which is used to communicate with sensors and actuators via GPIO, PWM and serial protocols such as I2C, SPI and UART. Another central component of Things is the User Driver API, which introduces so called user-space drivers. With this approach developers can embed their peripheral hardware into the Android framework which has one main advantage, namely to abstract the application code from the hardware platform, so that once written, the application code can be ported to different hardware devices. This allows the reuse of code. Using the native PIO API it’s now possible to write Android Things Apps exclusively in C/C++ without the need of Java.

Smartphone operating system market share
Smartphone operating system market share [1]

Looking at the growth of Android market share at embedded devices like smartphones and the rise of IoT in the last few years, a good argument can be made that Android Things will be the next big "thing" in the near future.


Form is loading...

New mainline-based i.mx6 BSPs

 03. May 2017, by emtrion
Categories: Software, Linux, i.MX6, Android

We recently released our new mainline-Kernel based Debian and Yocto BSPs for our i.mx6 based System on Modules. In this article we'll give you a short overview of the advantages of the new BSP era! Beside the recent Kernel Versions delivered, new userspace APIs have to be used to access peripherals.


The most outstanding feature of the new BSPs is that they both are based on Linux 4.9 LTS with some additional drivers and emtrion's device trees. Beside that they are identical to the upstream Long-Term supported Kernel which allows easy maintenance of security patches and fixes to certain subsystems. Beside that the Kernel does also make use of the Open Source etnaviv GPU driver for OpenGL acceleration. Also included is the Open Source driver for the Video Processing Unit (VPU) contained in the i.mx6. On the other hand, we decided to develop our Yocto Morty (2.2) and Debian Stretch (9) based BSPs in a way that both share key components in the same version allowing developers to change between the BSPs without porting applications. To achieve that we use the same Kernel, mesa (12.04), gstreamer (1.10)  and Qt (5.7) versions on both BSPs.

Etnaviv Graphics Stack

One of the recent changes in the Mainline Kernel is its native support for the Vivante GPU contained in the i.mx6 and several other SoCs. As you might know from desktop Linux systems the nouveau driver is a reverse engineered driver for Nvidia cards, the etnaviv is the one for Vivante SoC's GPUs. As a complete graphics stack requires more than a working Kernel Driver, the userspace components providing OpenGL functionality are delivered by the mesa project like many other Open Source graphic drivers. One of the advantages of the Open Source graphics stack is that it is not only possible to use most Debian packages without recompilation, but it is also possible to upgrade and maintain your system without the lockdown to a specific Kernel or userspace version.

Video4Linux VPU Driver

For quite some time the VPU, which is in fact a CODA DSP included in the i.mx6, is supported by the video4linux subsystem in the Kernel. In contrast to the software delivered by NXP (formerly Freescale) it is only capable of decoding and encoding video streams. However there are outstanding advantages over the closed source drivers like the upstream gstreamer support. With current gstreamer versions, the device class the VPU belongs to, is automatically populated to the gstreamer elements as de-/encoder device and you're no longer restricted to a specific gstreamer release version. Also it's automatically used by many userspace media applications out of the box. In case of our Debian BSP that means, you can use almost every multimedia application, just as you can on your desktop, which uses gstreamer or video4linux without the need of a recompilation.


Even if the current support for the i.mx6 is on the right path, there are limitations regarding the supported features. We decided not to include the Open Source camera driver on the i.mx6 in this release as it is under heavy development for now, just as the whole video4linux2 subsystem. However, our engineers are already testing the new drivers and software on our hardware platforms, allowing you to gain support as needed.

Also it is currently not possible to use OpenCL on the GPU due to missing support in the mesa implementation.


*NXP, Nvidia, Freescale, Vivante, Coda, OpenCL are registered trademarks of their respective owners.

Form is loading...

emtrion goes virtual

 12. April 2016, by emtrion
Categories: Software, Linux, embedded, Android

In the past few months emtrion has broaden its knowledge base towards the open source virtualization platform Jailhouse [1]. The eventual goal is to provide customers a virtualization solution that is real-time capable, lightweight, secure, certifiable and operable on emtrion hardware. The main advantage to customers will be the reduction of costs through the combination of multiple hardware units into one single unit that handles multiple tasks.

Full story »

Form is loading...

Android has established itself as a dominant mobile operation system for consumers in recent years. It is indispensable in the field of applications such as smart phones, cameras, tablets, game consoles and much more. The Android-Software-Development- Kit (SDK) is extensively equipped and offers substantial possibilities for programming complex applications. Based on a complete Linux-kernel, Android is operated by a touch-based user interface. In fact, these are ideal conditions for the development of appealing and intuitive HMI applications in an industrial environment. However, especially in industry, there are further boundary conditions to be considered before Android can be used.

Full story »

Form is loading...



emtrion GmbH
Kreativpark - Alter Schlachthof 45
D-76131 Karlsruhe

Tel: +49 (0)721-62725-0
Fax: +49 (0)721-62725-19