As software and embedded developers continue to come to grips with the requirements and security challenges over the proliferation of the Internet of Things (IoT), two of the biggest players in the open source community – Linux and Eclipse – have launched projects to support future deployments.
Eclipse backs life on the Edje
At March’s EclipseCon conference, independent software vendor MicroEJ unveiled the Eclipse Edje open source project, which sets out to define a set of software application programming interfaces (APIs) required to deliver Internet of Things (IoT) services that meet the performance and memory constraints of microcontroller-based devices. It will also provide ready-to-use software packages for targeted hardware that developers can get from third parties for quick and easy development of IoT device software and applications.
The edge devices connected to the cloud that constitute the IoT require support for building blocks, standards and frameworks like those provided by the Eclipse Foundation projects Californium, Paho, Leshan, Kura, Vorto, etc.
Because of the large deployment of Java technology in the cloud, on PCs, on mobile devices and servers, most projects above are implemented using the Java language. Deploying these technologies on embedded devices requires a scalable IoT software platform that can support the hardware foundations of the IoT, i.e., microcontrollers (MCUs).
The Eclipse Edje project will deliver a standard library called hardware abstraction layer (HAL) for accessing hardware features delivered by microcontrollers, such as GPIO, DAC, ADC, PWM, MEMS, UART, CAN, network, LCD, etc.
To achieve this goal, Edje will also define the minimal set of APIs required for delivering IoT services, leveraging widely deployed technologies, and meeting performance and memory constraints of IoT embedded devices. The project will ensure that applications developed for Edje APIs will run across hardware suitable for IoT deployment. Eventually, it aims to provide ready-to-use reference implementations for available hardware and software platforms.
“Eclipse Edje provides a foundation for deploying IoT frameworks and standards on cost-effective, resource-constrained hardware. Hosting the Edje project at Eclipse ensures that the full stack is available from the same source and is properly integrated,” said Mike Milinkovich, Executive Director of the Eclipse Foundation. “Being part of Eclipse, the Edje project can expect quicker and broader adoption in the industry, through open source, and by leveraging the Eclipse community and ecosystem.”
The Edje project description is available at https://projects.eclipse.org/projects/iot.edje and will be based initially on source code contributions by MicroEJ.
Linux breathes life into Zephyr
From the Linux Foundation, meanwhile, comes the Zephyr project, an open source collaborative effort to bring together leaders from across the industry to build a real-time operating system (RTOS) for the IoT. Early supporters include Intel (including its acquired business groups Altera and Wind River), NXP Semiconductors, Synopsys and UbiquiOS Technology.
Industrial and consumer IoT devices require software that is scalable, secure and enables seamless connectivity. Developers also need the ability to innovate on top of a highly modular platform that easily integrates with embedded devices regardless of architecture.
While Linux has proven to be a wildly successful operating system for embedded development, some IoT devices require an RTOS that addresses the very smallest memory footprints. This complements real-time Linux, which excels at data acquisition systems, manufacturing plants and other time-sensitive instruments and machines that provide the critical infrastructure for some of the world’s most complex computing systems.
The Zephyr project prioritises modularity and security by providing the freedom to use the RTOS as is, or to tailor a solution. The focus on security includes plans for a dedicated security working group and a delegated security maintainer. Broad communications and networking support is also addressed, and will initially include Bluetooth, Bluetooth Low Energy and IEEE 802.15.4, with plans to expand communications and networking support over time.
The project aims to incorporate input from the open source and embedded developer communities and to encourage collaboration on the RTOS. It will also include powerful developer tools to help advance the RTOS as a best-in-breed embedded technology for IoT.
Zephyr will include broad architecture support over time, with the following platforms initially supported: Arduino 101 (Intel Curie module containing x86 and Synopsys ARC EM cores); Arduino Due (Atmel SAM3X8E ARM Cortex-M3 CPU); Intel Galileo Gen 2; and NXP FRDM-K64F Freedom board (Kinetis K64F ARM Cortex-M4 MCU).