Zephyr Course: Fundamental
iomico has been working with Zephyr RTOS for over 6 years (since 2020) and is actively involved in helping the Zephyr Project ecosystem mature. We want to share our real-world experience to help embedded engineers learn faster and avoid common pitfalls.
Register


Certification
Certification
Participants may receive one of the following certificates:
Attendance Certificate
Awarded to participants who meet at least one of the following requirements:
Complete at least 4 homework assignments, or
Pass both the Midterm Test and the Final Test with a score of 80% or higher.
Completion Certificate
Awarded to participants who meet all of the following requirements:
Complete all homework assignments.
Pass both the Midterm Test and the Final Test with a score of 80% or higher.
Instructors
Instructors

Dawid Marszalkiewicz
Dawid Marszalkiewicz
Embedded Software Engineer, Tech Lead
Embedded Software Engineer, Tech Lead
Dawid Marszałkiewicz is an Embedded Software Engineer and former CTO specializing in Zephyr RTOS, embedded Linux, and secure connected devices. He combines leadership experience with hands-on engineering, helping teams build reliable embedded products and adopt modern development practices. Passionate about knowledge sharing, Dawid regularly conducts technical training and enjoys solving complex engineering challenges alongside development teams.
Dawid Marszałkiewicz is an Embedded Software Engineer and former CTO specializing in Zephyr RTOS, embedded Linux, and secure connected devices. He combines leadership experience with hands-on engineering, helping teams build reliable embedded products and adopt modern development practices. Passionate about knowledge sharing, Dawid regularly conducts technical training and enjoys solving complex engineering challenges alongside development teams.

Mariano Franceschetti
Mariano Franceschetti
Embedded Software Engineer
Embedded Software Engineer
Mariano Franceschetti is an Embedded Software Engineer with experience since 2018. Throughout his career, he has contributed to and enabled innovative solutions across a wide range of industries. Mariano has been working with the Zephyr RTOS for several years and has extensive experience in designing secure and scalable firmware architectures. He enjoys tackling complex engineering challenges and delivering robust, high-quality solutions.
Mariano Franceschetti is an Embedded Software Engineer with experience since 2018. Throughout his career, he has contributed to and enabled innovative solutions across a wide range of industries. Mariano has been working with the Zephyr RTOS for several years and has extensive experience in designing secure and scalable firmware architectures. He enjoys tackling complex engineering challenges and delivering robust, high-quality solutions.

Natalia Pluta
Natalia Pluta
Embedded Software Engineer
Embedded Software Engineer
Natalia Pluta is an Embedded Software Engineer at Iomico. Her journey with Zephyr RTOS began in 2022 at Nordic Semiconductor. Today, she uses that specialized knowledge to help Iomico's clients navigate the complexities of bringing their own projects to life. By pairing firmware expertise with solid testing and clear documentation, she ensures customers have the robust foundations needed to turn complex hardware ideas into reality.
Natalia Pluta is an Embedded Software Engineer at Iomico. Her journey with Zephyr RTOS began in 2022 at Nordic Semiconductor. Today, she uses that specialized knowledge to help Iomico's clients navigate the complexities of bringing their own projects to life. By pairing firmware expertise with solid testing and clear documentation, she ensures customers have the robust foundations needed to turn complex hardware ideas into reality.

