Categories
IoT Zephyr

Zephyr Weekly Update – Jan. 24, 2025

Before diving into some recent and noteworthy updates to the Zephyr codebase since my last post, I want to draw your attention to the short Zephyr Diversity & Inclusion Survey we are conducting until the end of February.

I often get feedback along the lines of “We’re an online community, so how could we have a diversity issue? We don’t even know contributors’ gender, color, etc.!”, but the reality is that inclusion challenges can go much deeper than just gender or ethnicity. For example, some people might struggle engaging with the project due to not being comfortable with English, suffering from a disability preventing them to use some of the tools the project uses or recommends using, and so many other reasons…

This survey is a first step to better understand the diversity and inclusion issues in the Zephyr community, and an opportunity to hear about how some other projects/communities might be addressing these issues. Please take a few minutes to fill it out and share it with your friends and colleagues. The more responses we get, the better we can understand the issues and work on improving them.

A banner for "Zephyr Diversity and Inclusion Survey"

And now for your weekly updates 🙂

New boards and SoCs

Only calling out a few of the new boards, but you might be interested in hearing that a new BeagleBoard joined the party, in the form of the BeagleY-AI, a pretty beefy, TI AM67A powered, board targeting the automotive market.

BeagleY-AI

But also:

New MCTP subsystem

MCTP (Management Component Transport Protocol) is a transport layer protocol designed for communication between various management controllers within a system. MCTP is independent of the physical layer, allowing it to operate over various transport mechanisms such as PCI Express, Ethernet, USB, and more.

Thanks to PR #75743 by @teburd, a new MCTP subsystem has been introduced. This subsystem leverages the capabilities of libmctp, an open-source implementation of the MCTP protocol, and initially integrates with Zephyr’s async UART API.

