Zephyr 3.5 has been out for a week (here’s the announcement blog post if you missed it!), and earlier this week we celebrated the release by having a live stream where many maintainers as well as our release managers Fabio and Johan joined me to discuss some of the additions to 3.5.
Catch up with the recording on YouTube, and consider subscribing to the channel if you haven’t already to be notified of upcoming videos and live streams.
The main development branch is now open again, so it’s time for for this week’s update!
Documentation improvements
- I have said it many times and will say it again: you don’t have to contribute code to help make Zephyr better! Helping us improve our documentation is also highly appreciated 🙂
When browsing docs.zephyrproject.org you now have the opportunity to directly open an issue regarding the documentation page you are currently browsing.
Furthermore, the page footer now indicates the last time someone updated the contents of a page. This can give you a hint about how up-to-date the information you are reading is.
- In an effort to better document all the APIs in Zephyr, a new CI task is generating a documentation coverage report for all the public headers.
All contributors and maintainers are encouraged to look at the report to see if there’s areas where Doxygen comments might be missing. Reports are generated for each pull request (e.g.https://builds.zephyrproject.io/zephyr/pr/12345/api-coverage/
) and are also available formain
here: https://docs.zephyrproject.org/api-coverage/latest/.
New configdefault
Kconfig keyword
In order to make it easier for developers to define custom default values downstream without needing to re-specify dependencies of the symbols they which to “override”, a new configdefault
extension to Kconfig allows to do just that.
Jordan Yates, who contributed this extension, shared the following example which I think is pretty self-explanatory:
config MY_COMPANY_APPS
bool "Apply defaults for internal applications"
configdefault BT
default y if MY_COMPANY_APPS
configdefault MCUMGR
default y if MY_COMPANY_APPS && BT
See PR #51316 for more background and details, as well as Zephyr documentation.
west 1.2.0
A new 1.2.0 version of west was released ahead of Zephyr 3.5.0, and I wanted to call out a welcome addition to the list of commands.
west grep
allows you to… well… grep for content across your entire workspace. This can be really useful when you want to look for something both in the Zephyr codebase and in the various HALs (or any other module really).
More at https://github.com/zephyrproject-rtos/west/releases/tag/v1.2.0
Boards & SoCs
- The DA14695 Development Kit USB is a low cost development board for DA14695 MCU from Renesas. (PR #60086)
- The DSP core of NXP MIMXRT595-EVK is now supported. (PR #61356)
- The Panasonic PAN1783 evaluation board is a development board for the nRF5340 from Nordic Semiconductor. (PR #63104)
- The MikroElektronika ACCEL 13 Click shield is now supported. It features an IIS2DLPC ultra-low power 3-axis accelerometer sensor in a mikroBUS form factor. (PR #63297)
- Added RTC driver for Atmel SAM series. (PR #63962)
- Added CAN controller driver added for Nuvoton numaker series. (PR #64018)
- Added crypto and RTC drivers for Renesas Smartbond. (PR #60238, #63983)
Drivers
- Several LCD displays from SparkFun expose a so-called SerLCD interface, and there is now an auxiliary display driver available for them. (PR #61445)
- Driver added for MEMSIC MC3419 3-axis accelerometer sensor. (PR #62095)
- Some AMD SoCs feature a temperature sensor that can be accessed using a “Sideband Temperature Sensor Interface” (SB-TSI in short). A new driver has been added with PR #60818.
- The ADXL367 is an ultra-low power, 3-axis accelerometer that consumes only 0.89 μA at a 100 Hz output data rate and 180 nA when in motion-triggered wake-up mode! You will have guessed that it now has a driver, added with PR #63800. 🙂 Note that both SPI and I2C are available.
- Introduced new battery charging properties (ex. “health”, precharge current”, …) and support for the BQ24190 from Texas Instruments. (PR #62551)
Miscellaneous
- In Devicetree, a parent node now “inherits” all dependencies from its child nodes. (PR #62417)
- CoAP library now supports echo and request-tag from RFC9175. (PR #63913)
- The handling of unexpected TCP packets within Zephyr’s TCP stack has been improved. A reset (RST) packet is now sent in response to unexpected TCP packets. (PR #64029)
- Network sockets now leverage the recently introduced “object cores”. You may use the
net sockets
shell command to access socket information and statistics. (PR #63339) - IPv4-to-IPv6 mapping is now supported. (PR #63579)
A big thank you to the 24 individuals who had their first pull request accepted since my last post, 💙 🙌: @TomzBench, @karthi012, @marnold-b, @davedesro, @mimbriani, @dennisgr102, @pkoscik, @augustozanellato, @yf13, @Spice-Weasel, @jpmur, @martincalsyn, @nandogalliard, @yeweizy, @mgritz, @pres2300, @photonthunder, @sousapedro596, @FranciszekPin, @Alex-T-Stark, @quic-lingutla, @hlukasz, @arun-mani-tech, and @akaiserUS.
As always, I very much welcome your thoughts and feedback in the comments below!
If you enjoyed this article, don’t forget to subscribe to this blog to be notified of upcoming publications! And of course, you can also always find me on Twitter and Mastodon.
Catch up on all previous issues of the Zephyr Weekly Update: