Categories
IoT Zephyr

Zephyr Weekly Update – Always a Zephyr meetup near you!

Happy Friday! Before diving into this week’s news, I wanted to remind you about the now almost weekly Zephyr meetups happening all around the world.

It is really great to see the community coming together to share their experiences, and I highly encourage you to check out if there’s a meetup happening near you. If not, you may actually be interested in starting one yourself!

Next up is Cologne, where a second Zephyr meetup is already held after a very successful first edition a few months back!

Update to Python 3.10 as min version

A small but noteworthy change: ahead of the upcoming Long-Term Support version of Zephyr, and in order to make sure we support a minimum version of Python that’s consistent with their own LTS cycles, Zephyr now requires Python 3.10 as the minimum version. PR #72142

SoC-wide overlays

Historically, Devicetree/Kconfig overlays have always been board specific. With the introduction of the new hardware model, it is now possible to define overlays that apply to an entire SoC series, which can be really convenient, as illustrated with this recent update to the Wi-Fi code sample, which now doesn’t require zillions of repetitive overlays for all the different ESP-32 boards supported in-tree, but instead just a few only based on the actual SoCs.

Bash completion for Twister commands

I am frankly always struggling to know how to run Twister test suites from the command line, and I spend a ridiculous amount of time either going through my shell history or recent CI jobs to find the options I need. Therefore, I am really happy to see that there is now bash completion for Twister! (PR #72167)

Boards & SoCs

  • Support has been added for Ambiq Apollo3 Blue and Apollo3 Blue Plus SoCs, alongside associated evaluation boards. Apollo3 Blue series are ultra-low power Cortex-M4F MCUs with an integrated Bluetooth 5 controller. (PR #67815)
  • New MDIO driver (Management Data Input/Output) for STM32. (PR #71012)
  • New video driver for STM32 Digital Camera Memory Interface (DCMI). (PR #71462)
  • GCC toolchain configuration updated to support Arm Cortex-R82. (PR #72279)

New boards and shields:

  • Added support for Croxel CX1825 Bluetooth prototyping board. (PR #71901)
  • New shield defintion for Seeed Studio Round Display for Xiao. (PR #71239)
  • A small yet noteworthy change to the STM32C0116-DK board definition added last week. This board features a 5‑way joystick hooked up to a single ADC input pin using a resistor ladder. The adc-keys driver allows to quickly define which voltage range corresponds to each key combination, making it straightforward to expose all the relevant key codes to the input subsystem. (PR #72315)
adc-keys {
	compatible = "adc-keys";
	io-channels = <&adc1 8>;
	keyup-threshold-mv = <3300>;

	select_key {
		press-thresholds-mv = <0>;
		zephyr,code = <INPUT_KEY_SELECT>;
	};

	left_key {
		press-thresholds-mv = <670>;
		zephyr,code = <INPUT_KEY_LEFT>;
	};

	// ...
};

Networking

  • I mentioned it was coming last week… turns out it’s already there: the new HTTP server now supports WebSocket! (PR #72241)
  • Added support for gratuitous ARP transmission. A device may send such a packet on a local network to announce or update its own IP-to-MAC address mapping. It’s particularly useful for ensuring that devices that frequently enter deep sleep mode are immediately recognized by their peers upon reconnection. (PR #71873)
  • Added support for IPv6 Privacy Extension (RFC 8981). (PR #71996)
  • Updated hostap module. (PR #71805)

Drivers

  • New driver for Sequans GM02S cellular modem. (PR #72217)
  • New driver for LuatOS Air530z GNSS receiver. (PR #72053)
  • New driver for Texas Instruments INA226 bi-directional current/power monitor, which can be used to sense current/voltage on buses up to 36V. (PR #68368)
  • New multi-function device driver for Analog Devices ADP5585 keypad decoder, I/O expander, and PWM generator. (PR #69330)
  • New driver for IS66WVQ8M4 PSRAM. (PR #70620)
  • Several cool improvements to GROW_R502A fingerprint sensor (why yes, Zephyr has support for fingerprint sensors, in case you didn’t know!). (PR #59654)

Miscellaneous

  • Various Twister optimizations and speedups, which according to the author should speed up execution times by 5-7%. (PR #71694)
  • Added support for Bluetooth Common Audio Profile Commander Reception start procedure. (PR #69593)
  • A couple new useful shell commands:
    • The GPIO shell module now features a toggle command to… toggle a GPIO :). (PR #72362)
    • The I2C shell module now has a direct_read command, which reads directly from the I2C device without first writing a register address. (PR #71928)

A big thank you to the 11 individuals who had their first pull request accepted this week, 💙 🙌: @bogdanovs, @smaerup, @debbiemartinarm, @vThibo, @louis-feller, @RafaelLaya, @russkel, @davidschneider-cpi, @markaj-nordic, @schumphi, and @AlessandroLuo.

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 *