Facundo Zingarelli
Facundo Zingarelli
Embedded Software Engineer
Embedded Software Engineer
Facundo is an Embedded Software Engineer with a deep passion for system integration and the intersection of hardware and software. Rooted in an electronic engineering background, he approaches firmware development with genuine curiosity and a continuous drive to learn—whether that means diving into Rust, writing C and C++, or tailoring Zephyr RTOS and Yocto build systems. Facundo loves tackling complex architectural challenges and exploring emerging areas like firmware security, always focused on understanding how systems work from the ground up to build thoughtful, reliable solutions.
Facundo is an Embedded Software Engineer with a deep passion for system integration and the intersection of hardware and software. Rooted in an electronic engineering background, he approaches firmware development with genuine curiosity and a continuous drive to learn—whether that means diving into Rust, writing C and C++, or tailoring Zephyr RTOS and Yocto build systems. Facundo loves tackling complex architectural challenges and exploring emerging areas like firmware security, always focused on understanding how systems work from the ground up to build thoughtful, reliable solutions.
What you'll learn
What you'll learn
What you'll learn
This course is a practical introduction to Zephyr RTOS, designed to take students from "what is Zephyr?" to writing and testing their own drivers. Rather than just following a single board's tutorial, students will learn how Zephyr's environment, configuration system, and driver model work together — so the skills built here carry over to any board or project tackled next.
No prior RTOS experience is required. By the end of the course, students will be comfortable setting up a Zephyr project, configuring it for real hardware, writing basic drivers, and testing their code — the foundational skills for working with Zephyr in any embedded project.
Course Contents
What Zephyr is, how it's organized, and how to set up a working development environment.
west, Zephyr's meta-tool, for managing projects and building a first "Hello World" application.The basics of Kconfig for configuring application features, and Devicetree for describing hardware.
Bringing up support for a custom board, beyond the examples that ship with Zephyr.
Implementing custom Zephyr drivers, and using and configuring existing ones to connect code to real sensors and peripherals.
Using the Shell subsystem to interact with a device and debug it at runtime.
The basics of writing unit tests for a Zephyr application.
An introduction to embedded security concepts and why they matter for real devices.
Format
Format
The course is designed to provide maximum flexibility while ensuring participants receive continuous support throughout the program.
Self-paced video lectures – All lectures are pre-recorded, allowing you to learn at your own pace, at a time that's convenient for you, and revisit the material whenever needed. New lectures are released weekly, with one new lesson becoming available each week. Every lecture is accompanied by a practical hands-on assignment to help you apply the concepts covered in the lesson.
Live Q&A sessions – Interactive live meetings are held every two weeks, giving you the opportunity to ask questions about the previous two lectures, review assignments with the instructors, discuss key concepts, and receive guidance on any challenges you encounter.
Progress assessments – The course includes three assessments to help you track your progress:
Prerequisite Assessment – Evaluate your readiness and identify any knowledge gaps before the course begins.
Midterm Assessment – Covers Lessons 1–4 and helps you measure your progress while encouraging you to catch up if needed.
Final Assessment – Evaluates your overall understanding of the course material and is required to earn the Course Completion Certificate.
Community support – Participants will have access to a dedicated community group for course announcements, discussions, asking questions, and receiving timely support with homework and technical issues throughout the course.
Course Schedule
Course Schedule
Week / Dates | Activities |
|---|---|
Aug 7 | Orientation Kick-off Call Prerequisite Assessment |
Aug 8 – Aug 14 | Module 1: What is Zephyr? |
Aug 15 – Aug 21 | Module 2: West, West Topologies & Hello World |
Aug 22 – Aug 28 | Module 3: Application Configuration with Kconfig |
Aug 28 | Live Meeting 1 |
Aug 29 – Sept 4 | Module 4: Application Configuration with Devicetree |
Sept 5 – Sept 11 | Midterm Assessment (Modules 1–4) |
Sept 12 – Sept 18 | Module 5: Custom Boards |
Sept 18 | Live Meeting 2 |
Sept 19 – Sept 25 | Module 6: Zephyr Driver Development |
Sept 26 – Oct 2 | Module 7: Shell Subsystem |
Oct 2 | Live Meeting 3 |
Oct 3 – Oct 9 | Module 8: Unit Testing |
Oct 10 – Oct 16 | Module 9: Security |
Oct 16 | Live Meeting 4 |
Oct 17 – Oct 23 | Final Assessment |
Nov 2 – Nov 6 | Final Certificates Issued |
Live Meeting Schedule:
Biweekly on Wednesdays at 8:00 PM CET / 3:00 PM Buenos Aires / 2:00 PM EST.
Note:
All live meetings will be recorded and made available for replay. Each module includes a practical hands-on assignment that participants should complete before the corresponding live session to maximize discussion and learning during the meeting.
Week / Dates | Activities |
|---|---|
Aug 7 | Orientation Kick-off Call Prerequisite Assessment |
Aug 8 – Aug 14 | Module 1: What is Zephyr? |
Aug 15 – Aug 21 | Module 2: West, West Topologies & Hello World |
Aug 22 – Aug 28 | Module 3: Application Configuration with Kconfig |
Aug 28 | Live Meeting 1 |
Aug 29 – Sept 4 | Module 4: Application Configuration with Devicetree |
Sept 5 – Sept 11 | Midterm Assessment (Modules 1–4) |
Sept 12 – Sept 18 | Module 5: Custom Boards |
Sept 18 | Live Meeting 2 |
Sept 19 – Sept 25 | Module 6: Zephyr Driver Development |
Sept 26 – Oct 2 | Module 7: Shell Subsystem |
Oct 2 | Live Meeting 3 |
Oct 3 – Oct 9 | Module 8: Unit Testing |
Oct 10 – Oct 16 | Module 9: Security |
Oct 16 | Live Meeting 4 |
Oct 17 – Oct 23 | Final Assessment |
Nov 2 – Nov 6 | Final Certificates Issued |
Live Meeting Schedule:
Biweekly on Wednesdays at 8:00 PM CET / 3:00 PM Buenos Aires / 2:00 PM EST.
Note:
All live meetings will be recorded and made available for replay. Each module includes a practical hands-on assignment that participants should complete before the corresponding live session to maximize discussion and learning during the meeting.
Technical Prerequisites
Technical Prerequisites
1. Programming Foundations
Proficiency in the C programming language is critical for firmware development and driver implementation within the Zephyr ecosystem.
Pointers & Memory Management: Understanding address arithmetic, pointers to structs, and function pointers (essential for the Shell subsystem and driver API structures).
Data Structures: Mastery of
structsandenumsfor hardware abstraction.Preprocessor Macros: Advanced use of
#define, conditional compilation, and stringification for Kconfig and Devicetree integration.Bitwise Operations: Proficiency with AND, OR, XOR, NOT, and bit-shifting for register-level manipulation.
2. Development Environment & Tooling
The Zephyr workflow relies heavily on modern build systems and command-line interfaces.
Linux CLI: Basic navigation (
cd,ls,mkdir), file management, and environment variable configuration.Build Tools & CMake: Understanding the compilation and linking process. Familiarity with CMake syntax is necessary as it manages the project configuration and generates the build system.
Python Ecosystem: Ability to manage Python environments (virtual environments) and use
pip, as core Zephyr tools likewestandtwisterare Python-based.
3. Version Control (Git)
Students must be comfortable with collaborative Git workflows, as assignments are submitted via forks and specific repository tags.
Basic Commands:
clone,add,commit,push,pull.Collaboration: Creating forks, managing remotes, and submitting Pull Requests (PRs).
Release Management: Creating and pushing tags (e.g.,
L1-task1) for automated validation.
4. Hardware & Architecture (Nice to Have)
GDB Debugging: Familiarity with the GNU Debugger for on-target troubleshooting.
RTOS Concepts: A general understanding of real-time operating systems, multi-threading, and scheduling.
Recommended Learning Resources
Use the following resources to bridge any gaps in your current knowledge before the course start date.
Category | Resource Link | Key Topics Covered |
|---|---|---|
C Pointers | Address arithmetic, struct/function pointers | |
C Macros | Preprocessor directives and stringification | |
C Structs/Enums | Hardware abstraction with data structures | |
Linux CLI | Directory navigation & management | |
CMake | Project structure & syntax | |
Git & GitHub | Cloning, Branching, PRs, Tags | |
GDB Debugging | On-target debugging and troubleshooting | |
RTOS Concepts | Multithreading and scheduling basics |
Hardware Requirements
To participate in hands-on labs, students must have a development kit supported by the Zephyr Project.
Supported Boards: Common options include nRF52/nRF53 series, STM32, or ESP32. You can check if your board is supported by Zephyr here.
Development Tools: Ensure you have the required debug probe (e.g., J-Link, ST-LINK) and necessary cables for your specific kit.
Trusted by engineers from
Trusted by engineers from
Testimonials
Testimonials
Highly recommend iomico's Zephyr Fundamentals course. It is well-structured, deeply practical, and offers excellent hands-on experience. The trainers provide great real-world exposure to debugging, unit testing, and Zephyr DTS.

