Welcome to this Zephyr Workshop! This workshop gives an introduction about main concepts of Zephyr as well as architectural insights that are demonstrated with an example application.
This repository includes slides, firmware samples and a modular application. It references the existing Zephyr documentation on how to get started and explains basic RTOS concepts with examples.
Resources to get started with Zephyr:
The Application is a minimal firmware example, consisting of 3 components. A button-controlled state machine (Sleep / Standby) with an LED, built using a modular architecture. Components communicate via ZBus, keeping button and LED logic decoupled and independently testable. (source)
Progressive examples covering core Zephyr subsystems:
| # | Topic | Description |
|---|---|---|
| 01 | Hello World | Basic application structure and board info |
| 02 | Logging | Log levels and the logging subsystem |
| 03 | Work Queues | Deferring work with timers and workqueues |
| 04 | Shell | Interactive CLI via the shell subsystem |
| 05 | Sensor API | Reading temperature/humidity from a sensor |
| 06 | BLE | BLE peripheral with Health Thermometer Service |
| 07 | Display | Text rendering with the CFB display subsystem |
| 08 | SYS_INIT | Automatic component initialization at boot |
On GitHub, click the <> Code button above to create a Codespaces environment
to quickly get a working setup for experimentation up and running.
The workshop includes both a web-based documentation (Sphinx) and a slide presentation (Slidev). The slides are integrated into the documentation. View the Workshop Slides.
See CONTRIBUTING.md for instructions on building the documentation and slides locally.
You are welcome to use these materials to give this workshop yourself. Code is licensed under Apache 2.0, documentation and slides under CC BY-SA 4.0.