Arduino's Move to a Zephyr RTOS-Based Firmware Makes New Strides with Core v0.3.2
Selected boards, previously built atop Arm's since-shuttered Mbed OS, can now participate in the beta.
Arduino has announced an update to its Zephyr RTOS-based Arduino cores, released following Arm's decision to shutter the Mbed OS project β and while they're still in beta, the new release adds some previously-missing functionality and a range of bug fixes.
"ZephyrOS is an open-source, state-of-the-art, real-time operating system (RTOS) designed for low-power, resource-constrained devices," the Arduino team explains. "We are transitioning Arduino cores to ZephyrOS to ensure continued support and innovation for developers. By adopting ZephyrOS, we are introducing a more modern, scalable, and feature-rich RTOS that aligns with the evolving needs of the embedded development community. This ensures that Arduino users have access to a robust, actively maintained platform for creating advanced applications."
Arduino's shift to the Zephyr RTOS came about out of necessity, when Arm announced it was to cease development of the Mbed OS on which Arduino had previously built some of its "core" toolchains. In December last year the first Zephyr-based cores were released β using, as a launching-point, a Google Summer of Code (GSoC) project from 2022.
Zephyr cores are only available for a subset of Arduino microcontroller boards, targeting those previously using Mbed OS: the Arduino GIGA R1 WiFi, the Arduino Opta programmable logic controller (PLC) family, the Arduino Portenta H7 and Portenta C33, and Arduino Nano 33 BLE. The new release brings an upgrade to Zephyr RTOS 4.2.0 and a range of bug fixes β while also addressing some previously-missing functionality.
Among the new features are SPI, pulse-width modulation (PWM), video, and analog to digital converter (ADC) support on the Arduino Portenta H7, Wi-Fi and Bluetooth Low Energy (BLE) support on the Arduino Portenta C33, support for the GalaxyCore GC2145 image sensor, and "in progress" support for the Arduino GIGA Display Shield.
These come on top of Arduino's previous promises for the next-generation cores, including faster compilation, smaller binaries, the ability to make use of Zephyr subsystems including threading, interprocess communication, and real-time scheduling, and dynamic sketch loading whereby sketches are compiled as ELF executable binaries to be loaded by a precompiled Zephyr firmware.
Those wanting to try out the new cores β which, Arduino warns, should still be considered beta status β can add the package index https://downloads.arduino.cc/packages/package_zephyr_index.json
to the Arduino IDE; bug reports should be submitted on the GitHub repository, where the source code is made available under the permissive Apache License 2.0.