Global training solutions for engineers creating the world's electronics
Menu

Zephyr Essentials

Standard Level - Live Instructor-Led Training

4 days (In-Person) 8 hours per day or
5 sessions (Live Online) 6 hours per session


Zephyr is a modular, highly portable, real-time operating system with an associated ecosystem to build secure, connected, and future-proofed devices. Zephyr is not just another RTOS but a complete development platform. It can help you achieve a lot with optimal effort. 

This course helps you to navigate the steep learning curve for Zephyr and gives you a solid foundation to get you project-ready quickly.

This training class is designed around interactivity and attendees engagement with hands-on workshops designed to reinforce learning through practical applications. 

  • How Zephyr can help you to build smarter and ship faster.

  • How to structure, configure, develop, debug, trace and test Zephyr firmware.

  • A solid grounding of the Zephyr ecosystem and common services, subsystems and APIs.

  • How to customize and extend Zephyr for your product.

  • Industry best practices (tips and tricks, tools, workflow) used by Zephyr professionals.

This course is designed for anyone interested in, or tasked with, the development of a resource-constrained Real-Time system using Zephyr, for example, software engineers, firmware engineers, hardware engineers, field engineers, and project managers.

  • Familiarity with C programming and embedded systems.

  • Basic knowledge of embedded processors and peripherals.

  • Some familiarity with embedded OS concepts, like tasks, priority, schedulers, and message passing is beneficial but not essential as we cover the concepts.

Prior attendance of C Programming for Embedded Systems or equivalent is recommended.

Doulos Course materials are renowned for being the most comprehensive and user-friendly available. Their style, content, and coverage is unique and has made them sought-after resources in their own right.

The materials include:

  • Fully indexed course notes creating a complete reference manual.

  • Workbook full of practical examples and solutions to help you apply your knowledge.

  • Access to the training platform, even after the training has completed.

Introduction

Provide background information about the training and the Zephyr project.
Welcome • Course Objectives • Background on Zephyr • Getting started with Zephyr • Development environments Setup (native, container, IDE extension) • Practical tips. Bonus Appendix: Useful Resources.

Zephyr for Embedded Products

Discuss what makes Zephyr a good fit for embedded products.
Why use Zephyr? • Hardware Support • Ecosystem Overview • Licensing • Product Examples.

Developing with Zephyr

Discuss practical considerations when developing embedded products with Zephyr.
How to build smarter and launch faster • Product Considerations • Release Lifecycle • Security and Regulation • Software update.

Zephyr Ecosystem Overview

Give an overview of the Zephyr Ecosystem.
Architecture • Kernel and OS services • Connectivity Stacks • Proprietary Extensions.

Zephyr Build System

Understand the Zephyr Build System.
West Workspace and Manifest • west tool • Managing Workspace • Building and Flashing applications • Using emulators • Zephyr Build Systems • YAML files.

RTOS basic

An introduction to Real-Time OS fundamentals.
Software Concurrency • Concurrent Programming Model (cooperative, preemptive) • Real-time Systems.

Zephyr Kernel

Understand threads in Zephyr and how the kernel schedule them.
Creating Threads (static, runtime) • Threads priority • Threads Scheduling & Lifecycle • Preemptible vs Cooperative threads • Threads APIs • Product development Tips • Bonus appendix: configuration options, SMP, power management, how to assign priority.

Devicetree and Hardware Abstraction Layer (HAL)

Get introduced to devicetree.
Why devicetree? • The classic approach: Hardware Abstraction Layer • Devicetree and Zephyr • From Bare Metal… to Zephyr • Blinky walkthrough • Using devicetree to your advantages.

Kconfig

Learn about Kconfig and how to configure Zephyr for your application.
What is Kconfig? • Inspecting configuration with menuconfig/guiconfig • Application Custom Kconfig • Config Symbol definition • Kconfig files and Config fragments • Pay only for what you configure • Product Tips for configuring your product.

Kconfig Troubleshooting

Learn how to resolve the most common issues related to Kconfig.
prj.conf not found • Config fragment is not applied • Unmet Kconfig dependencies • Linker error undefined reference __device_dts_ord_XXX.

Zephyr Debugging Part 1

Learn how shells, logging and tracing help with application debugging during the development phase.
Shells • Configuring and Using Shells • Logging Subsystem • Configuring and Using Logging • Selecting Logging backend • Common Kconfig Options • Driver Specific Debug Options • Tracing Subsystem • Configuring and Using Tracing.

Zephyr Debugging Part 2

Learn how to debug Zephyr applications.
Cross-debugging • GDB and VScode • Use Case: Debugging Fatal Error • Post-Mortem Debugging • Core Dump • Use Case: Stack Overflow • Tips for Devices in the Fields.

