Last year Ambiq Micro unveiled their Apollo Cortex-M4F MCU with Cortex M0+ energy efficiency thanks to operation in sub-threshold voltage (< 0.5 V), and the MCU is said found in Matrix Powerwatch, a fitness tracker powered by body heat that you never need to charge. The company has recently announced a new version of the micro-controller with Apollo 2 MCU with better maximum performance thanks to a higher maximum clock speed (48 MHz vs 24 MHz), and higher efficiency (10 μA/MHz vs 30 μA/MHz @ 3.3V).
Apollo 2 MCU key features and specifications:
Ultra-low supply current
<10 μA/MHz executing from flash at 3.3 V
<10 μA/MHz executing from RAM at 3.3 V
ARM Cortex-M4 Processor up to 48 MHz with FPU, MMU, wake-up interrupt controller with 32 interrupts
Ultra-low power memory
Up to 1 MB of flash memory for code/data
Up to 256 KB of low leakage RAM for code/data
16kB 1 or 2-way Associative Cache
Ultra-low power interface for off-chip sensors
14 bit, 15-channel, up to 1.2 MS/s ADC
Temperature sensor with +/-2ºC accuracy
Serial peripherals – 6x I2C/SPI master,1x I2C/SPI slave,2x UART, PDM for mono and stereo audio microphone
32.768 kHz XTAL oscillator
Low frequency RC oscillator – 1.024 kHz
High frequency RC oscillator – 48 MHz
RTC based on Ambiq’s AM08X5/18X5 families
Wide operating range – 1.8-3.6 V, –40 to 85°C
Package – 2.5 x 2.5 mm 49-pin CSP with 34 GPIO; 4.5 x 4.5 mm 64-pin BGA with 50 GPIO
The MCU promises weeks, months, and years of battery life thanks to Ambiq Micro’s patented Subthreshold Power Optimized Technology (SPOT) Platform. Apollo 2 will be suitable for battery operated devices, or even batteryless devices leveraging energy harvesting such as wireless sensors, activity and fitness trackers, consumer medical devices, smart watches, and smart home/IoT devices.
Documentation and devkits are available but you’d need to contact the company to learn more. Ambiq Micro’s Apollo 2 is currently sampling to some partners, and will be sampling more broadly in the coming months. A few more details may be found on Ambiq Micro Apollo 2’s product page.
STMicroelectronics SensorTile is a 13.5 x 13.5mm sensor board based on STM32L4 ARM Cortex-M4 microcontroller, a MEMS accelerometer, gyroscope, magnetometer, pressure sensor, a MEMS microphone, as well as a 2.4Ghz radio chip for Bluetooth 4.1 Low Energy connectivity for wearables, smart home, and IoT projects.
SensorTile hardware specifications:
MCU – STMicro STM32L476 ARM Cortex-M4 microcontroller@ up to 80 MHz with 128 KB RAM, 1MB flash
Connectivity – Bluetooth 4.1 Smart/LE via BlueNRG-MS network processor with integrated 2.4GHz radio compliant with
LSM6DSM 3D accelerometer + 3D gyroscope
LSM303AGR 3D Magnetometer + 3D accelerometer
LPS22HB pressure sensor/barometer
MP34DT04 digital MEMS microphone
I/Os – 2x 9 half holes with access to UART, SPI, SAI (Serial Audio Interface), I2C, DFSDM, USB, OTG, ADC, and GPIOs signals
Debugging – SWD interface (multiplexed with GPIOs)
Power Supply Range – 2V to 5.5 V
Dimensions – 13.5 x 13.5 mm
SensorTile’s Functional Block Diagram – Click to Enlarge
Software development can be done through a sets of APIs based on the STM32Cube Hardware Abstraction Layer and middleware components, including the STM32 Open Development Environment. The module is supported by Open Software eXpansion Libraries, namely Open.MEMS, Open.RF, and Open.AUDIO, with various example programs allowing you to get started. Several third-party embedded sensing and voice-processing projects also support the module. The module also comes pre-loaded with BLUEMICROSYSTEM2 firmware, and can be controlled with “ST BlueMS” app found on Apple Store and Google Play.
But the best way to get started is with SensorTile kit including SensorTile core module and:
STLCR01V1 cradle board with a footprint for SensorTile core board, HTS221 humidity and temperature sensor, a micro-SD card socket, a micro USB port, a lithium-polymer battery (LiPo) charger, and a SWD header.
A LiPo rechargeable battery and a plastic case for the cradle board, SensorTile module, and battery
STLCX01V1 Arduino UNO R3 compatible cradle expansion board with analog stereo audio output, a micro-USB connector for power and communication, a reset button and a SWD header.
A programming cable
I could not find a price for SensorTile core module, but STEVAL-STLKT01V1 SensorTile kit can be purchased for $80.85 directly on STMicro website or their distributors. Visit SensorTile kit’s product page for further information include hardware design files, quick start guide, software and firmware downloads, purchase links, and more.
The Embedded Linux Conference and OpenIoT Summit Europe 2016 conferences took place on October 11 – 13 in Berlin, Germany, with many interesting talks about Linux, development boards, power management, embedded systems, software optimization, tools, and so on, as well as a few keynotes.
The Linux Foundation has recorded most talks and keynotes, and made the videos available on their website. A free registration is required, and will redirect you to the full unlisted playlist on YouTube.
Tim Bird keynote can be watch directly without registration.
Freescale first unveiled i.MX6 processor family at CES 2011. Since then NXP has acquired Freescale, and kept working on the processors and even recently unveiled NXP i.MX 6ULL Cortex A7 processor promising 30 percent more power efficiency than its nearest competitors, and designed for “cost-effective solutions for the growing IoT consumer and industrial, mass markets”.
NXP i.MX 6ULL key features and specifications:
CPU – ARM Cortex A7 core @ up to 528 MHz with 128KB L2 cache
Memory I/F – 16-bit DDR3/DDR3L, LPDDR2 memory support
Storage I/F – 8/16-bit parallel NOR flash / PSRAM, dual-channel Quad-SPI NOR flash, 8-bit raw NAND flash with 40-bit ECC, 2x MMC 4.5/SD 3.0/SDIO Port
Display & Camera I/F
Parallel LCD Display up to WXGA (1366×768)
Electrophoretic display controller support direct-driver for E-Ink EPD panel, with up to 2048×1536 resolution at 106 Hz
8/10/16/24-bit Parallel Camera Sensor Interface
2x USB 2.0 OTG, HS/FS, Device or Host with PHY
Audio Interfaces – 3x I2S/SAI, S/PDIF Tx/Rx
2x 10/100 Ethernet with IEEE 1588
2x 12-bit ADC, up to 10 input channel total, with resistive touch controller (4-wire/5-wire)
Package – MAPBGA 0.8mm pitch 14 x 14mm, MAPBGA 0.5mm pitch 9 x 9mm
The company explain the new processor offer a “natural upgrade” for customer’s designs based on ARM7 & ARM9 processor, for example for smart grid applications. The new i.MX 6ULL (Ultra Lighter than Light? 🙂 ) processor appears to be a cost down version of i.MX 6UL (Ultralight) with fewer security features (e.g. no SIMV2/EVMSIM), and lower maximum CPU frequency, but adding ePD support (according to specs, but not shown on block diagram)
i.MX 6ULL Development Kit – Click to Enlarge
NXP i.MX 6ULL processor is sampling now, with mass production expected in October 2016, and pricing to start at $3.50 in 10,000 unit quantities. The Linux BSP and i.MX 6ULL evaluation kit with 512MB RAM, 256MB SPI flash, and various ports will also be available in October. More details can be found on NXP i.MX6 ULL product page.
Minitbox Mini is a low power mini PC based on Compulab Fitlet-i computer powered by AMD A4 Micro-6400T “Mullins” processor and running Linux Mint that was launched in 2015. There’s now an upgraded model – Mintbox Mini Pro – with a more powerful AMD A10 Micro-6700T, more RAM and storage with 8GB DDR3 and a 120 GB SSD, and faster and better networking thanks to 802.11ac WiFI, and dual Gigabit Ethernet.
Click to Enlarge
Mintbox Mini Pro specifications:
SoC – AMD A10 Micro-6700T 64 bit quad-core processor up to 1.2 GHz / 2.2 GHz (Boost frequency) with Radeon R6 Graphics (4.5W TDP)
System Memory – 8 GB DDR3L-1333 SDRAM (SODIMM module)
Video Output – Dual HDMI 1.4a up to [email protected]; support two independent displays
Output – HDMI, digital S/PDIF 7.1+2 channels output, 3.5 mm stereo audio jack
Input – Digital S/PDIF input, 3.5mm audio microphone jack
Codec – Realtek ALC886
Connectivity – 2x Gigabit Ethernet (Intel I211), 802.11ac Wi-Fi (2.4/5GHz dual band Intel 7260HMW) + Bluetooth 4.0
Cellular – Support for mobile data communication with on-board 6-pin micro-SIM socket
USB – 2x USB 3.0 + 4x USB 2.0 including one USB 2.0/eSATA combo port.
Expansion – miniPCIe (normally used for WLAN); mSATA socket (used by SSD)
Other I/Os – RS232 mini serial connector
Power Supply – Unregulated 10 to 15V DC; 12V/3A power supply included
Power Consumption – 4.5 to 10.5 Watts
Dimensions – 10.8 cm x 8.3 cm x 2.4 cm
Weight – 250g
Temperature Range – Commercial: 0°C to 70°C; Extended: -20°C to 70°C; Industrial: -40°C to 70°C
The mini PC is pre-loaded with Linux Mint 18 Cinnamon 64-bit, but in case you’d change your mind, it also supports Windows 7/8/10, other 32-bit and 64-bit Linux distributions, and unnamed 32-bit and 64-bit Embedded OS.
The device ships with the power supply, an HDMI to DVI adapter, a 3.5mm audio jack to to RCA cable, two WiFi antennas, a mini-serial to DB9-male adapter cable, and the mSATA heatsink.
Click to Enlarge
The company also published a comparison table showing the differences between Mintbox Mini and Mintbox Mini Pro.
Since AMD Mullins processor are not quite as common as Intel Cherry Trail/Braswell processors, it might be interesting to compare AMD-A10-Micro-6700T to a better known processor, and I’ve done so by pitting it against Intel Celeron N3150 Braswell processor found in mini PCs such as MINIX NGC-1.
Based on GeekBench 3 results, multi-core performance is about the same, but single core performance of A10 Micro-6700T is about 34% faster. CPUBoss also reports that the AMD processor should consume less than the Intel one, as the former is rated 4.5 W TDP against the latter 6W TDP. How much a given mini PC will consume will depend on the overall system design.
We’ve been blessed with a wide range of low cost Allwinner H3 boards thanks to Shenzhen Xunlong Orange Pi and FriendylARM NanoPi boards. Recently, armbian developers have been focusing on NanoPi NEO board, and they’ve now released Debian Jessie and Ubuntu Xenial with Linux 4.6.7 and Linux 4.7.2. The latter is mainline kernel with some patchsets for Ethernet.
You can download the Linux 4.6.7 based “beta” images from armbian NanoPi NEO page, and selected the “Vanilla” versions, then flash then one a micro SD card as you would normally do. Linux 4.7.2 based “experimental” images with USB OTG support and schedutil cpufreq governor can be found on the separate server in a temporary directory.
Ethernet and throttling are working (the latter not as efficient as with legacy kernel but at least it protects the SoC from overheating). Please note that all vanilla kernel images currently suffer from random MAC addresses on reboot so better choose a static IP address configuration. Also keep in mind that current cpufreq scaling settings in mainline kernel don’t know the 912 MHz operating point so with our default /etc/defaults/cpufrequtils contents you end up with 816 MHz max cpufreq (feel free to adjust, throttling works with these images).
They have not released equivalent “Vanilla” images for Allwinner H3 Orange Pi boards, but I guess it will done once NanoPi NEO images are proven to be working reasonably. Eventually, you’ll be able to download the Linux kernel directly from Kernel.org for your Allwinner H3 boards. I’ve been told this won’t happen in Linux 4.8, but I’d assume Linux 4.9 or 4.10 are realistic targets.
Since NanoPi NEO board has been designed for IoT applications with low load too, armbian community has also investigated how to lower power consumption, and after finding that disabling Ethernet PHY saved 200 mW, and disabling HDMI and the GPU 210 mW, they created a new tool (bash script) called h3consumption, and working on all Allwinner H3 boards. You can find more power savings tips and h3consumption options in the forums.
lowRISC is not the only open source processor project based on RISC-V instructions, as researchers at ETH Zurich university and the University of Bologna have developed PULPino open-source processor based on RISC-V instructions set, optimized for low power consumption, and targeting wearables and the IoT applications.
PULPino Block Diagram (Click to Enlarge)
PULPino is a single core processor derived from the PULP project (Parallel Ultra-Low-Power Platform) featuring a quad core RISC-V SoC with new RI5CY Signal Processing ISA extensions designed by the universities.
The core has an IPC (instructions per cycle) close to 1, full support for the base integer instruction set (RV32I), compressed instructions (RV32C) and partial support for the multiplication instruction set extension (RV32M). PULPino also features peripherals such as I2S, I2C, SPI and UART.
PULPino FPGA Implementation Running on ZedBoard
PULPino has already been taped out as an ASIC in UMC 65nm at the beginning of the year, but the RTL code be run on Xilinx Zynq-7010 powered Zedboard, and all source files, test programs, and tools have been released in github under the Solderpad hardware license derived from the Apache 2.0 software license meaning you can basically do what you want with the design.
An implementation of FreeRTOS is said to be available for PULPino and PULP processor, but I could not find it. They’ve also compared RI5CY core to ARM Cortex-M4 to show a similar area and power consumption using 65nm process.
You can find more details about PULPino and PULP projects on Pulp Platform website, and PULP page on ETH Zurich university website. lowRISC.org also mentions there are three proposed projects for PULPinfo as part of Google Summer of Code: porting CMSIS-DSP to PULPino, Doom on PULPino, and porting the Arduino libraries to PULPino.
The Embedded Linux Conference 2016 and the OpenIoT summit 2016 will take place on April 4 – 6, 2016 in San Diego, California, and over 800 attended will meet including kernel & system developers, userspace developers, and product vendors. The Linux Foundation has recently published the schedule, so I’ve had a look at some of the talks, and designed my own virtual schedule to find out more the current development focus although I won’t attend.
Monday April 4
10:40am – 11:30am – Linux Connectivity for IoT by Marcel Holtmann, Intel OTC
There are many connectivity solutions that available for IoT. For example Bluetooth Low Energy, 802.15.4, Zigbee, OIC, Thread and others. This presentation will provide and overview of the existing technology and upcoming standard and how they tie into the Linux kernel and its ecosystem.
11:40 – 12:30 – BoF: kernelci.org: A Million Kernel Boots and Counting by Kevin Hilman, BayLibre
The kernelci.org project is currently over 1500 kernel boot tests per day for upstream kernels on a wide variety of hardware. This BoF will provide a very brief overview of kernelci.org and then be a forum for discussion and feature requests, how to participate and next steps.
14:00 – 14:50 – Hello, Brillo by Dave Smith, NewCircle
Brillo is Google’s latest embedded offering, based on Android, intended for low-power devices in the IoT market. But what does “based on Android” really mean? In this session, we will compare the Brillo stack to Android, examining what has been added as well as removed. You will learn how Google attempts to bring secure solutions to IoT using Brillo and Weave—Google’s IoT connectivity protocol. We will also discuss the current status of user space application development on the platform.
15:00 – 15:50 – Reducing the Memory Footprint of Android by Bernhard Rosenkränzer, Linaro
The Android team inside the Linaro Mobile Group has been working on reducing the memory footprint of the Android system – cutting around 70 MB off the memory used by a newly booted AOSP build on Nexus 7.
This talk describes what techniques we have used to save memory without having too much of a negative impact on performance.
16:10 – 17:00 – Bringing Display and 3D to the C.H.I.P Computer by Maxime Ripard, Free Electrons
Every modern multimedia-oriented ARM SoC usually has a bunch of display controllers, to drive a screen or an LCD panel, and a GPU, to provide 3D acceleration. The framework of choice to support these controllers in Linux is the DRM subsystem.
This talk will walk through the DRM stack, the architecture of a DRM/KMS driver and the interaction between the display and GPU drivers. The presentation is based on the work we have done to develop a DRM driver for the Allwinner SoCs display controller, as part of enabling the C.H.I.P platform with the upstream Linux kernel. The work done to make the ARM Mali OpenGL driver work on top of a mainline DRM/KMS driver will also be detailed.
17:10 – 18:00 – Bluetooth on Modern Linux by Szymon Janc
This presentation will help audience to better understand how Linux supports fast changing and evolving technology as Bluetooth. It will provide comprehensive guide on BlueZ 5 Bluetooth stack architecture demystifying transition from BlueZ 4 systems. This includes integration with external components like PulseAudio or NetworkManager. Audience will also have good overview of how Bluetooth on Linux can help building Internet of Things by supporting bleeding edge features like LE Connection Oriented Channels, 6LowPAN, LE Secure Connections and more.
18:10 – 19:00 – BoF: Device Tree by Frank Rowand
The Linux kernel Device Tree continues to evolve. The presentation portion of the BoF will include improvements completed over the last year, the status of partially completed projects, and plans for the coming year. Suggestions for changes and improvements to Device Tree will be solicited from the participants. Come meet Device Tree maintainers and contributors.
Please bring questions, complaints, solutions, reports of what is not working for you, and wish-lists.
Tuesday April 5
9:00 – 9:50 – Implementing Miniature Smart Home by Constantin Musca, Intel
We are at the beginning of a new era of technologies computing where almost every device communicates with each other or communicates with their environment. It is about the so called Internet of things (IoT).
A major line of investigation is the smart home and the benefits of having one and what it takes to make a home “smart”. These solutions are to make life easier and free more time. How cool is to be able to control the temperature, lights, music or garage door remotely.
The smart house system runs on a Brillo OS device which exposes standard peripherals’ APIs and can be controlled through the standard Weave interface using your Google account with commands like: open_garaje_door, set_living_temperature, play_song or close_curtains.
For the moment we only implemented this solution on a miniature house, but we are looking forward to extend it to a larger scale and use it in real
I’ve found a demo of the project, and they’ve actually used a house as big as “standard” apartment… Maybe it’s only considered miniature if you live in the US…
10:00 – 10:50 – Developing a Standard Interface for Drones by Tully Foote, Open Source Robotics Foundation
With the proliferation of a huge variety of drones it is becoming more important to develop standard interfaces which can enable software to be reused across whole classes of airframes. In his work on ROS (the Robot Operating System), Tully Foote has been actively involved in many standard interface proposals and refinements and is the maintainer of many of the core message definitions. In this talk he will review the important aspects of designing standard interfaces using examples from indoor robotics, autonomous cars, and more. The talk will conclude with a proposed standard interface for drones with the hope of sparking further discussion in the greater drone community.
11:20 – 12:10 – Linux Power Management Optimization on the Nvidia Jetson Platform by Merlin Friesen, Golden Gate Research
Powerful cellular System on Chip (SoC) Application Processors with multiple ARM cores and a vast array of peripherals are now readily available for non cellular applications and are finding use in areas such as vision processing, robotics and drones. These devices, due to their use in mobile smart phones and tablets, have highly optimized power management features and come with Linux kernels that complement the hardware.
The Linux based Nvidia Jetson platform is used in this presentation to give developers a hands on overview of SoC power management and techniques they can use to monitor and improve power consumption in their own designs.
14:00 – 14:50 – libiio – Access to Sensor Devices Made Easy by Lars-Peter Clausen, Analog Devices
The Linux IIO (Industrial IO) framework is tasked with handling configuration and data aggregation from and to all sorts of sensors and data converters including ADCs, DACs, temperature sensors, accelerators, chemical analysis, light sensors, lifestyle sensor and many more. libiio is a system library hides the low-level details of the IIO kernel ABI and provides a simple yet complete programming interface. It implements functionality often required by applications which want to access IIO sensor devices.
This presentation will give an introduction to the core concepts of libiio, it’s API and how it can be used in applications to access sensor devices, enabling attendees to develop their own applications being able to access sensor devices fast and efficiently. In addition it will discuss the existing infrastructure and tools that have been built around libiio.
15:00 – 15:50 – Communication for IoT: MQTT Development and Integration by Rodrigo Chiossi, Intel
MQTT is a lightweight publish/subscribe protocol intended for small sensors and mobile devices. It is designed to work with high-latency and unreliable networks and is the protocol of choice of many IoT solutions, such as IBM Bluemix and Amazon AWS IoT. MQTT is also one of the communication protocols of the Soletta Project, which uses Mosquitto, a compact open source implementation of MQTT, as backend.
This technical talk is focused on the integration between Mosquitto and Soletta. The Soletta MQTT API will be presented along with the process of integrating Mosquitto into Soletta’s mainloop. We then discuss the main limitations and problems of this process, and present the solutions applied. Lastly, we take a look at live demos of Soletta MQTT working with IBM Bluemix and Amazon AWS, with code snippets and development guidelines for those platforms.
Wednesday April 6
9:00 – 9:50 – Static Code Checking in the Linux Kernel by Arnd Bergmann, Linaro
As a maintainer of the arm-soc tree, Arnd is responsible for the quality of a lot of new code that gets merged each release. His dirty secret is that he never runs any of it on real hardware, but that makes static compile-time checking at even more important.
10:00 – 10:50 – HDMI CEC: What? Why? How? by Hans Verkuil, Cisco Systems Norway
The HDMI connector features a CEC (Consumer Electronics Control) pin that allows connected devices to detect and control one another. This talk describes what CEC is, why you would want to implement support for it, and how you can use a new kernel framework and API to support this HDMI feature.
This talk will include a short introduction of the upcoming CEC framework and the utilities that use it.
11:05 – 11:55 – Embedded Linux 3D Sensing: Minnowboard Meets RealSense by Miguel Bernal Marin, Intel
Robots and Drones use sensing devices (like cameras, lasers range-finders, ultrasonic sonars) to get information from external environment and it is used avoid obstacles or create maps. The use of 3D depth cameras helps to do these task easily. But the current 3D depth cameras in the market are heavy to load on a drone or the smaller doesn’t have Linux support. In this presentation, Miguel will explain how to use the Intel RealSense 3D camera in a Linux environment using a Minnowboard Max, a small 3D camera that can be used in outdoors. In addition, Miguel will go into detail on how to use it using the Clear Linux Project for Intel Architecture.
13:35 – 14:25 – Survey of Open Hardware 2016 by John Hawley, Intel
This is a generalized talk where we’ll generally compare, contrast and discuss various things that have happened in the last year regarding Open Hardware. In 2016 this will cover things that happened at the last OSHWA meeting, various new devices that are on the market, and generally focus on devices capable of running and operating system, and not micro-controllers.
14:35 – 15:25 – Zephyr Project: An RTOS to change the face of IoT by Anas Nashif
An increasing number of developers need a scalable, real-time operating system designed specifically for small-footprint IoT devices. It needs to be affordable, easy to use and built with input from the developers using it. An open source RTOS can’t just be called “open” – it must live and breathe “the open source way.” Developers should have influence over the direction of the project and be able to impact its software and hardware architecture support. The OS should also maximize interconnectivity between other devices, contain powerful development tools and come with customizable capabilities. The Zephyr Project offers just that.
This class will give an overview of Zephyr Project. Zephyr is a small, scalable, real-time operating system designed specifically for small-footprint IoT edge devices. Its modular design allows you to create an IoT solution that meets all of your device needs, regardless of architecture. It is also embedded with powerful development tools that will, over time, enable developers to customize its capabilities.
Launched in partnership with the Linux Foundation, the Zephyr project is a truly open source solution focused on empowering community development. The goal of Zephyr is to allow commercial and open source developers alike to define and develop IoT solutions best suited for their needs.
There are so many other interested talks that I did not mention in my list, but that’s what happens when you do a schedule.
You can register online to attend both Embedded Linux Conference and OpenIOT Summit 2016. The fees are as follows:
Early Registration Fee – US$550 through February 21, 2016
Standard Registration Fee – US$650 through March 13, 2016
Late Registration Fee – US$850 after March 14, 2015
Student Registration Fee – US$175
Hobbyist Registration Fee – US$175. You’ll need to contact events [at] linuxfoundation.org to receive a discount code, and you must pay for the fee yourself.