The Zephyr Project source code is maintained in a Git repository. Zephyr is provided as source code and build scripts for different target architectures and configurations, and not as a binary image.
For releases 1.14 and after, multiple repositories are used, so the preferred method for downloading source code is by using a Zephyr Project tool called west. While you can also download source code as a tar.gz file or use Git commands (see the bottom of the GitHub release notes pages), this requires additional manual steps (see Using Zephyr without west documentation for details).
Give Zephyr a try with one of these demos. Each offers a brief description, use case, and code with step-by-step instructions to get up and running quickly.
Zephyr RTOS application running on ACRN Hypervisor on an Intel NUC
Zephyr OS is being used in an increasing number of embedded use cases such as automotive and industrial IoT. Check out this SoC demo.
reel board is an evaluation board based on the Nordic Semiconductor nRF52840 SoC. It is equipped with the Electrophoretic (electronic ink) Display (EPD), environmental (temperature, humidity, light, accelerometer) sensors, and Bluetooth connectivity making it easy to experiment and evaluate the Zephyr OS.
i.MX RT1010 family of crossover MCUs
i.MX RT is a new processor family featuring NXP’s advanced implementation of the ARM Cortex-M7 Core. It provides high CPU performance and real-time response.
Zephyr supports more than 200 boards, and there’s a good chance the one you’re developing for is on the list. Additionally, it also supports QEMU. But if you don’t find what you’re looking for, reach out to the community and tell us what you’re looking for. For information on adding your own board see the board porting documentation.
The project’s technical documentation is tagged to correspond with a specific release. The latest documentation for the “master” branch under development can be found at https://docs.zephyrproject.org/latest/. Use the version selector to see the documentation for tagged versions.
Committees and Working Groups provide technical leadership and direction for the Zephyr project under the guidance of the Governing Board. Join and follow along with the members of these groups in their weekly open meetings.
The Zephyr Project environment defaults to being built using the GNU Compiler Collection front end for C. See https://gcc.gnu.org/ for more information.
NXP MCUXpresso SDK
The MCUXpresso SDK is a software package for NXP’s Kinetis and LPC microcontrollers and i.MX RT crossover processors that includes production-grade peripheral drivers, stacks, middleware, and more. Portions of MCUXpresso SDK are provided with Zephyr as the base enablement for NXP’s microcontroller products. Full MCUXpresso SDK’s can be custom-built at the NXP MCUXpresso website.
Renode™ is an open source framework developed by Antmicro that lets you develop, debug and test IoT devices and systems reliably, scalably and effectively. It enables running unmodified software for embedded devices on a PC for development and testing of large wireless or wired networks without the need for physical hardware. The repeatability, control and scalability offered by Renode drastically improves the development experience especially for multi-node systems and protocols and enables a new Continuous Integration (CI) driven workflow.
Renode has been successfully used to run multi-node setups with the Zephyr RTOS for development, debug and interoperability testing, and an effort is currently underway to use it to test Zephyr’s networking stack.
Synopsys offers a series of ARC®-based development and evaluation systems for software development, code porting, software debugging and profiling.
The ARC EM Starter Kit provides a platform for rapid software development for ARC EM processors. The kit is ready for use “out-of-the-box” and enables designers to immediately begin writing code for their design. It features a Xilinx Spartan®-6 LX45 FPGA, an on-board 125 MHz clock generator, 128 MB of DDR3 memory and 16 MB of flash memory.
The ARC Software Development Platforms are complete, standalone hardware and software platforms that include ARC processors, peripherals, pre-built Linux and MQX operating systems, device drivers, and application examples, enabling designers to start software development prior to SoC availability.
In addition, they have been built using licensable DesignWare IP including USB, Ethernet, UART and other common interfaces, providing a rich set of peripherals that can be implemented in an SoC. The ARC AXS101 Software Development Platform supports the ARC 625D, 770D, EM4, EM6 and AS221BD processors. The ARC AXS102 Software Development Platform supports the ARC HS34 and HS36 processors and is ideal for the development of SoCs for high-performance embedded applications.
nrfx is Nordic’s RTOS-agnostic hardware abstraction layer (HAL) that also includes fully portable drivers for all Nordic ICs. nrfx is used as the foundation to implement support for Nordic hardware in Zephyr.
How to Contribute
Join the Zephyr Project Community
The Zephyr Project community encompasses a number of smaller communities, each with its own focus, needs, and methods for communicating.
Developers from member organizations and the general community who participate in the development of software within the Zephyr Project.
Member organizations and their representatives. Each member organization provides an administrative representative to the project’s Governing Board and a technical representative to the Technical Steering Committee, or TSC. You can find more information on the Members page. Members meet periodically over conference calls and face-to-face annually at one of the Linux Foundation’s events.
Members contribute and discuss ideas, submit bugs and bug fixes, provide training, and help those who need it through the community’s forums such as mailing lists, GitHub, or Zephyr Slack channel. Anyone can join the developer community and participate through discussing ideas, submitting/fixing bugs and attend the TSC meetings. However, only member organizations can currently provide representatives to the project’s leadership, which includes the Chief Architect, a hierarchy of Maintainers, and member representatives on the Technical Steering Committee.
The Zephyr Project user community includes everyone working with the project to build interesting things. If this means you, welcome to the Zephyr community! If not, we would be glad to welcome you.
Current Release Overview
Updated versions of Zephyr are released approximately every three-months. Here is a summary of the current release and the long term support (LTS) release. You can check out the Program Management wiki page for information about release planning and intermediate milestone dates.
Major enhancements with this release include:
- A new Zephyr CMake package has been introduced, reducing the need for environment variables
- A new Devicetree API, based on hierarchical macros, has been introduced. This new API allows the C code to access virtually all nodes and properties in a clean, organized fashion
- The kernel timeout API has been overhauled to be flexible and configurable, with future support for features like 64-bit and absolute timeouts in mind
- A new k_heap/sys_heap heap allocator has been introduced, with much better performance than the existing k_mem_pool/sys_mem_pool Zephyr now integrates with the TF-M (Trusted Firmware M) PSA-compliant framework
- The Bluetooth Low Energy Host now supports LE Advertising Extensions
- The CMSIS-DSP library is now included and integrated
The detailed release notes can be found on the Zephyr GitHub releases page.
This is an LTS maintenance release with fixes, as well as Bluetooth qualification listings for the Bluetooth protocol stack included in Zephyr.
The following security vulnerability (CVE) was addressed in this release:
- Fixes CVE-2019-9506: The Bluetooth BR/EDR specification up to and including version 5.1 permits sufficiently low encryption key length and does not prevent an attacker from influencing the key length negotiation. This allows practical brute-force attacks (aka “KNOB”) that can decrypt traffic and inject arbitrary ciphertext without the victim noticing.
- 1.14.x Host subsystem qualified with QDID 139258
- 1.14.x Mesh subsystem qualified with QDID 139259
- 1.14.x Controller component qualified on Nordic nRF52 with QDID 135679
The detailed release notes can be found on the Zephyr GitHub releases page.
It’s always our goal for features on the roadmap to be delivered in the release indicated, but some features may be added to a release, moved to a different release, modified, or dropped altogether as the community works together to investigate and understand shifting priorities. That’s why it’s so important to engage and become a member of the Zephyr Project.