Zephyr is a scalable, open-source Real-Time Operating System (RTOS) designed for resource-constrained embedded systems, ranging from simple sensors to complex IoT gateways. Built with security and safety in mind, it features a small-footprint kernel, extensive connectivity options (including BLE 5.0, Wi-Fi, OpenThread), and broad hardware support across multiple architectures like ARM Cortex-M/R/A, RISC-V, x86, and Xtensa. Its modular design, powered by the Kconfig and Devicetree systems, allows developers to tailor the OS precisely to their application needs, optimizing performance and memory usage. Zephyr is backed by the Linux Foundation and a large, active community.
The Zephyr Project provides a vendor-neutral, open-source, permissively licensed RTOS focused on the rapidly growing IoT market. It aims to deliver a robust, scalable, and secure platform for connected, resource-constrained devices.
Architecture and Modularity: Zephyr’s kernel is highly configurable. Developers can select only the necessary features (like specific kernel services, drivers, or protocol stacks) through the Kconfig system, minimizing the final image size. Hardware configuration is managed using Devicetree, allowing the same application code to run on different hardware platforms by simply changing the board configuration.
Key Capabilities: The RTOS offers a rich set of kernel services, including preemptive and cooperative scheduling, various inter-thread synchronization and communication mechanisms, memory management (including MPU support for thread isolation on capable hardware), and power management features.
Connectivity and Ecosystem: Zephyr boasts a native, highly optimized networking stack supporting IPv4/IPv6, TCP, UDP, and common application layer protocols (HTTP, MQTT, CoAP, LwM2M). It features a Bluetooth 5.0 qualified controller and host stack, including Mesh support. File systems like LittleFS and FatFs are supported, along with comprehensive logging, a command-line shell interface, settings management, and over-the-air (OTA) update capabilities.
Development and Community:
Development is supported on Linux, macOS, and Windows using CMake and the west
meta-tool for managing the source code and build process. A native simulation target (native_sim
) allows running and debugging Zephyr applications directly on the host PC. The project benefits from a vibrant community, extensive documentation, and support from numerous semiconductor vendors.
Features #
- Scalable & Modular Kernel: Configurable kernel services (threads, semaphores, mutexes, messages queues, etc.) via Kconfig.
- Cross-Architecture: Supports ARM Cortex-M/R/A (32/64-bit), RISC-V (32/64-bit), x86 (32/64-bit), Xtensa, MIPS, NIOS II, SPARC.
- Flexible Scheduling: Includes preemptive/cooperative priority-based scheduling, Earliest Deadline First (EDF), round-robin time-slicing, and meta-IRQ scheduling.
- Memory Management: Dynamic memory allocation (slab/heap), Memory Protection Unit (MPU) support for thread isolation and userspace, stack overflow protection.
- Devicetree Integration: Hardware description language for configuring peripherals and board features.
- Unified Device Driver Model: Consistent API for accessing diverse hardware peripherals.
- Power Management: System and device-level power management framework.
- Rich Connectivity:
- Native Networking Stack (LwIP based): TCP/IP (v4/v6), UDP, ICMP, CoAP, LwM2M, MQTT, HTTP, DNS, DHCP.
- Bluetooth 5.0 Qualified: Host stack & Controller (Link Layer), BLE Mesh, GAP/GATT, Secure Connections.
- Other Wireless: Wi-Fi, LoRaWAN, OpenThread, 802.15.4.
- Security: Designed with security focus, includes features like MPU support, secure boot capabilities (via MCUboot), TLS/DTLS integration (mbedTLS), and a dedicated security subcommittee.
- Storage: Virtual Filesystem (VFS) support with backends like LittleFS, FatFs, NVS (Non-Volatile Storage), FCB (Flash Circular Buffer).
- Development Tools: CMake build system,
west
meta-tool, extensive sample applications, native simulation (native_sim
), debugging support (GDB, OpenOCD, J-Link). - Logging & Diagnostics: Powerful logging framework with multiple backends, shell interface with auto-completion, runtime analysis hooks.
- SMP Support: Symmetric Multi-Processing support on multi-core devices.
- Permissive Licensing: Apache 2.0 license for the core OS.
Resources #
- awtk. AWTK = Toolkit AnyWhere(a cross-platform embedded GUI).
- zmk. ZMK Firmware Repository.
- ZSWatch. ZSWatch - the Open Source Zephyr™ based Smartwatch, including both HW and FW..
- HeliOS. A community delivered, open source embedded operating system project..
- zephyr-rtos-tutorial. Zephyr: Tutorial for beginners.
- west. West, Zephyr’s meta-tool.
- zephyr-doc. 《Zephyr OS 文档 - 中文版》.
- zephyr-inside. 揭秘 Zephyr OS .
- sdk-ng. Zephyr SDK (Toolchains, Development Tools).
- iot_security. 《密码技术与物联网安全——mbedtls开发实战》示例代码.
- zscilib. An open-source scientific computing library for embedded systems running Zephyr OS or standalone..
- awesome-zephyr-rtos. 🪁 A curated list of awesome projects and resources for the Zephyr RTOS project..
- control. Embedded Firmware Control Systems Toolbox (Pure C and GNU Octave).
- pinetime-hypnos. Zephyr firmware for the nRF52832 PineTime smartwatch.
- lava. Read only mirror https://git.lavasoftware.org/lava/lava.
- monocart-reporter. A playwright test reporter (Node.js).
- lispBM. An interpreter for a concurrent lisp-like language with message-passing and pattern-matching implemented in C..
- golioth-zephyr-sdk. Golioth SDK For Zephyr.
- mcumgr-android. A mobile management library for devices running Apache Mynewt and Zephyr (DFU, logs, stats, config, etc.).
- fwrisc. Featherweight RISC-V implementation.
- nrf-docker. Dockerfile that contains all dependencies needed to build nRF Connect SDK applications..
- Dynamic_App_Loading. Dynamically load apps to zephyr RTOS.
- zephyr-dwm1001. Open source DWM1001 + Zephyr example implementations.
- mcumgr-ios. A mobile management library for devices running Apache Mynewt and Zephyr (DFU, logs, stats, config, etc.).
- bms. Battery management system for 4-series li-ion packs.
- zpp. Zephyr C++ Framework.
- openhaystack-zephyr. Zephyr-based OpenHaystack firmware to track your personal Bluetooth devices via Apple’s Find My network.
- micro_ros_zephyr_module. micro-ROS Zephyr module and sample code.
- sdk. Embedded firmware development, simulation and verification SDK.
- nrf52840-m2-devkit. An open-source developer kit based on a removable nRF52840 M.2 module, designed for IoT prototyping.
- tcf. Documentation.
- vscode-kconfig. Kconfig language support in vscode.
- Anjay-zephyr-client. Anjay Zephyr LwM2M client..
- NCS-MIDI. MIDI tools for nRF Connect SDK.
- bluetooth-low-energy-applications. Code examples, errata and additional tips and references to interesting projects for the book “Develop your own Bluetooth Low Energy Applications for Raspberry Pi, ESP32 and nRF52 with Python, Arduino and Zephyr”.
- zmk-docker. Lightweight Docker images for ZMK.
- playwright-zephyr. Zephyr reporter for the Playwright.
- workstation. Docker based development environment for coding, building and flashing embedded firmware..
- zephyr-coaps-client. CoAP / DTLS 1.2 CID client for Zephyr - Reliable - Efficient - Encrypted.
- herald-for-cpp. Herald for C++ - Reliable mobile Bluetooth communications - Native library & test apps.
- awesome-zephyr-rtos. Zephyr RTOS for building modular firmware.
- cozy. CBOR Object Signing and Encryption (COSE) for Zephyr RTOS.
- pinetime. zephyr based PineTime smartwatch.
- ruuvitag_fw_zephyr. Ruuvitag FW using Zephyr OS.
- zephyr. A unified grading platform for student code.
- zephyr. A Programming Language built for WebAssembly.
- zephyr-stm32-webusb. Playing with Zephyr Web USB example on STM32 Bluepill.
- send-my-sensor. Zephyr-based firmware to upload sensor data via Apple’s Find My network.
- zephyr_cve-2021-3625. CVE-2021-3625 - Sample exploits for Zephyr.
- platform-nxpimxrt. NXP i.MX RT: development platform for PlatformIO.
- aW_1-keyboard. A split (semi-)wireless keyboard based on the NRF52832.
- zephyrWithCucumber. This Framework will help you to update the Test Cycle Status and Steps of the Test Case which is executed in the Test Cycle with the help of cucumber json file.
- teensy4_shell. Tutorial on how to use the shell of Zephyr with Teensy 4.0.
- zephyr-docker. Develop with Zephyr locally using Docker containers.
- zephyr-grbl. Started as a firmware for https://hackaday.io/project/177237-corexy-pen-plotter, possibly could be adapted to other CNCs as well..
- Zephyr_WiFi. Example Zephyr WiFi code.
- bridle. Bridle and kite line for embedded systems based on Zephyr..
- ly10-zephyr-fw. Zephyr-based firmware for PLT Demo V2.
- mcumgr-dart. Dart mcumgr client.
- JiphyLib. making it easier to publish robotframework results to JIRA.
- Zephyr_LoRaWAN. An example LoRaWAN Application on the Zephyr RTOS.
- Anjay-zephyr. Anjay LwM2M library module for Zephyr..
- Kconfig-Highlighter. Sublime Text 3 highlight script for the Kconfig language..
- vscode-zephyr. This is an example vscode setting to provide supports for zephyr based projects build/debug..
- zLorawan_Node. A Zephyr RTOS based Lorawan node..
- mender-stm32l4a6-zephyr-example. Mender MCU example running on STM32L4 using Zephyr RTOS.
- bazel2zephyr. Hands-on tutorial on building a static library (.a) with Bazel and linking it into a Zephyr based project..
- twatch. Zephyr based firmware for ligo twatch.
- stm32_blackpill_zephyr_ssd1306_demo. A demo for Zephyr RTOS to shows how to using a custom TTF Font with CFB sub-system to prints text on a small OLED screen..
- patient_monitoring. Patient Monitoring System using 96Boards.
- pyrinas-zephyr. Open companion cloud client to Pyrinas Server for the nRF9160 Feather and Zephyr.
- Netflix-clone. This the clone of Netflix functionalities using YouTube Data API. Where you can watch videos, search videos (Not Channel). You can view the preview screen. Every Video has a recommended video list. Sign in with Google..
- Bluetooth-Mesh-Sensor-Network. Bluetooth Mesh sensor network.
- nrf_servo. Servo implementation that uses the NRFX PWM driver.
- Lemon-IoT-Accessories. Support files for Lemon IoT Ecosystem Accessories.
- Lemon-IoT-LTE-nRF9160. Support files for the Lemon IoT LTE nRF9160 Board.
- zmk-config-split-template. A template used to generate user configuration repos for split (left + right) keyboards.
- ZAPI. Test execution and result reporting on Jira + Zephyr setup.
- MG100_firmware. MG100 Zephyr RTOS based firmware.
- Pinnacle-100-Firmware-Manifest. Manifest repository for Pinnacle 100 and MG100 BLE Gateway Firmware demos: https://github.com/LairdCP/BLE_Gateway_Firmware.
- hc-sr04. Zephyr RTOS driver for HC-SR04 Ultrasonic Ranging Module.
- alturia-firmware. Firmware for the alturia flight computer.
- zephyr-stm32-spi. Simple example of using SPI on the STM32 Nucleo-F411RE board.
- kw1281-diag. Simple KW1281 diagnosis tool using Zephyr shell.
- nrf-connect-sdk-build-docker. Build Environment for nRF Connect SDK.
- zephyr-data-migrator. This is self-service utility to migrate zephyr for Jira data from one instance to another..
- zephyr-usb-midi. A configurable USB MIDI 1.0 device class driver for the Zephyr RTOS..
- AffectHub. A multimodal physiological and affective data hub affectivecomputing.
- sdk-hsm-thingy53. Zephyr Samples for Nordic Thingy53 dev kit OpenThread mesh with json data, BME688 BSEC2 for Air Quality, Light color, RGB Les, Battery.
- bpm. Firmware for the Heartfelt Cardiac Monitor. Consists of sensor (MAX86150) driver, WiFi and Bluetooth connectivity, and client authentication..
- zephyr-demo-wifi. Zephyr Demo Wifi and TCP/UDP connection console using STM32L4+ B-L4S5I-IOT01A.
- Pinnacle_100_OOB_Demo_Manifest. Manifest repo for the Pinnacle 100 Out of Box Demo.
- hello-zephyr. playing around with zephyr .