Muralitharan M
Firmware Engineer, NXP
The Zephyr Fundamentals course provided an excellent. The curriculum strikes the perfect balance between theoretical concepts. I am already applying the skills I learned to accelerate the development of our IoT medical and clean energy projects at Vortan.
Highly recommended for any engineer looking to master professional-grade firmware development.

Elius Faustine
Co-Founder/COO, Vortan
Thanks iomico, your knowledge and dedication have been invaluable both to us and to the Zephyr community. It was truly a pleasure to learn from such distinguished instructors as Dawid Marszałkiewicz and Natalia Pluta.

Hazem Khaled Mohamed
Embedded Software Engineer, Axxcelera
The course was a very valuable and practical. It helped me to build a strong foundation in Zephyr RTOS development through clear explanations and hands-on assignments. Also, it was well-structured, technically focused, and useful for anyone who wants to understand how Zephyr is used in real-world embedded systems.

Muhammad Sufyan Raza
Embedded Software Engineer, Alten
Overall, it was a good, practical course on the basics of Zephyr. It gave me a good overview of what Zephyr can do. The tutors were very skilled and answered all the questions that came up. I look forward to further courses on this topic.

Daniel Hauschild
Project Engineer,
HTK Hamburg GmbH
The best course.

George Emad
Embedded Software Engineer, Cypod Solutions
Highly recommend iomico's Zephyr Fundamentals course. It is well-structured, deeply practical, and offers excellent hands-on experience. The trainers provide great real-world exposure to debugging, unit testing, and Zephyr DTS.

