Skip to main content
BlogZephyr Developer Summit

Dev and Architecture Best Practices

By October 26, 2023No Comments

The Zephyr Developer Summit, hosted under the first-ever Embedded Open Source Summit in Prague, Czech Republic, on June 27-30 included presentations, BoFs, and training designed for real time problem solving and deep discussions. More than 1,300 people registered for the EOSS conference – representing 375 organizations across 56 countries around the globe. Zephyr had 75+ technical sessions (in-person and on-demand) for 3 tracks focused on users of Zephyr, developers contributing upstream, and maintainer-specific topics.

All of the videos from the Zephyr Developer Summit can be found on the Zephyr Youtube Channel. Each week, we’ll highlight a few videos in a blog for easy access. Today, we’re featuring a few sessions focused on dev and architecture best practices including, “A Bridle for Your Kite – Best Practices for Downstream Development with Zephyr,” “Practical Tips to Boost Your Productivity When Using Zephyr,” “How I Fell in Love with Zephyr – a System Architect’s Tale,” “Manifests: Project Sanity in the Ever-Changing Zephyr World,” and “Tutorial: Time-to-Market With Zephyr and Pigweed.”

A Bridle for Your Kite – Best Practices for Downstream Development with Zephyr – Stephan Linz, Senior Embedded Software Engineer at Navimatix GmbH & Tobias Kästner, Staff Engineer at UL Method Park GmbH

With west and the CMake build system Zephyr already offers a lot to address many of the challenges of embedded software development. Rooted in the Open/Closed principle, many of these tools and subsystems can be extended to increase productivity. The Bridle open source project aims to serve as a comprehensive blueprint for the development of embedded software. Teams can use it as a scaffold to implement product specific applications, subsystems and test suites as well as hardware descriptions and documentation. Making use of the available extension points Bridle implements strategies to efficiently migrate to newer upstream versions, prepare contributions for upstream while making sure that those parts meant to be kept private remain so during the entire product lifecycle. Using examples from the Bridle project, the video will explain how to add useful west commands for downstream tasks and how to extend to tailor document generation for downstream needs. The video will also show how to extend Zephyr’s CMake system with downstream modules and how even a project specific package can be created. In the last section the presented possibilities will be compared to typical project requirements encountered in regulated environments such as the medical industry.

[embedyt] https://www.youtube.com/watch?v=dN3-nK18pMY[/embedyt]

Practical Tips to Boost Your Productivity When Using Zephyr – Benjamin Cabé, Developer Advocate for the Zephyr Project, The Linux Foundation

Developing embedded applications using modern real-time operating systems (RTOS) can be challenging, and going from a quick prototype to a production-ready application can be daunting. In this talk, we will be going through concrete examples of embedded development best practices, and useful development tools that can not only save you time, but also help you build more robust applications. We will be using the Zephyr RTOS as an example, but the concepts and tools we will be discussing are applicable to any RTOS. Some of the topics we will be covering include: * Simplifying testing through emulation software (ex. Wokwi, Renode, qemu, …) * Boosting you command line * Setting up CI/CD for your embedded project * Leveraging Software Bill of Materials (SBOM) to improve security and traceability * Leveraging some cool Visual Studio Code extensions for embedded development By the end of this presentation, participants will have gained practical insights and knowledge to improve their productivity when developing embedded applications using an RTOS, and Zephyr in particular.

[embedyt] https://www.youtube.com/watch?v=azoP3xsZAlE[/embedyt]

How I Fell in Love with Zephyr – a System Architect’s Tale – Tobias Kästner, Staff Engineer at UL Method Park & Stephan Linz, Senior Embedded Software Engineer at Navimatix GmbH

Tobias Kästner designs system and software architectures for medical devices for more than ten years. In this time he has seen and suffered through a lot of woes and problems, stemming from decades-old development procedures and ineffective communications within product development teams. Worse yet, many persistent beliefs about how projects ought to be run have become completely inappropriate for today’s connected and ever faster moving world. Having followed Zephyr ever since its 1.10 release, the speaker has been using it in numerous projects collecting a considerable amount of experience to share. In his talk he will explain what profound impact technologies such as Kconfig or the Device tree have on the collaboration of hardware and software developers alike. Being also an advocate of model based systems engineering Tobias will use examples from his real-world projects to show how system models can inform downstream engineering activities. Thanks to Zephyr’s many clever design decisions, collaboration can be made more effective and the risks of costly misunderstandings can be significantly reduced. The talk concludes with some ideas what the future might hold and what still needs to be done for the Zephyr project to succeed in the medical device and similar industries.

[embedyt] https://www.youtube.com/watch?v=rG4rC5oLx7Y[/embedyt]
Manifests: Project Sanity in the Ever-Changing Zephyr World – Mike Szczys, Developer Relations at Golioth
Zephyr has a robust “manifest” system that you can use to lock each software component in your project to a specific branch, tag, or commit. At first glance it may not sound like much, but if you use it wisely, every project will build without fail whether it’s been a week, a month, a year, or a decade since you last compiled. The update cycle is (thankfully) very quick with Zephyr. Users who install one central version of Zephyr and use it for several different projects are bound to encounter version incompatibilities when those projects do not update at the same pace as the RTOS. This is the reality of any rapidly improving software ecosystem, and I’ll show how to use the manifest system so your project builds are always stable. This talk covers how to create project-level manifest files that install a dedicated copy of Zephyr and all other library dependencies. Once that’s in place we’ll use the manifest to pull in your own custom board definitions, out-of-tree helper files, and some other goodies that keep your firmware stable, modular, and easy to upgrade, all at the same time.
[embedyt] https://www.youtube.com/watch?v=PVhu5rg_SGY[/embedyt]
Tutorial: Time-to-Market With Zephyr and Pigweed – Yuval Peress, Senior Software Engineer at Google
In my opinion, one of the greatest benefits of Zephyr is the ability to get an application up and running quickly and with little to no overhead. For fast paced start-ups this means being able to buy a Zephyr supported board off the shelf and building out a prototype. These benefits are highly synergistic with both the Pigweed library and emulated tests.  During the talk, I’ll take the audience through the process of building out an embedded application from the ground up using Zephyr + Pigweed while setting up testing infrastructure using emulators. Tooling includes: gRPC and HDLC encoding for communication Capturing events, logs, traces, and snapshots to gather information about the device on the field. Reducing image sizes with an extensible hash based string token database The audience will gain exposure to the various Pigweed tools and libraries available to them with a strong focus on features that should improve “time-to-market”.  See https://pigweed.dev/ for more information.
[embedyt] https://www.youtube.com/watch?v=ytMZSilDvgk[/embedyt]
Watch the rest of the Zephyr Developer Summit videos here. The schedule and links to the PPT presentations can be found here. Photos from the EOSS can be found here.

For more information about the 2024 event, stay tuned by subscribing to the Zephyr quarterly newsletter or connect with us on @ZephyrIoTZephyr Project LinkedIn or the Zephyr Discord Channel to talk with community and TSC members.