/awesome-zephyr-rtos

🪁 A curated list of awesome projects and resources for the Zephyr RTOS project.

Apache License 2.0Apache-2.0

Dark Logo Ligh Logo

🪁 Awesome Zephyr RTOS Awesome

The Zephyr RTOS is based on a small-footprint kernel designed for use on resource-constrained and embedded systems: from simple embedded environmental sensors and LED wearables to sophisticated embedded controllers, smart watches, and IoT wireless applications.

What is an awesome list?

Note

The Zephyr Project has started to maintain an awesome list. We encourage you to check it out and contribute.

Contents

Official Resources

Libraries

Application frameworks

  • gsoc-2022-arduino-core - Arduino Core API module with an Arduino-C++ style abtraction layer.
  • chre - Context Hub Runtime Environment (CHRE) is Android’s platform for developing always-on applications, called nanoapps.
  • control - A control systems design library written in pure C that provides you with advanced algorithms for control, state estimation and model identification specifically designed for use on embedded systems.
  • micro_ros_zephyr_module - ROS 2 for microcontrollers.
  • open-amp - Open Asymmetric Multi Processing (OpenAMP) framework.
  • Sense-VM - Bytecode virtual machine for microcontrollers.
  • Swedish Embedded Platform SDK - Swedish Embedded Platform SDK is a comprehensive platform for firmware development.
  • zpp - C++20 framework.

Containerization

  • ocre - OCI compliant application container runtime.

Filesystem

  • fats - Generic FAT/exFAT filesystem module for small embedded systems.
  • littlefs - Little fail-safe filesystem designed for microcontrollers.
  • nffs - Flash file system prioritizing minimal ram usage & reliability.

HAL/PAL

  • cmsis - Standardized API for the Cortex-M processor core and peripherals.
  • libmetal - Abstraction layer across user-space Linux, baremetal, and RTOS environments.

IoT & Cloud

  • Anjay-zephyr - C implementation of the client-side OMA LwM2M protocol.
  • Eclipse hawkbit - Firmware Update Server.
  • Edge Impulse - Machine learning on edge devices.
  • Golioth - Device Management & cloud enablement platform.
  • Memfault - Cloud-based debugging & observability.
  • openhaystack-zephyr - Track personal Bluetooth devices via Apple's massive Find My network.
  • send-my-sensor - Upload sensor data from a device without internet connection by (ab)using Apple's Find My network.
  • thingset-zephyr-sdk - A software development kit (SDK) based on Zephyr RTOS to integrate communication interfaces using the ThingSet protocol into an application with minimum effort. See https://thingset.io/.
  • zephyrus - A lightweight C library for exposing Prometheus metrics in Zephyr applications.

Languages & Runtimes

  • lispBM - LispBM is a lisp or scheme like programming language for microcontrollers.
  • micropython - a lean and efficient Python implementation for microcontrollers and constrained systems.
  • wasm-micro-runtime - Lightweight standalone WebAssembly (WASM) runtime.

Networking & Protocols

  • BACnet Stack - BACnet open source protocol stack for embedded systems, Linux, and Windows.
  • canopennode - CANopen Stack.
  • civetweb - Embeddable web server.
  • CBOR - Concise Binary Object Representation.
    • tinycbor - Small CBOR library.
    • QCBOR - Comprehensive CBOR library.
    • zcbor - CBOR library that includes support for CDDL.
  • cosy - CBOR Object Signing and Encryption (COSE).
  • greybus-for-zephyr - Protocol for hotpluggable devices.
  • nanopb - Protocol Buffers for Embedded Systems.
  • openthread - Thread mesh networking protocol.
  • pjon - Multi-master, multi-media network protocol.
  • S2OPC - Open-source OPC-UA Toolkit designed with security and embedded devices in mind.

Security

  • aerology - Inspect Zephyr and TF-M applications, post mortem.
  • mbed TLS - C library that implements cryptographic primitives, X.509 certificate manipulation and the SSL/TLS and DTLS protocols.
  • MCUboot - A secure bootloader for 32-bits microcontrollers.
  • TF - M - Platform Security Architecture (PSA) for ARMv7-M and Armv8-M.
  • tinycrypt - Cryptographic library with a minimal set of standard cryptography primitives.

Misc

  • ecfw-zephyr - Embedded Controller for low-level tasks on a motherboard like power sequencing.
  • grbl - Motion control for CNC milling.
  • lvgl - Complete graphics library.
  • lz4 - Extremely Fast Compression algorithm.
  • pinetime-zephyr - Smartwatch operating system.
  • zephyr-rust - API bindings, libstd, and Cargo integration for Rust.
  • linaro_sensor_pipeline - Secure data pipelines.
  • pysvd2dts - Creates a Zephyr Devicetree file from an ARM CMSIS-SVD file.
  • sof - Audio Digital Signal Processing (DSP) firmware infrastructure and SDK.
  • spinner - Motor control firmware based on the Field Oriented Control (FOC) principles.
  • tflite-micro - TensorFlow Lite for Microcontrollers.
  • zbus - Inter thread communication bus.
  • zephyr-usb-midi - This is a USB MIDI 1.0 device class driver for the Zephyr RTOS, which allows sending and receiving MIDI data (including system exclusive messages) over USB.
  • zscilib - Scientific computing library.
  • zcalendar - Calendar API with RTC integration.
  • zmk - Keyboard firmware with a rich featureset and broad hardware support.

Tools

Build & Config

Compilers

Note: the official SDK includes several compilers.

  • GNU Arm Embedded
  • Arm Compiler 6
  • Intel oneAPI Toolkit
  • DesignWare ARC MetaWare Development Toolkit (MWDT)
  • Cadence Tensilica Xtensa C/C++ Compiler (XCC)
  • Espressif tools

Editors & IDEs

Visual Studio Code

Other Editors & IDEs

Flash, Debug & Test

Simulation

Version Control

Open Source Hardware

  • ZMK - ZMK Firmware is an open source (MIT) keyboard firmware built on the Zephyr™ Project Real Time Operating System (RTOS).
  • ZSWatch - The Open Source Zephyr™ based Smartwatch, including both HW and FW.

Videos

Learning Material

Contribute

Contributions welcome! Read the contribution guidelines first.