Muralitharan M
Firmware Engineer, NXP
The Zephyr Fundamentals course provided an excellent. The curriculum strikes the perfect balance between theoretical concepts. I am already applying the skills I learned to accelerate the development of our IoT medical and clean energy projects at Vortan.
Highly recommended for any engineer looking to master professional-grade firmware development.

Elius Faustine
Co-Founder/COO, Vortan
Thanks iomico, your knowledge and dedication have been invaluable both to us and to the Zephyr community. It was truly a pleasure to learn from such distinguished instructors as Dawid Marszałkiewicz and Natalia Pluta.

Hazem Khaled Mohamed
Embedded Software Engineer, Axxcelera
The course was a very valuable and practical. It helped me to build a strong foundation in Zephyr RTOS development through clear explanations and hands-on assignments. Also, it was well-structured, technically focused, and useful for anyone who wants to understand how Zephyr is used in real-world embedded systems.

Muhammad Sufyan Raza
Embedded Software Engineer, Alten
Overall, it was a good, practical course on the basics of Zephyr. It gave me a good overview of what Zephyr can do. The tutors were very skilled and answered all the questions that came up. I look forward to further courses on this topic.

Daniel Hauschild
Project Engineer,
HTK Hamburg GmbH
The best course.

George Emad
Embedded Software Engineer, Cypod Solutions
Zephyr Course: Fundamental
iomico has been working with Zephyr RTOS for over 6 years (since 2020) and is actively involved in helping the Zephyr Project ecosystem mature. We want to share our real-world experience to help embedded engineers learn faster and avoid common pitfalls.
Register


Certification
Participants may receive one of the following certificates:
Attendance Certificate
Awarded to participants who meet at least one of the following requirements:
Complete at least 4 homework assignments, or
Pass both the Midterm Test and the Final Test with a score of 80% or higher.
Completion Certificate
Awarded to participants who meet all of the following requirements:
Complete all homework assignments.
Pass both the Midterm Test and the Final Test with a score of 80% or higher.
Instructors

Dawid Marszalkiewicz
Embedded Software Engineer, Tech Lead
Dawid Marszałkiewicz is an Embedded Software Engineer and former CTO specializing in Zephyr RTOS, embedded Linux, and secure connected devices. He combines leadership experience with hands-on engineering, helping teams build reliable embedded products and adopt modern development practices. Passionate about knowledge sharing, Dawid regularly conducts technical training and enjoys solving complex engineering challenges alongside development teams.

Mariano Franceschetti
Embedded Software Engineer
Mariano Franceschetti is an Embedded Software Engineer with experience since 2018. Throughout his career, he has contributed to and enabled innovative solutions across a wide range of industries. Mariano has been working with the Zephyr RTOS for several years and has extensive experience in designing secure and scalable firmware architectures. He enjoys tackling complex engineering challenges and delivering robust, high-quality solutions.

Natalia Pluta
Embedded Software Engineer
Natalia Pluta is an Embedded Software Engineer at Iomico. Her journey with Zephyr RTOS began in 2022 at Nordic Semiconductor. Today, she uses that specialized knowledge to help Iomico's clients navigate the complexities of bringing their own projects to life. By pairing firmware expertise with solid testing and clear documentation, she ensures customers have the robust foundations needed to turn complex hardware ideas into reality.

