With the Zephyr 3.4 release being less than a month away, there is increased activity in the Zephyr repository, and some substantial features are about to be merged. While this week might seem a bit more quiet than usual (which, in Zephyr terms, still means that 130+ pull requests got merged 😊) I expect next week to be packed with some really cool stuff.
Zephyr SDK gets updated to 0.16.1
A really big benefit of Zephyr is the fact that it comes with its own SDK or, in other terms, a pre-packaged version of the toolchains for all the architectures that Zephyr support, plus host tools such as OpenOCD, QEMU, etc. This can throw some people off as it feels like “downloading the earth” the first time you setup your Zephyr developer environment, but this is incredibly convenient on the long run. It also makes your life easier since you know you’re going to be basing your development off the exact same one that Zephyr maintainers all around the world (and our CI jobs) are using daily.
A minor update of the SDK (v0.16.1) has been made available by Stephanos this week. Check out the release notes and consider upgrading your SDK install if any of the addressed issues and added toolchains are relevant for you (if not, there’s probably no pressing need for you to update).
I’ll probably come up with a blog post fully dedicated to MCUmgr in the future, as it’s one of those Zephyr capabilities that deserve to be more widely advertised. In a nutshell, it lets you perform all kinds of device management operations on your device, over-the-air (ex. BLE) or through serial or UDP connections.
With PR #54041, MCUmgr’s Simple Management Protocol (SMP) has been updated and commands can now return more detailed error responses for each command group.
- Jailhouse is a static partitioning hypervisor that can be used to create and manage isolated environments, or “cells,” on a multi-core system. PR #55202 makes it possible for cells to communicate with one another using Ethernet over Inter-VM shared memory.
- The LSM6DSV16X sensor from STMicroelectronics is a high-performance, low-power 6-axis IMU, featuring a 3-axis digital accelerometer and a 3-axis digital gyroscope. #57688 added a driver for the sensor and, similar to the LSM6DSO16IS I covered last week, it is also possible to use the sensor as a sensor hub.
- There’s some cool stuff in the works around all things battery charging, and a related addition this week is the fact that fuel gauge drivers can now expose
RemainingTimeAlarmproperties. (PR #57446)
- The MEC172x from Microchip is a Cortex-M4F based embedded microcontroller well-suited for e.g. keyboards or notebooks. It provides Hardware Root of Trust and has a hardware accelerator for cryptographic operations. #57511 added a driver for the chip’s crypto engine, and exposes APIs to use hash algorithms such as SHA-224, SHA-256, SHA-384, and SHA-512. A code sample has also been added.
- The driver for OnSemi’s MT9M114 camera sensor now supports YUV pixel format. Special thanks to @jeronimoagullo for their first accepted contribution to Zephyr! 🥳
Boards & SoCs
- NXP contributed support for the MIMXRT1062-FMURT6 board #57382
- A Bluetooth driver for the PSoC™ 6 BLE Prototyping Kit has been added with PR #57160.
- I2S support has been added for NXP RT595 board (#57620).
- Zephyr’s RTIO (real-time I/O) subsystem exposes a standard mechanism to enable complex, event-driven I/O handling by abstracting out some of the complexity inherent to DMA and interrupts. With PR #57823 the RTIO subsystem now provides an API for cancelling submission queue entries.
- PR #54761 adds support for block transfer in LWM2M.
- When using BLE Audio’s Basic Audio Profile, the Read Long procedure is now supported in both the unicast client and server. #54363
As always please feel free to jump in with your thoughts or questions in the comments below. See you next week!
Catch up on all the editions of the Zephyr Weekly Update: