Categories
IoT Zephyr

Zephyr Weekly Update – Networking goodness

Happy Friday! Welcome back for another edition of the Zephyr Weekly Update… with two weeks worth of news this time around 🙂

In case you missed it, I highly recommend you catch up the recording of this week’s Zephyr Tech Talk. We discussed the new hardware model introduced for the upcoming Zephyr 3.7 release, the kind of use cases it allows to address, and what you need to do to migrate your existing board definitions. We had well over 200 people attending—a record!

And now, for some of the things that recently landed in the main Zephyr tree…

Use host networking stack in native simulator

The native simulator is getting a lot of love recently, and a noteworthy improvement is the fact that there is now a way to directly use the host’s networking stack, which means it’s now much easier to leverage networking in the simulator, without having to rely on TUN/TAP interfaces and error-prone configuration scripts.

Read more in the documentation of the native simulator. (PR #65116)

“Cooked mode” capture

On the topic of networking, it is now possible to perform so-called “cooked mode capture” of network traffic. In a nutshell, this means that it’s now possible to capture the packets that are being sent and received by the Zephyr networking stack without requiring a physical network interface to be present.

More details on how this works in the documentation, as well as the dedicated net-capture code sample. (PR #70926)

Boards & SoCs

  • Seeed Studio XIAO Expansion Board is a cheap yet very complete expansion shield for boards with the XIAO form factor. It includes an OLED display, a microSD card slot, an RTC, and plenty of Grove connectors. Thanks Charles for adding support for it in(PR #69999!
  • ST B-LCD40-DSI1 is a shield with a 4″ WVGA TFT LCD with MIPI DSI interface and a capacitive touchscreen. (PR #70350)
  • WeAct Studio MiniSTM32H743 Core board features a STM32H743VIT6 (Cortex-M7 @ 480 MHz), 2MB of Flash, and 2x 8MB of external Flash. (PR #69267)
  • M5Stack ATOM Lite is a tiny ESP32-PICO-D4 based devkit with an RGB LED, an infra-red LED, and a Grove connector. The really small form factor makes it one of my favorite targets for quick ESP32 tests. (PR #68190)
  • Several new drivers for some NXP peripherals:
    • ESAI (Enhanced Serial Audio Interface), used for serial communication with e.g. DSPs, S/PDIF transceivers, … (PR #68875)
    • ENET QOS (Ethernet QoS).(PR #70637)
    • hwinfo now available for RW SoCs. (PR #70456)

General drivers

  • STTS22H is an ultralow-power, high-accuracy, digital temperature sensor, with an operating range of -40 °C to +125 °C. (PR #68356)
  • Aosong DHT20 temperature and humidity sensor (sometimes found as Aosong AHT20, or Aosong AM2301B, don’t ask me why). (PR #67279)
  • Angst+Pfister oxygen sensors from the MDLx5 series. (ex. FCX-MLD25 & FCX-MLD95). (PR #68689)
  • onsemi MT9M114 is a 1/6″ 1.26 Megapixel CMOS digital image sensor and the Zephyr driver for it was significantly reworked to improve framerate and support more resolutions. (PR #70237)
  • Cellular modem drivers can now expose IMEI and ICCID info. (PR #69217)
  • New GNSS Driver for U-BLOX M10. (PR #68350)
  • New driver for Sitronix CF1133 touchscreen controller. (PR #68321)
  • New driver for Cirque Pinnacle 1CA027 trackpads. (PR #69438)
  • ST LIS2DUX12 accelerometer (ultralow-power 3-axis smart accelerometer, with anti-aliasing filter) is now supported. (PR #65259)
  • Existing MPU6050 has been reworked to now also support MPU6500. (PR #70130)

Miscellaneous

  • LVGL module has been updated to v8.4.0, and LVGL 9 support is imminent! (PR #70470)
  • A significant overhaul of the Virtual LAN (VLAN) implementation . (PR #70345)
  • CONFIG_NET_SOCKETS_POSIX_NAMES Kconfig option is being deprecated. You can read more about why in the migration guide entry that was created for this change. (PR #69950)
  • ram_report and rom_report West targets now show the address of the objects in the output reports. (PR #69542)
  • RTT Shell backend now detects the presence of a host, preventing deadlocks in situations where the shell would end up continually writing to RTT. (PR #68941)
  • Added support to configure BSSID in Wi-Fi connect command. (PR #70024)
  • mDNS responder used to make it mandatory to have all the records set at compile time. It is now possible to provide the records at runtime. (PR #60271)
  • POSIX:
    • Added support for clock_getres(). (PR #70525)
    • Added support for pthread_rwlockattr_setpshared(). (PR #70421)
    • Added support for pthread_attr_getinheritsched() and pthread_attr_setinheritsched(). (PR #68470)
    • Added support for pthread_setschedprio(). (PR #71001)
    • Added missing implementations for POSIX networking API calls. (PR #70635)

A big thank you to the 24 individuals who had their first pull request accepted in the past couple weeks, 💙 🙌: @mayankmahajan-nxp, @swkim101, @fpistm, @erian747, @zakport, @benni44, @clemdy, @ZhaoxiangJin, @zejiang0jason, @akscram, @RickBruyninckx, @kdunn926, @raffarost, @jatedev, @cliu5764, @glneo, @23131dw, @HesselM, @arikgreen, @ringlej, @bmulder-innoseis, @mdubielx, @ct-fk, and @javanlacerda.

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 *