Facundo Zingarelli
Embedded Software Engineer
Facundo is an Embedded Software Engineer with a deep passion for system integration and the intersection of hardware and software. Rooted in an electronic engineering background, he approaches firmware development with genuine curiosity and a continuous drive to learn—whether that means diving into Rust, writing C and C++, or tailoring Zephyr RTOS and Yocto build systems. Facundo loves tackling complex architectural challenges and exploring emerging areas like firmware security, always focused on understanding how systems work from the ground up to build thoughtful, reliable solutions.
Format
The course is designed to provide maximum flexibility while ensuring participants receive continuous support throughout the program.
Self-paced video lectures – All lectures are pre-recorded, allowing you to learn at your own pace, at a time that's convenient for you, and revisit the material whenever needed. New lectures are released weekly, with one new lesson becoming available each week. Every lecture is accompanied by a practical hands-on assignment to help you apply the concepts covered in the lesson.
Live Q&A sessions – Interactive live meetings are held every two weeks, giving you the opportunity to ask questions about the previous two lectures, review assignments with the instructors, discuss key concepts, and receive guidance on any challenges you encounter.
Progress assessments – The course includes three assessments to help you track your progress:
Prerequisite Assessment – Evaluate your readiness and identify any knowledge gaps before the course begins.
Midterm Assessment – Covers Lessons 1–4 and helps you measure your progress while encouraging you to catch up if needed.
Final Assessment – Evaluates your overall understanding of the course material and is required to earn the Course Completion Certificate.
Community support – Participants will have access to a dedicated community group for course announcements, discussions, asking questions, and receiving timely support with homework and technical issues throughout the course.
What you'll learn
What you'll learn
This course is a practical introduction to Zephyr RTOS, designed to take students from "what is Zephyr?" to writing and testing their own drivers. Rather than just following a single board's tutorial, students will learn how Zephyr's environment, configuration system, and driver model work together — so the skills built here carry over to any board or project tackled next.
No prior RTOS experience is required. By the end of the course, students will be comfortable setting up a Zephyr project, configuring it for real hardware, writing basic drivers, and testing their code — the foundational skills for working with Zephyr in any embedded project.
Course Contents
What Zephyr is, how it's organized, and how to set up a working development environment.
west, Zephyr's meta-tool, for managing projects and building a first "Hello World" application.The basics of Kconfig for configuring application features, and Devicetree for describing hardware.
Bringing up support for a custom board, beyond the examples that ship with Zephyr.
Implementing custom Zephyr drivers, and using and configuring existing ones to connect code to real sensors and peripherals.
Using the Shell subsystem to interact with a device and debug it at runtime.
The basics of writing unit tests for a Zephyr application.
An introduction to embedded security concepts and why they matter for real devices.
Course Schedule
Week / Dates | Activities |
|---|---|
Aug 7 | Orientation Kick-off Call Prerequisite Assessment |
Aug 8 – Aug 14 | Module 1: What is Zephyr? |
Aug 15 – Aug 21 | Module 2: West, West Topologies & Hello World |
Aug 22 – Aug 28 | Module 3: Application Configuration with Kconfig |
Aug 28 | Live Meeting 1 |
Aug 29 – Sept 4 | Module 4: Application Configuration with Devicetree |
Sept 5 – Sept 11 | Midterm Assessment (Modules 1–4) |
Sept 12 – Sept 18 | Module 5: Custom Boards |
Sept 18 | Live Meeting 2 |
Sept 19 – Sept 25 | Module 6: Zephyr Driver Development |
Sept 26 – Oct 2 | Module 7: Shell Subsystem |
Oct 2 | Live Meeting 3 |
Oct 3 – Oct 9 | Module 8: Unit Testing |
Oct 10 – Oct 16 | Module 9: Security |
Oct 16 | Live Meeting 4 |
Oct 17 – Oct 23 | Final Assessment |
Nov 2 – Nov 6 | Final Certificates Issued |
Live Meeting Schedule:
Biweekly on Wednesdays at 8:00 PM CET / 3:00 PM Buenos Aires / 2:00 PM EST.
Note:
All live meetings will be recorded and made available for replay. Each module includes a practical hands-on assignment that participants should complete before the corresponding live session to maximize discussion and learning during the meeting.
Technical Prerequisites
1. Programming Foundations
Proficiency in the C programming language is critical for firmware development and driver implementation within the Zephyr ecosystem.
Pointers & Memory Management: Understanding address arithmetic, pointers to structs, and function pointers (essential for the Shell subsystem and driver API structures).
Data Structures: Mastery of
structsandenumsfor hardware abstraction.Preprocessor Macros: Advanced use of
#define, conditional compilation, and stringification for Kconfig and Devicetree integration.Bitwise Operations: Proficiency with AND, OR, XOR, NOT, and bit-shifting for register-level manipulation.
2. Development Environment & Tooling
The Zephyr workflow relies heavily on modern build systems and command-line interfaces.
Linux CLI: Basic navigation (
cd,ls,mkdir), file management, and environment variable configuration.Build Tools & CMake: Understanding the compilation and linking process. Familiarity with CMake syntax is necessary as it manages the project configuration and generates the build system.
Python Ecosystem: Ability to manage Python environments (virtual environments) and use
pip, as core Zephyr tools likewestandtwisterare Python-based.
3. Version Control (Git)
Students must be comfortable with collaborative Git workflows, as assignments are submitted via forks and specific repository tags.
Basic Commands:
clone,add,commit,push,pull.Collaboration: Creating forks, managing remotes, and submitting Pull Requests (PRs).
Release Management: Creating and pushing tags (e.g.,
L1-task1) for automated validation.
4. Hardware & Architecture (Nice to Have)
GDB Debugging: Familiarity with the GNU Debugger for on-target troubleshooting.
RTOS Concepts: A general understanding of real-time operating systems, multi-threading, and scheduling.
Recommended Learning Resources
Use the following resources to bridge any gaps in your current knowledge before the course start date.
Category | Resource Link | Key Topics Covered |
|---|---|---|
C Pointers | Address arithmetic, struct/function pointers | |
C Macros | Preprocessor directives and stringification | |
C Structs/Enums | Hardware abstraction with data structures | |
Linux CLI | Directory navigation & management | |
CMake | Project structure & syntax | |
Git & GitHub | Cloning, Branching, PRs, Tags | |
GDB Debugging | On-target debugging and troubleshooting | |
RTOS Concepts | Multithreading and scheduling basics |
Hardware Requirements
To participate in hands-on labs, students must have a development kit supported by the Zephyr Project.
Supported Boards: Common options include nRF52/nRF53 series, STM32, or ESP32. You can check if your board is supported by Zephyr here.
Development Tools: Ensure you have the required debug probe (e.g., J-Link, ST-LINK) and necessary cables for your specific kit.
Trusted by engineers from
Testimonials
Highly recommend iomico's Zephyr Fundamentals course. It is well-structured, deeply practical, and offers excellent hands-on experience. The trainers provide great real-world exposure to debugging, unit testing, and Zephyr DTS.

