Categories
IoT Zephyr

Zephyr Weekly Update – Charge me up!

Happy Friday! In case you missed it, yesterday I had the opportunity to join Robert and Michael from Arm (thanks again for the invitation, guys!) as part of their Innovation Coffee series. I forgot to actually bring some coffee, but we had a nice chat nevertheless, and you may want to catch up the recording.

Also on YouTube, and also live, don’t forget to join the first ever Zephyr Tech Talk next week next Wednesday, Sept. 13, at 1pm UTC.

And now for this week’s update…!

New battery charger subsystem

There’s been a lot happening recently in Zephyr around all things battery-powered, and this week a new subsystem has been introduced to help dealing with battery chargers.

Among other features, battery chargers play a crucial role in preventing your smartphone or other battery-powered devices from overheating and basically exploding during recharging. 🙂

They typically expose a range of properties that allow to get information about the battery (voltage, temperature, …), as well as settings that can be applied to e.g. limit the charging current (again, you don’t want that poor battery of your to explode!).

You can check out pull request #56666 for more context.

Boards & SoCs

  • Support has been added for Silicon Labs BRD4170A board. (PR #62145)
  • Texas Instruments SimpleLink CC13x2/CC26x2 family now support MCUboot out-of-the-box, as PR #62239 introduced the changes required to properly described the flash partitions it requires.
  • If you are a user of NXP RT1170, you can now use the LinkServer utility to flash your board. (PR #62229)

Drivers

  • A driver has been added for the F75303 temperature sensor from Fintek. The sensor has three temperature channels in total: one local (on-chip), and two remote. (PR #60833)
    Something that’s pretty cool is that Pawel (a first-time contributor to Zephyr!) also added an emulator for the sensor! 🙌
  • The AD56xx series of DACs (Digital-to-Analogue Converters) from Analog Devices is now supported. (PR #60347)
  • New driver for Texas Instrument’s VIM (Vectored Interrupt Manager), which is an external interrupt controller used e.g. in Beaglebone AI64. (PR #60856)
  • PWM driver for STM32 now supports capturing on four channels. (PR #57607)
  • Power management support has been added to the very popular LM75 digital temperature sensor, so that reading from it properly fails when the sensor is not powered. (PR #61167)

Miscellaneous

  • Two significant improvements to I²C logging were introduced with PR #60301:

I²C log outputs are now better aligned to make them much easier to compare visually:

D: I2C msg: io_i2c_ctrl7_port0, addr=50
D:    W      len=01: 00
D:    R Sr P len=08:
D: contents:
D: 43 42 41 00 00 00 00 00 |CBA.....

You can now use the Devicetree to filter which subset of I²C communications you want to get logs for. Very smart and very cool!

/ {
    i2c {
        display0: some-display@a {
            ...
        };
        sensor3: some-sensor@b {
            ...
        };
    };

    i2c-dump-allowlist {
        compatible = "zephyr,i2c-dump-allowlist";
        devices = < &display0 >, < &sensor3 >;
    };
};
  • For maintainers and contributors, please be aware that a new extension to Zephyr’s documentation generation system (Sphinx) allows to document code samples more precisely, in particular by indicating which API they are a good sample for, so that they then show up nicely in the associated documentation. Of course, I encourage everyone to help with porting over existing code samples to the new system 🙂 (PR #62029)
.. zephyr:code-sample:: blinky
   :name: Blinky
   :relevant-api: gpio_interface

   Blink an LED forever using the GPIO API.
  • Sysbuild now allows to configure/build applications in a specific order. (PR #57884). Read more here.

A big thank you to the 11 individuals who had their first pull request accepted this week, 💙 🙌: @piotrnarajowski, @warrenb78, @chienhung-lin, @inteljiangwe1, @semihalf-anikiel-pawel, @semihalf-jakiela-albert, @RichardSWheatley, @rriveramcrus, @andrewmclachlanadi, @rtalbott-tmo, and @ihidchaos.

As always please feel free to jump in with your thoughts or questions in the comments below. See you next week!

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 *