Logging

Learn how to leverage the logging APIs for your applications.
Architecture overview • Log Module • Logging APIs • Using Kconfig Log template • More on Logging.

Hardware Integration

Discuss how to integrate peripherals in Zephyr.
Hardware Integration procedure • Basics Checks • Devicetree bindings • Creating a Devicetree Overlays • Enabling the Driver • Using drivers in application • Practical Product Tips & Best Practices.

Working with Devicetrees

Introduce the syntax and usage of devicetrees to gain a deeper understanding of how devicetree is used in Zephyr.
Tree Structure • Devicetree Files • Merge & Overlay • Basic syntax: node, properties type • Standard properties • Common nodes (special nodes, addressable resources, interrupts…) • Querying the Devicetree pogrammatically.

Devicetree Troubleshooting

Learn how to resolve the most common issues related to devicetrees.
Gosh, I got hundredths of cryptic compilation errors! • Common devicetree issues • How to resolve • Practical tips and tricks to ease troubleshooting.

Synchronization

Learn about the synchronization services and APIs provided by Zephyr and how to use them.
New bugs category • More on Threads Scheduling • Race Conditions • Semaphores • Priority Inversions • Mutex • Events • Condvars • Spinlock • Other Mechanisms • Tips and Best Practices.

Passing Data

Introduce the data passing primitives and APIs offered by the Zephyr Kernel.
Introduction • Overview Passing Primtive • Using Kernel FIFO, LIFO and Queues • Using Message Queue • Bonus Appdenix: Kernel Pipe and Mailbox.

ZBus

Discuss Zbus, a lightweight and flexible software bus for applications.
Why ZBus? ZBus key concepts • Channels, Listeners, (message) Subscribers • Zbus APIs • Virtual Distributed Events Dispatcher • Higher Locker Priority Protocol • Going further.

Timers and Interrupts

Learn about timers and interrupts.
Measuring Time • Working with Timers • Interrupt Service Routine • Top/Bottom halves • System and Custom Workqueue • Working with Workqueues • Using interrupts.

Device Drivers

Discuss the steps required to develop and integrate a custom device driver in Zephyr.
Driver Development recipe • Devicetree bindings and Kconfig • Device Driver Model • Driver Implementation • Driver Registration • System Initialization (initlevels) • Using the Drivers • Product development tips.

Working without Hardware

Learn about QEMU and native simulator and discuss how these technologies can be used during product development.
QEMU • QEMU Use Cases • native_sim • native_sim Use Cases • Emulated Devices • Testing drivers • Creating a Device Driver Emulator.

Ztest and Twister

Introduce Zephyr’s test framework, Ztest, and the test runner tool twister.
Twister • Using twister • Test reports and scenarios • Ztest • Writing Tests with Ztest • Hardware In the Loop (HIL) testing • Going Further.

Quality Assurance

Discuss common tools available with Zephyr to assess and improve the quality of your product.
Footprint and Memory Usage • Static Code Analysis • Software Bill of Materials (SBOM). Bonus Appendix: Code Coverage.

Writing Zephyr Application

Discuss a typical project structure for applications.
How to integrate proprietary code • Zephyr module • Creating and Using a Zephyr Module • Creating a Custom Workspace for your product • Zephyr Example Application.

Flying your Kite

Wrap-up, free Q&A sessions, further Zephyr and Doulos Resources.

Optional Topics:

The following sections are available in the Zephyr Essentials Manual but are not normally covered in our public offering. This content is provided for further study following the live delivery:

Memory Layout

Discuss aspects related to data and code placement in Zephyr.
Introduction • System Memory Map • Code and Data placement • Linker files in Zephyr • Code and Data Relocation • Custom Linker Scripts • Boot Process.

Dynamic Memory

Discuss how to use dynamic memory in Zephyr.
Dynamic Memory Landscape • System Heap • Synchronized Heaps • Low-level Heap Allocators • Using sys_heap • Using slabs • Memory Blocks • Further Aspects.

Full details below

Zephyr Essentials

Course Dates

Enquire for pricing

07 Dec 2026 ONLINE EurAsia Enquire
07 Dec 2026 ONLINE Americas Enquire
01 Feb 2027 ONLINE EurAsia Enquire
01 Mar 2027 ONLINE Americas Enquire
05 Apr 2027 ONLINE EurAsia Enquire
26 Apr 2027 ONLINE Americas Enquire

View all

Looking for team-based training, or other locations?

Complete an enquiry form and a Doulos representative will get back to you.

Contact Enquiry Form