Beijing TOPEET Electronics iTOP4412 board based on Samsung Exynos 4412 quad core Cortex A9 processor, and a developer has very recently committed patchsets to mainline Linux kernel to add support for the board. Exynos 4412 is not quite the latest and most powerful processor, but the board is still interesting due to mainline Linux support, and some hardware features like interfaces for up to 3 LCD displays plus HDMI, two DB9 serial interfaces, two camera interfaces, and more.
Click to Enlarge
iTOP4412 is comprised of the company’s Exynos 4412 SoM and a baseboard with the following specifications:
SoC – Samsung Exynos 4412 quad-core Cortex A9 clocked at up to 1.4GHz-1.6GHz + ARM Mali-400MP4 GPU @ 440MHz
System Memory – 1 GB dual channel DDR3
Storage – 4GB eMMC flash and microSD slot
Video Output / Display IF – HDMI 1.4 port, 2x LVDS interfaces (including one via an HDMI connector?), 1x LCD RGB interface
Audio I/O – 3.5mm microphone and headphone jacks, and HDMI
USB – 2x USB 2.0 host ports, 1x micro USB 2.0 OTG port
Connectivity – 10/100Mbps Ethernet + WiFi header
Serial – 2x DB9 serial ports
Camera – Camera header (0.5 to 2.0MP camera) + MIPI CSI header
Other Expansion headers – A/D header, UART+Keypad+GPS header, 20-pin GPIO header, and JTAG header
Misc – Reset button, power switch, DIP switch, 5 user keys (Home, Back, Sleep, Vol+/-), RTC + battery, buzzer
Power Supply – 5V/2A via power barrel
PCB Dimension – 190 x 110 mm
The board is shipped with a power adapter, a serial cable, a USB cable, a HDMI cable, an Ethernet cable, and a CD ROM with schematic (PDF), the baseboard PCB (Allegro), source code for the drivers, chip and LCD data sheet, development environment tools and product manuals. There’s also a github account that’s not been updated for a over a year but include the Linux kernel used in the Android 4.4 image, u-boot, Linux rootfs, and Android SDK.
The hardware described above is iTOP4412 精英版 (Elite Edition), but there’s also iTOP4412 全能版 (Almighty Edition) with built-in GPS, 3G, WiFi and Bluetooth, four DB9 serial port, and more. That model apparently comes with an Exynos 4412 module with 2GB RAM and 16GB eMMC flash.
Click to Enlarge
Bear in mind that Hardkernel phased out ODROD-U3 board because they could not source Exynos 4412 SoC last year or so, so long term availability of the boards are unclear. You can however purchase iTOP4412 Elite board on Banggood for $128.53. In case the company decided to phase out their iTOP4412 boards and SoM, you should be able to fallback on the company’s solutions based on Samsung S5P4418 and S5P6818 processors. More details can be fond on TOPEET website (Chinese only).
I’ve already written about Vocore v2 Crowdfunding campaign, where the second generation Vocore WiFi module supports audio, PoE, and ultimate dock, and price starting at $12. But there has been some development since the launch of the campaign, as the developer received request for a cheaper board, and after looking into it, has now added Vocore2 Lite WiFi module reward for only $4, or $7 once shipping included.
He obviously had to make some trade-offs to bring the cost down, but the Lite board impressively still keep many of the same features.
VoCore2 Lite (2016)
x1 / x5
x1 / x5
USB 2.0 Host
USB 2.0 OTG
Compared to Vocore2, Vocore2 Lite has a cheaper Mediatek MT7688N MIPS processor, which is already used in board such as Mediatek LinkIt 7688, Onion Omega2, and Widora-NEO, less memory and storage, WiFi is limited to 150 Mbps and an external antenna is required, and the PCIe 1.1 interface is gone. The dimensions appear to be the same, so the dock should be compatible too, provided PCIe is not needed. Software support will be the same with OpenWrt/LEDE Linux distribution.
If you are interested, you can pledge $7 for Vocore2 Lite on the Indiegogo page with delivery planned for January 2017. There aren’t any pledge combining Vocore2 Lite with a dock so far.
This is a guest post by written by Guilherme Fernandes, Raul Muñoz, Leonardo Veiga, Brandon Shibley, all working for Toradex.
Application processor usage continues to broaden. System-on-Chips, usually powered by ARM Cortex-A cores, are taking over several spaces where small ARM Cortex-M, and other microcontroller devices, have traditionally dominated. This trend is driven by several facts, such as:
The strong requirements for connectivity, often related to IoT and not only from a hardware point of view, but also related to software, protocols and security
The need for highly interactive interfaces such as multi-touch, high resolution screens and elaborate graphical user interfaces;
The decreasing price of SoCs, as consequence of its volume gain and new production capabilities.
Typical cases exemplifying the statement above are the customers we see every day starting a product redesign upgrading from a microcontroller to a microprocessor. This move offers new challenges as the design is more complicated and the operating system abstraction layer is much re complex. The difficulty of hardware design using an application processor is overcome by the use of reference designs and off-the-shelf alternatives like computer-on-modules or single board computers. On the operating system layer, the use of embedded Linux distributions is widespread in the industry. An immense world of open source tools is available simplifying the development of complex and feature rich embedded systems. Such development would be very complicated and time consuming if using microcontrollers. Despite all the benefits, the use of an operating system like Linux still raises a lot of questions and distrust when determinism and real-time control application topics are addressed.
A common approach adopted by developers is the strategy of separating time-critical tasks and regular tasks onto different processors. Hence, a Cortex-A processor, or similar, is typically selected for multimedia and connectivity features while a microcontroller is still employed to handle real-time, determinism-critical tasks. The aim of this article is to present some options developers may consider when developing real-time systems with application processors. We present three possible solutions to provide real-time capability to application processor based designs.
Heterogeneous Multicore Processing
The Heterogeneous Multicore Processing (HMP) approach is a hardware solution. Application processors like the NXP i.MX7 series, the NXP i.MX6SoloX and the upcoming NXP i.MX8 series present a variety of cores with different purposes. If we consider the i.MX7S you will see a dual core processor composed of a Cortex-A7 core @ 800MHz side-by-side with a Cortex-M4 core @ 200MHz. The basic idea is that user interface and high-speed connectivity are implemented on an abstracted OS like Linux with the Cortex-A core while, independently and in parallel, executing control tasks on a Real-Time OS, like FreeRTOS, with the Cortex-M core. Both cores are able to share access to memory and peripherals allowing flexibility and freedom when defining which tasks are allocated to each core/OS. Refer to Figure 1.
Figure 1 – NXP i.MX7 Block Diagram (Click to Enlarge)
Some of the advantages of using the HMP approach are:
Legacy software from microcontrollers can be more easily reused;
Firmware update (M4 core) is simplified as the firmware may be a file at the filesystem of the Cortex-A OS;
Increased flexibility of choosing which peripherals will be handled by each core. Since it is software defined, future changes can be made without changing hardware design.
More information on developing applications for HMP-based processors are available at these two articles:
Toradex, Antimicro and The Qt Company collaboratively built a robot showcasing this concept. The robot – named TAQ – is an inverted pendulum balancing robot designed with the Toradex Computer on Module Colibri iMX7. The user interface is built upon Linux with the QT framework running on the Cortex-A7 and the balancing/motor control is deployed on the Cortex-M4. Inter-core communication is used to remote control the robot and animate its face as seen in the short video below.
The second approach we present in this article is software related. Linux is not a real-time operating system, but there are some initiatives which have greatly improved the determinism and timeliness of Linux. One of these efforts is the Real-Time Linux project. Real-Time Linux is a series of patches (PREEMPT_RT) aimed at adding new preemption options to the Linux Kernel along with other features and tools to improve its suitability for real-time tasks. You can find documentation on applying the PREEMPT_RT patch to the Linux kernel and developing applications for it at the official Real-Time Linux Wiki (formerly here).
We did some tests using the PREEMPT_RT patches on a Colibri iMX6DL to exemplify the improvement in real-time performance. The documentation on preparing the Toradex Linux image to deploy the PREEMPT_RT patch is available at this link. We developed a simple application which toggles a GPIO at a 2.5KHz (200µs High / 200µs Low). The GPIO output is connected to a scope where we measure the resulting square wave and evaluate the real output timings. The histograms below show the comparison between the tests on a standard Linux kernel configured for Voluntary Preemption (top) and a PREEMPT_RT patched Linux kernel configured for Real-time Preemption (bottom). The x-axis represents the period of the square wave sample and the y-axis represents the number of samples which measured with such a period. The table below the chart presents the worst and average data.
Figure 2: Histogram of the square wave generated using the standard Kernel (top) and Preempt-RT kernel (bottom) – Click to Enlarge
Worst Case for 99% of Samples (µs)
Worst Case (µs)
Table 1: Comparison between Default Kernel and real-time Kernel when generating a square wave.
An example software system using the PREEMP_RT patch is provided by Codesys Solutions. They rely on the Real-Time Linux kernel, together with the OSADL (Open Source Automation Development Lab), to deploy their software PLC solution which is already widespread throughout the automation industry across thousands of devices. The video below presents the solution running on a Apalis iMX6Q.
Xenomai is another popular framework to make Linux a real-time system. Xenomai achieves this by adding a co-kernel to the Linux kernel. The co-kernel will handle time-critical operations and will have higher priority than the standard kernel. To use the real-time capabilities of Xenomai the real-time APIs (aka libcobalt) must be used to interface user-space applications with the Cobalt core, which is responsible for ensuring real-time performance.
Figure 3: Dual Core Xenomai Configuration
Documentation on how to install Xenomai on your target device can be found at the Xenomai website. Additionally, there is a variety of Embedded Hardware which is known to work as indicated in the hardware reference list, which includes the whole NXP i.MX SoC series.
To validate the use of Xenomai on the i.MX6 SoC we also developed a simple experiment. The target device was the Colibri iMX6DL by Toradex. We ran the same test approach as described above for the Real-Time Linux extension. Some parts of the application code used to implement the test are presented below to highlight the use of Xenomai APIs.
/* Task Creation */
The results comparing Xenomai against a standard Linux kernel are presented in the chart below. Once again, the real-time solution provides a clear advantage – this time with even greater distinction – over the time-response of the standard Linux kernel.
Figure 3: Histogram of the square wave generated using the standard Kernel (top) and Xenomai (bottom) – Click to Enlarge
Worst Case for 99% of Samples (µs)
Worst Case (µs)
Table 2: Comparison between Default Kernel and Xenomai implementation when generating a square wave.
This article presented a brief overview of some solutions available to develop real-time systems on application processors running Linux as the target operating system. This is a starting point for developers who are aiming to use microprocessors and are concerned about real-time control and determinism.
We presented one hardware-based approach, using Heterogeneous Multicore Processing SoCs and two software based approaches namely: Linux-RT Patch and Xenomai. The results presented do not intend to compare operating systems or real-time techniques. Each of them has strong and weak points and may be more or less suitable depending on the use case.
The primary takeaway is that several feasible solutions exist for utilizing Linux with application processors in reliable real-time applications.
Eben Upton had already mentioned the Raspberry Pi Foundation was working on a Raspberry Pi Compute Module 3 based on the same Broadcom BCM2837 quad core Cortex A53 processor and 1GB LPDDR2 RAM used in Raspberry Pi 3 board earlier this year, but few details had been provided at the time.
RPI Compute Module 3 in NEC Display – Click to Enlarge
The module is still not available, but NEC Display Solutions Europe has already announced they are working on integrating Compute Module 3 into commercial displays starting with 40″, 48″ and 55″ models in January 2017, and up to 98″ by the end of next year, used for digital signage and presentation platforms.
The Raspberry Pi Foundation goes on to say they’ve been working on NEC project for over a year now, and they expect to release Compute Module 3 to the general public by the end of the year. Price and complete technical details have not been released yet.
You can also watch the video below with NEC announcing Raspberry Pi 3 module based Displays at the 7:43 mark.
Next Thing CHIP board and corresponding PocketCHIP portable Linux computer have been relatively popular due to their inexpensive price for the feature set, as for $9, you’d get an Allwinner R8 ARM Cortex A8 processor, 512MB flash, 4GB NAND flash, WiFi & Bluetooth connectivity, and plenty of I/Os, which made it very attractive for IoT applications compared to other cheap boards such as Raspberry Pi Zero and Orange Pi One. The first board was mostly designed for hobbyists, but company has now designed a new lower profile system-on-module called CHIP Pro based on Next Thing GR8 SIP combining Allwinner R8 SoC with 256MB DDR3 RAM that can be used for easy integration into your own hardware project.
While the original CHIP board exposed full USB ports and interface for video signal, the new CHIP Pro is specifically designed for IoT with the following specs:
SIP – Allwinner R8 ARM Cortex A8 processor @ up to 1.0 GHz with Mali-400 GPU + 256MB DDR3 RAM (14×14 mm package)
Storage – 512MB SLC NAND flash, 1x micro SD port
Connectivity – 802.11 b/g/n WiFi + Bluetooth 4.2 with chip antenna and u.FL antenna connector
USB – 1x micro USB port for power and serial console access
Expansion – 2x 16-pin with 2x UART, parallel camera interface, I2C, SPI, 2x PWM, USB 2.0 OTG, USB 2.0 host, 2x microphone, 1x headphone
Power Supply – AXP209 PMU supporting USB power, Charge in, and 2.9 to 4.2V LiPo battery
Dimensions – 45 x 30 mm
Certifications – CE and FCC part 15
Click to Enlarge
The module is pre-loaded with the company’s Linux based GadgetOS operating system, but custom firmware flashing is available for orders of 1,000 modules or more. Potential applications include physical computing, voice recognition, smart consumer devices, portable audio devices and so on. Software support should be identical to what you already get in CHIP board, and you can already find some hardware design files specific to CHIP Pro on Github including datasheets for the system-on-module and Allwinner GR8 SIP.
In order to help you getting started as fast as possible, a development kit is also available with a baseboard and two CHIP Pro modules. The baseboard include a 5V-23V power jack, a 3.5mm audio jack, a micro USB port, a USB host port, some LEDs, a power button, and female headers for easy access to all I/Os.
CHIP Pro SoM will start selling for $16 in December of this year without minimum order quantity, and no volume discount, e.g. if you buy 1 million SoMs, you’d have to pay 16 million dollars. One issue with CHIP board is that if you asked Allwinner for a quote for module used in the board, it would cost more or about the same as the board itself. Allwinner/Next Thing GR8 is completely different, as you can actually buy it for $6 (including AXP-209 PMIC) to integrate into your own project. The development kit is available now for $49. More technical details and purchase links can be found on the product page.
Apart from the picture, there’s no info on the web about this board, so we’ll have to derive specs from the photo, the community board features, and info provided by Marcin Juszkiewicz, so all details are preliminary and subject to change:
SoC – ARMADA 8040 (88F8040) quad core Cortex A72 processor @ up to 2.0 GHz
System Memory – 1x DDR4 DIMM up to 16GB RAM
Storage – 3x SATA 3.0 port + micro SD slot
Connectivity – 1x Gigabit RJ45 port, 1x SFP SGMII @ 2.5Gbps, 2x 10Gbps copper (RJ45) with auto switchover to dual SFP+
Debugging – 20-pin Connector for CPU JTAG debugger
Power Supply – 12V DC via power jack or ATX power supply
Dimensions – Mini-ITX form factor (170 mm x 170 mm)
That board is said to be SBSA compliant, meaning any ARM SBSA server distributions (like Red Hat) should work with mainlined kernel and bootloaders (U-Boot and UEFI). The price is said to be $350 with 4GB RAM, exactly what the community board is supposed to sell for, so MACCHIATOBin could also be the latest revision of the community board with a layout change, and most of the same features.
RabbitMax Flex is an add-on board for the Raspberry Pi boards with 40-pin headers, namely Raspberry Pi Model A+ and B+, Raspberry Pi 2, Raspberry Pi 3 and Raspberry Pi 0, destined to be used for Internet of Things (IoT) and home automation applications thanks to 5x I2C headers, a relay, an LCD interface and more.
I’ve received a small kit with RabbitMax Flex boards, a BMP180 temperature & barometric pressure I2C sensor, and a 16×2 LCD display.
Click to Enlarge
RabbitMax Flex specifications:
Relay – Songle SRD-05VDC-SL-C supporting 125V/250VAC up to 10A, 30VDC up to 10A
Storage – EEPROM with some system information for identification
IR – IR LED, IR receiver
Misc – Buzzer, Button, RGB LED
Header for LCD character display + potentiometer for backlight adjustment
5x 4-pin headers for I2C sensors
Dimensions – Raspberry Pi HAT compliant
Click to Enlarge
The assembly of the kit is child’s play as you don’t even need tools. First insert the HAT board on top of your Raspberry Pi board, add the LCD display, and whatever I2C sensors you please.
Click to Enlarge
I’ve done so on my Raspberry Pi 2 board and battery kit. I have not tried the software part yet, but the platform has been tested on Raspbian, with a custom Linux OS built with the Yocto Project coming soon. Currently three sensors are supported including a temperature and barometric pressure sensor (BPM180), a temperature and humidity sensor (HTU21) and a light sensor (BH1750), but you could also connect any other I2C sensors provided you work on the code to enable support.
Freescale and then NXP have been talking about i.MX8 processors for several years, and this spring unveiled i.MX 8 Multisensory Enablement Kit without giving much details about the processor except it would include both Cortex A72 & A53 cores. But NXP put out a press release yesterday about “Multisensory Automotive eCockpit Platform to Advance Multimedia Experiences in Future Cars” which appears to be the same news but with different words, except the content of the PR has more interesting bits such as:
The new family, which is based on up to six 64-bit ARMv8-A technology processor cores and includes a HiFi 4 DSP, LPDDR4 and DDR4 memory support as well as dual Gigabit Ethernet with audio video bridging (AVB) capability, is designed to advance automotive dashboard graphics such as instrument clusters, infotainment visuals, heads-up displays, rear-seat screens and more. Capable of driving four HD screens with independent content or a 4K screen, the new devices introduced today include:
i.MX 8QuadMax which integrates two ARM Cortex®-A72 cores, four Cortex-A53 cores, two Cortex-M4F cores and two GC7000XS/VX GPUs
i.MX 8QuadPlus which integrates one ARM Cortex-A72 core, four Cortex-A53 cores, two Cortex-M4F cores and two GC7000LiteXS/VX GPUs
i.MX 8Quad which integrates four Cortex-A53 cores, two Cortex-M4F cores and two GC7000LiteXS/VX GPUs
Hmm… SoCs with two identical GPUs? That’s because automotive applications often require multiple operating systems running on a single processor, with maybe one part handling the “infotainment” screen, and another taking care of the dashboard, which has to be 100% stable. This is usually handled by a software hypervisor but i.MX 8 processors can do this mostly using hardware virtualization, and does not require safety critical and non-safety critical software to share the same part of the hardware.
The new processors currently support for Android, Linux, FreeRTOS, QNX, Green Hills, and Dornerworks XEN, multiple temperature grades including automotive AEC-Q100 grade 3 (-40° to 125° C Tj), industrial (-40° to 105° C Tj), and consumer (-20° to 105° C Tj), and are fully supported on NXP’s 10 and 15-year Longevity Program. You’ll find a few more details about NXP i.MX8 processors slated to go into mass production in Q1 2017 on the product page.
However, while searching for more details about i.MX 8, I’ve come across a PDF file dated July 15, 2016, revealing more i.MX8 processor families are on the way with i.MX 8M series for audio/video applications with 4K VP9/H.265 and HDR support, and i.MX 8X series based on ARM Cortex A35 / M4 cores for low power applications.
Click to Enlarge
The document also informs us that two more i.MX 8 processors are planned with i.MX 8Dual and i.MX 8DualLite dual core Cortex A53 SoCs.
Click to Enlarge
But let’s go back to i.MX 8M series with four SKUs namely 8M Quad Video, 8M Dual Video, 8M Quad Audio, and 8M Solo Audio.
Click to Enlarge
All features one, two or four Cortex A53 cores, a real-time Cortex M4 cores, 1080p to 4K video support, 20 channels audio, USB 2.0 or 3.0 interfaces, and DTS and Dolby Atmos support. The processors will be used in streaming media clients, networked speakers, soundbars or AV receivers, or some embedded clients in consumer or industrial sectors.
NXP i.MX 8X series will first include 3 SKUs: i.MX 8QuadXPlus, i.MX 8DualXPlus, and i.MX 8DualX all powered by one to four ARM Cortex A35 cores and supporting up to 3 displays.
Click to Enlarge
The processors will target display and audio applications, 3D graphic display clusters, telematics and V2X (Vehicle to everything) applications.
NXP i.MX 8M and 8X are not listed on NXP website yet, but I’d assume they’d go to mass production sometimes in 2017, when they may have become Qualcomm i.MX 8 processors…