Companies embrace mbed OS for IoT development
When ARM® launched the ARM® mbed™ OS at ARM TechCon in late 2014, it was heralded as an open source means to accelerate prototyping and development of IoT devices, based on the ARM Cortex®-M processor series. It provides connectivity, security and device management for IoT device operation with a low power budget.
The free-of-charge operating system is designed for use with the company’s 32-bit M-series microcontrollers and was described at its launch as bringing security and connectivity for the IoT and a way to accelerate IoT deployment. It is made up of an mbed OS (see Figure 1) and is compatible with an ecosystem of mbed Cloud Partners, thanks to mbed Device Server.
Open and Interoperable
As an open system, mbed OS can be used with other operating systems, like iOS and Android and uses open source IoT protocols such as the web transfer Constrained Application Protocol (CoAP) and Hypertext Transfer Protocol (HTTP), Message Queue Telemetry Transport (MQTT) for machine-to-machine (M2M) connectivity, the cryptographic protocol Transport Layer Security (TLS) or Transmission Control Protocol (TCP), Datagram Transportation Layer Security (DTLS) or User Datagram Protocol (UDP) and Open Mobile Alliance Lightweight M2M (OMALWM2M) standard. The developer is then freed up to focus on writing code specifically for security and communications protocols that will sit on top of the mbed OS kernel.
The mbed Device Server has built-in security management, load balancing and distributed clustering for end-to-end, secure communication between devices and networks. It manages devices and application data and enables access to the ARM ecosystem of IoT devices.
ARM’s mbed OS runs on an MCU or a System on Chip (SoC). It controls the operation of the IoT device with a C++ application framework and component architecture to create device applications, eliminating much of the low-level work normally associated with MCU code development, says the company (Figure 2).
On the other hand, mbed’s wake-action-sleep paradigm fits the loT use case perfectly.
The mbed OS is event driven and not a Real Time Operating System (RTOS). Rather than using switches or timers, it wakes at an interrupt from a peripheral device, such as a sensor, takes action, determines whether further action is needed and then returns to sleep mode. This saves power but does not have the time-critical determinism of an RTOS, which is required in automotive systems, avionics and industrial automation, for example. On the other hand, mbed’s wake-action-sleep paradigm fits the IoT use case perfectly.
At Embedded World, Express Logic announced that its ThreadX RTOS and NetX Duo IPv6 network stack will complement mbed OS for applications that need RTOS capabilities making use of the mbed Client solution (Figure 3).
ThreadX provides pre-emptive scheduling capabilities, with round-robin scheduling and Pre-emption-Threshold Scheduling, priority inheritance, event-chaining, event trace, runtime stack analysis and deterministic processing for multi-tasking and real-time applications. The RTOS is certified to TÜV IEC 61508, functional safety standards for industrial and transportation, IEC 62304, the safety standard relating to medical, and to DO-178B (Software Considerations in Airborne Systems and Equipment Certification) for avionic designs.
Support for ThreadX also accesses the company’s X-Ware middleware for the mbed OS community, with GUIX graphics, NetX Duo TCP.IPv4 and IPv6 stacks, USBX and USB stacks and TraceX, the real-time event trace analysis tool. The RTOS is already used by developers of ARM-based IoT devices, exploiting the small footprint and accessible source code with a choice of Application Program Interfaces (APIs).
William E. Lamie, president, Express Logic, believes that the addition of multi-tasking for IoT devices using ARM mbed OS adds connectivity needed for an interoperable IoT. “IoT devices have complex networking requirements. Developers need a complete and easy-to-use IPv6 TCP/IP stack to meet the challenges of the connected network.” The NetX Duo provides both IPv4 and IPv6 functionality and the ability to configure interface addresses using the Stateless Address Auto configuration protocol, which simplifies and automates IP address allocation to meet the increasing demand for IP addresses to be applied to more devices as the IoT grows.
Power conscious system design is critical with IoT applications. The power efficiency of the ARM Cortex-M architecture is enhanced by power management APIs from ARM partner and microcontroller supplier Silicon Labs. The company has introduced an API for the ARM mbed platform. The APIs will allow developers to manage processor and peripheral states for power management. The Gecko microcontrollers using the APIs can automatically determine and enable the optimum sleep mode based on the microcontroller peripherals that are in use at any one time, to reduce system-level energy consumption. I/O operations can be executed in the background, when the microcontroller core is in the sleep state or during other processing tasks.
The EFM32 Gecko mbed-enabled Starter Kits became available in April 2015. Initial platforms supporting mbed are the Wonder Gecko, Leopard Gecko, Giant Gecko and Zero Gecko kits. Developers who already have EFM32 kits will be able to enable mbed to the hardware with a software update.
One common IoT use example offered by the company is the energy profile of an application updating a clock display every second on a memory LCD. Automatically selecting the sleep mode, combined with low energy, autonomous microcontroller peripherals, reduces current consumption from 1.03 to 0.1mA, says the company.
A key objective for the mbed community is to accelerate prototyping and development of IoT devices. The ARM mbed IoT Starter Kit – Ethernet edition is designed to speed prototyping (Figure 4). Data from Internet connected devices is moved to IBM’s Bluemix cloud—the platform used to build, manage and run web and mobile applications—supplying analytics and services for the IoT.
Embedding mbed OS into devices handles the intelligence and connectivity quota of the IoT equation for cloud-connected devices. It is these cloud-connected devices that will make up IBM’s smart cities, where information about a device’s surroundings will unlock the potential of the IoT, said Krisztian Flautner, general manager, IoT, ARM. He was speaking at the launch of the Starter Kit, the day before Embedded World.
The IoT Starter Kit has an ARM mbed-enabled development board with a Kinetis K64, an ARM Cortex-M4 operating at 120MHz and with 1Mbyte flash memory and 256kbyte RAM. There is also a sensor I/O shield.
At the launch, ARM confirmed that it was planning future releases of the Starter Kit to run mbed OS.
This article was sponsored by ARM.