Products for consumer market, industrial control systems and other embedded devices often require a touch screen display to offer both, visual feedback to the user, as well as an input method to interact with the system. In order to achieve a nicely designed and responsive user interface, developers can write their own graphical library providing widgets like drop-down menus, list-views, check-boxes or simple buttons. However, this can be a very tedious and error-prone task. It is best to use one of the available graphic libraries like Qt, Cairo, EFL or also emWin, not to forget to mention nCurses for console-style block-oriented graphics.
Now which library should one select, especially in terms of limited hardware resources on embedded systems but also with a look forward to the look&feel as well as the usability on a touch screen? Besides, hardware restrictions, like the used CPU and its computing power, available RAM-size, free space in ROM, availability of a GPU with 2D/3D hardware accelerated graphics and the used operating system, should be taken into consideration. emWin for example, runs on bare-metal systems either with or without a RTOS whereas Qt or EFL need at least a running Linux (but not said that it is impossible to run them on bare-metal). Other decision affecting parameters are the availability of the library as open- or closed-source, as well as the costs for non-commercial and commercial products. In the following article we will take a brief look at the Enlightenment Foundation Libraries (EFL) of a small Cortex-A5 based single board computer from emtrion running a Debian Jessie based Linux: the SBC-SAMA5D36 .
Linux is an operating system that is widely used in embedded systems such as consumer electronics, networking equipment, machine control, industrial, automation and so on and so forth. However, all systems do not have the same requirements in term of determinism and sometimes determinism, the ability to schedule the highest priority tasks in a consistent and predictable way, really matters. This is the case for Financial Services, Networking (QoS), Robots, Air Traffic Control Systems...
Compared to other real-time operating systems, Linux has the advantage to be open source with great hardware support. Yet it was not designed to be real-time. It was originally designed to be a time-sharing system where the goal is to give the best throughput from the hardware using all the resources at the maximum. This is the opposite requirement of the real-time constraints that needs determinism even at a low global throughput.
Throughout the years, different approaches have emerged to overcome this problem. The first approach is to modify the Linux Kernel itself in order to get the required latencies or the real-time APIs. This approach is covered by the project PREEMPT_RT led by the Linux kernel developers Ingo Molnar, Thomas Gleixner and Steven Rostedt. The second approach is to add a layer between the Hardware and the Linux kernel to handle the real-time requirements so that the Linux kernel behaviour can stay as it is. This approach has been taken into account by different project like RTLinux, RTAI and Xenomai. Since only the last one is maintained actively on ARM, we will only talk about it.
I may be a microcontroller guy myself, but there are times where you need the power of a microprocessor. Having an operating system handle the memory, peripherals and events just saves time, and some applications really do need the power a microprocessor provides.
Atmel’s SAMA5D3 family has some impressive devices. Based on ARM’s A5 architecture, they has an impressive amount of peripherals and I/O lines. To name just a few, the SAMA5D36 has 3 I2C ports, 6 SPI ports, 12 12-bit ADC channels, and something you don’t see every day, 7 UART ports. This is impressive enough, but to add to that, the SAMA5D3 also has up to 160 I/O pins, each with its own interrupt. The SAMA5 series is geared towards industrial environments, automotive devices, and with Atmel’s implementation of capacitive touch peripherals, it can be used on just about any application where a user must input data.
With all that power, it isn’t surprising that the German manufacturer emtrion used this processor for one of their development boards, the SBC-SAMA5D36. They not only went with the SAMA5D36 device for its power and reliability, but also for Atmel’s reactivity when it comes to support. Atmel has worked hard on Linux implementation, and so the Linux kernel has everything you need to access every part of the processor, but I’ll get into that later on.
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.
Emtrion is pleased to announce the availability of its new SBC (Single Board Computer) based on the new SoC ‘ATSAMA5D36’ from Atmel.
The SBC is composed of a single ARM Cortex-A5 core CPU running at 536MHz, 256MB of DDR2-SDRAM, 512MB of SLC NAND Flash and 8 MB NOR Flash. The available peripherals are 2xUSB 2.0 Host, 1xUSB 2.0 Device, 1xGbit Ethernet, 1x100Mbit Ethernet, 1xLCD connector, 1xHDMI connector and more than 40 fully configurable I/Os on its expansion connectors.
With its compact size (135mm x 74mm x 15mm (LxWxH)) and its low power consumption (only 200mA @ 5V typ), the SBC-SAMA5D36 is the perfect low-power prototyping board with industry quality. Thanks to its optional extended temperature (-40°C to 85°C) and its 4 mounting holes, the board can also be directly integrated into your industrial project.
This board is targeting various industrial field applications. With its Lithium battery charger, the board can be used as battery powered device. It can also connect with several industrial busses via its expansion board: CAN, RS-232/485, Soft Modem Device, SPI, I²C… The user interaction is not only composed by 4 LEDs and 2 Push Buttons, but also with the LCD connector that can output a WVGA resolution on a 7” LCD screen with no extra external power supply for the display! And if the LCD display is too small for the application, the HDMI connection makes it possible to output on a standard PC monitor with no extra software required!