Muralitharan M
Firmware Engineer, NXP
The Zephyr Fundamentals course provided an excellent. The curriculum strikes the perfect balance between theoretical concepts. I am already applying the skills I learned to accelerate the development of our IoT medical and clean energy projects at Vortan.
Highly recommended for any engineer looking to master professional-grade firmware development.

Elius Faustine
Co-Founder/COO, Vortan
Thanks iomico, your knowledge and dedication have been invaluable both to us and to the Zephyr community. It was truly a pleasure to learn from such distinguished instructors as Dawid Marszałkiewicz and Natalia Pluta.

Hazem Khaled Mohamed
Embedded Software Engineer, Axxcelera
The course was a very valuable and practical. It helped me to build a strong foundation in Zephyr RTOS development through clear explanations and hands-on assignments. Also, it was well-structured, technically focused, and useful for anyone who wants to understand how Zephyr is used in real-world embedded systems.

Muhammad Sufyan Raza
Embedded Software Engineer, Alten
Overall, it was a good, practical course on the basics of Zephyr. It gave me a good overview of what Zephyr can do. The tutors were very skilled and answered all the questions that came up. I look forward to further courses on this topic.

Daniel Hauschild
Project Engineer,
HTK Hamburg GmbH
The best course.

George Emad
Embedded Software Engineer, Cypod Solutions