Drivers

  • Microchip 10Base-T1S Ethernet PHY driver, supporting LAN865x and LAN867x PHYs (PR #81271 by @ParthibanI17164)
  • AD4114 ADC Driver, which is a single supply, multichannel, 31.25 kSPS, 24-Bit, Sigma-Delta ADC working over SPI. (PR #82816 by @pcurt)

Miscellaneous


A big thank you to the 37 individuals who had their first pull request accepted since the last post, 💙 🙌: @nhutnguyenkc, @yasinustunerg, @mcuxted, @ParthibanI17164, @ZiadElhanafy, @jhol, @tpennors, @aahmed-dewinelabs, @kbidani, @KevinTangDev, @nrbrook, @felf-zhaw, @kietavainen, @granquet, @srvanloon-priv, @nikolaptr, @CienetmarkChen, @ttwards, @narangmayank, @Jaakko-Bit, @Maartenwn, @iabdalkader, @DaGigabyte, @ofirshe, @pcurt, @gatzka, @CsBoBoNice, @td-pradecki, @ipankr, @gbmhunter, @lam-borg, @wwhheerree, @jacob-wienecke-nxp, @sebhub, @guenzel-kinexon, @silabs-BastienB, and @jcandkk.

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:

Categories
IoT Zephyr

2 boards you can finally use with Zephyr!

Can you tell that I am a bit behind with the Zephyr “Weekly” Updates?… I am trying to think what’s the best format going forward to make sure y’all don’t miss the important changes coming out of Zephyr’s firehose and its hundreds of pull requests merged every week… while not drowning under said firehose myself 🙂 In the meantime, I will try to keep sharing blog posts as regularly as possible!

This week, I want to highlight two new boards (and their underlying SoCs) for which support was added in Zephyr during the last weeks of 2024, and that I know a lot of people have been eagerly waiting for. Namely, Raspberry Pi Pico 2 and WCH CH32V003EVT, are now officially supported in Zephyr… Happy New Year!

Raspberry Pi Pico 2

Raspberry Pi Pico 2

This has been a long time in the making but the latest addition to the series of supported Raspberry Pi boards in Zephyr—after the RP2040, a.k.a Pico, the Raspberry Pi 4 Model B and Raspberry Pi 5—is the Raspberry Pi Pico 2 and its RP2350 dual-core microcontroller.

Kudos to Andrew Featherstone for driving this effort and to everyone else who helped get this merged upstream through testing, reviews, etc.

WCH CH32V003EVT

RISC-V has been a hot topic in the Zephyr community pretty much from day 1, and when the WCH CH32V003 micro-controller appeared a little over two years ago, it was only a matter of time before someone would try to get Zephyr running on it 🙂

WCH CH32V003EVT

In case you’re not familiar, the CH32V003 is a RISC-V micro-controller that runs at up to 48 MHz, has 2 KB of SRAM and 16 KB of flash storage. So… pretty small, eh? What’s small, too, is its price: it sells for under $0.10!

As of last month, initial support for CH32V003 is now available, alongside the reference dev board, the CH32V003EVT. There is obviously not a lot that one can fit in just 2KB of RAM, but all basic peripherals are supported (clock, GPIO, PWM, UART, etc.), and more WCH pull requests are already lined up.

There are dozens of other boards being added to Zephyr every month, but I thought that these two were particularly noteworthy, and I am really looking forward to seeing what people will start running on them now that they support Zephyr!


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:

Categories
IoT Zephyr

5 Tips to Make the Most of Zephyr Documentation

It’s already feature freeze day for Zephyr 4.0, and it’s been two months since I last posted a Zephyr Weekly Update. Oops! Personal life got in the way, a baby girl joined our family since then. So, there’s my excuse! 🙂

Since it wouldn’t do justice to any of the features introduced over the past few months by cramming them all into one post, I decided to focus on some recent improvements to the Zephyr documentation that you ought to know about.

New board catalog

There are well over 600 boards supported in Zephyr, and until very recently we didn’t really provide an easy way for someone to easily get a sense of which boards were available for a given architecture or SoC family, or from a given vendor. Instead, one would be served with a ginormous “flat” list of hundreds of boards that was really hard to navigate.

With the new board catalog, you can now easily filter boards according to various criteria, and narrow down the list of 620+ boards to only the boards that you care about in just seconds.

And more is coming! This catalog will soon also allow you to do something that’s even more useful when prototyping a new project which is filtering by supported hardware capabilities (think: “I am looking for a board with a display, a Bluetooth chip, and from vendor Foo, what do you have in stock for me, Zephyr?”).

Towards Zephyrpedia? 🙂

You may have noticed that the documentation page for -most- boards recently changed.


That new card on the side of the page, similar to what you would find on Wikipedia, is a first step towards trying to provide more structure and uniformity to the documentation of the various boards supported in Zephyr and, more importantly, to make sure that every piece of information that can automatically be deduced from things like Devicetree, or the board hardware model, is used to generate the documentation.

The intent is to make it way less likely that things like the Supported Features section of a board’s doc page get outdated, since they will be generated from a single source of truth.

Finding the right code sample

We have nearly 500 different code samples so, as you might have experienced, it can sometimes be hard to find the right sample for your needs.

Somewhat similar to the board catalog, you can now quickly search for samples right from the samples index page. As a lot of effort was spent carefully reviewing the description of the samples, and making sure they contain the right keywords in them, you should be able to find what you’re looking for much more easily.

Try it for yourself, whether you care about mqtt, audio, servo, battery, or whatever else, you will hopefully find at least one sample that will help you get going!

What’s also new is that the README for each code sample now includes a button that can directly take you to the source code of said sample on Github!

C API tooltips

You may have noticed that the documentation of Zephyr’s C API is not “inlined” in the main documentation page anymore, and you may now refer directly to the Doxygen documentation to access the reference documentation of the various APIs.

However, in many cases you probably won’t have to leave the main Zephyr documentation since everytime an API is mentioned in the documentation, you can hover over it to get a tooltip which will directly show you the full Doxygen documentation of that API.

Where’s the driver for that compatible?

Often times, when adding or editing a node in your Devicetree, looking at the documentation of the binding properties is not enough to understand how the actual driver matching the node’s compatible makes use of the properties, and what behavior to expect.

From the Devicetree bindings documentation page, you may now click on the compatible you’re interested in and, alongside the documentation of the various binding properties, you can now actually go directly to the matching driver’s source code to see how it’s implemented. Handy, eh?


I am sure there are a lot more tips I could share, but I am also quite certain there are things you would like to see implemented in the documentation so please feel free to join the #documentation channel on Discord to get the conversation going!


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: