IoT Zephyr

Zephyr Weekly Update – Bring’em new boards and SoCs!

Before diving into this week’s Zephyr updates, here’s your reminder to save the date for our next Zephyr Tech Talk, on April 3. The new hardware model introduced for Zephyr 3.7 is a huge improvement that will allow Zephyr to stay relevant for increasingly complex embedded hardware systems.

Join us to understand the rationale behind this massive overhaul of the legacy model, and bring all the questions you may have, in particular with regards to migrating existing board definitions that you might be maintaining for your own projects.

Boards & SoCs

Now that the new hardware model has been rolled out, there’s quite a few new boards and SoCs that were waiting for it that could finally get merged. See for yourself:

  • The NXP RW SoC series provides highly integrated wireless (Wi-Fi, BLE, and 802.15.4) MCUs, and PR #69943 introduced support for it in Zephyr. The board definition for RW612 has also been added. This chip is typically sold by module manufacturer such as u-blox, Murata, etc. as a standalone, ready-to-use, wireless module.
  • FRDM-MCXN947 is a compact and scalable development board for rapid prototyping of MCX N94 and N54 MCUs. It is now supported in Zephyr. (PR #69890)
  • Starfive VisionFive2 is a high-performance 64-bit RISC-V single board computer (SBC) with an integrated GPU. (PR #69814)
  • ST25DV-DISCOVERY is a demonstration kit to evaluate the features and capabilities of the ST25DV series. Eve Redero contributed support for this board and I highly encourage you to also read the detailed write-up about the whole process. (PR #70010)
  • Numaker M2L31 SoC series is based on an Arm Cortex-M23 core running at up to 72 MHz, 64 to 512 Kb of ReRAM, and 40 to 168 Kb of SRAM. Typical applications include motor control, PC peripherals, battery management systems, etc. (PR #69778)
  • Adafruit 5×5 NeoPixel Grid BFF is a small shield that can stack on top of QT Py or XIAO boards and features 25 NeoPixel LEDs. It is now supported both as a “classic” LED strip, but also as a display controller using the LED matrix driver introduced last week! (PR #67610)
  • Support for DPPIC (Distributed Programmable Peripheral Interconnect Controller) and IPCT ((Interprocessor Communication Transceiver) peripherals has been added for Nordic Semiconductor nRF54H20. (PR #69811)
  • The STM32 SDMMC driver now also supports eMMC. (PR #69836)
  • New generic driver for NXP MCUX FlexIO. (PR #53748)
  • Support for external NOR flash has been added to FANKE FK7B0M1-VBT6. (PR #68442)
  • I2C support has been enabled on STM32H5 boards. (PR #69094)

General drivers

  • HL7800 cellular modem now supports PPP and CMUX, with the Pinnacle 100 DVK and MG100 from Laird Connectivity (now Ezurio!) updated accordingly. (PR #70060)
  • Added support for minimum supported bitrates in CAN drivers. (PR #69533)
  • ESP32 Ethernet driver now supports setting the MAC address at runtime. (PR #69869)
  • Microchip XEC series KSCAN driver has been converted to use the input subsystem and common keyboard matrix library. (PR #65162)
  • STM32 HCI Bluetooth driver now supports raw mode. (PR #69623)
  • New ADC_DT_SPEC_*_BY_NAME() macros allow to get ADC io-channel information from devicetree by name. (PR #68247)


  • west flash and west debugserver commands can now be used with the native_sim board. (PR #68835)
  • The network logging (syslog) backend now supports TCP in addition to UDP. (PR #68307)
    • Since the DHCP protocol allows to provide the address of a syslog server as part of the lease (option 7), the new CONFIG_LOG_BACKEND_NET_USE_DHCPV4_OPTION option allows to automatically set the syslog server address when the Log Server option is set by the DHCP server. (PR #69328)
  • Telnet shell backend has been refactored to use the new Socket service library. (PR #69612)
  • Stereo support has been added to the Bluetooh LE audio broadcast sink sample. (PR #69341)
  • “Change Microphone Gain” procedure has been implemeted in the Bluetooth CAP commander. (PR #66748)
  • Bluetooth CAP shell module now properly supports broadcast commands. (PR #68550)
  • New sys_slist_find() method to find an item in a singly linked list without removing it. (PR #66621)
  • POSIX:
    • Added support for getmsg() and getpmsg() (PR #68516)
    • Added a “small” runtime implementation for sysconf() (PR #69882)

A big thank you to the 13 individuals who had their first pull request accepted this week, 💙 🙌: @ene-steven, @KyleKotowick, @poialex, @alpineisle, @krisnaresi, @kurtjd, @nordic-segl, @michalek-no, @GRobertZieba, @sasataku, @kica-z, @grahas, and @marwaiehm-st.

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:

By Benjamin Cabé

Benjamin Cabé is a technology enthusiast with a passion for empowering developers to build innovative solutions. He has invented an award-winning open source and open hardware artificial nose that he likes to use as an educational platform for people interested in diving into the world of embedded development.
He is currently a Developer Advocate for the Zephyr Project at the Linux Foundation and lives near Toulouse, France, where he enjoys baking sourdough bread with the help of his artificial nose.

Leave a Reply

Your email address will not be published. Required fields are marked *