This is the documentation for the latest (main) development branch of Zephyr. If you are looking for the documentation of previous releases, use the drop-down menu on the left and select the desired version.

Zephyr Kernel 1.9.2

This is a maintenance release with fixes.

Kernel

  • Generic queue item acquisition fixed to always return a valid item when using K_FOREVER

Bluetooth

  • Multiple stability fixes for BLE Mesh

  • Multiple stability fixes for the BLE Controller

Zephyr Kernel 1.9.1

This is a maintenance release with fixes and a two new features in the BLE Controller.

Drivers and Sensors

  • mcux ethernet driver buffer overflow fixed

  • STM32 PWM prescaler issue fixed

Networking

  • Support for IPv6 in DNS fixed

Bluetooth

  • Multiple stability fixes for the BLE Controller

  • Support for PA/LNA amplifiers in the BLE Controller

  • Support for additional VS commands in the BLE Controller

Zephyr Kernel 1.9.0

We are pleased to announce the release of Zephyr kernel version 1.9.0

Major enhancements planned with this release include:

  • Bluetooth 5.0 Support (all features except Advertising Extensions)

  • Bluetooth Qualification-ready BLE Controller

  • BLE Mesh

  • Lightweight Machine to Machine (LwM2M) support

  • Pthreads compatible API

  • BSD Sockets compatible API

  • MMU/MPU (Cont.): Thread Isolation, Paging

  • Expand Device Tree support to more architectures

  • Revamp Testsuite, Increase Coverage

  • Stack Sentinel support (See details below)

The following sections provide detailed lists of changes by component.

Kernel

  • Added POSIX thread IPC support for Kernel

  • kernel: introduce opaque data type for stacks

  • Timeslicing and tickless kernel improvements

Architectures

  • arm: Added STM32F405, STM32F417, STM32F103x8 SoCs

  • arm: Added TI CC2650 SoC

  • arm: Removed TI CC3200 SoC

  • arm: Added MPU support to nRF52, STM32L4, and STM32F3

  • xtensa: Added ESP32 support

  • Stack sentinel: This places a sentinel value at the lowest 4 bytes of a stack memory region and checks it at various intervals, including when servicing interrupts or context switching.

  • x86: Enable MMU for application memory

  • ARC: Added initial MPU support, including stack sentinel checking for ARC configurations not featuring hardware stack bounds checking

  • ARC: Nested interrupt support for normal, non-FIRQ interrupts

Boards

  • Added device tree support for Intel Quark based microcontroller boards such as Arduino_101, tinytile, and Quark_d2000_crb.

  • arm: Added Atmel SAM4S Xplained board

  • arm: Added Olimex STM32-E407 and STM32-P405 boards

  • arm: Added STM32F412 Nucleo and STM32F429I-DISC1 boards

  • arm: Added TI SensorTag board

  • arm: Removed TI CC3200 LaunchXL board

  • arm: Added VBLUno51 and VBLUno52 boards

  • xtensa: Added ESP32 board support

  • ARC: Added support for EMSK EM7D v2.2 version (incl. MPU)

  • ARC: Board configuration restructuring, peripheral configs moved from soc to board level

Drivers and Sensors

  • KW40Z IEEE 802.15.4 radio driver support added

  • APDS9960 sensor driver added

  • Added TICKLESS KERNEL support for nrf RTC Timer

  • Added Kinetis adc and pwm drivers

  • Removed deprecated PWM driver APIs

  • Added ESP32 drivers for GPIO, pin mux, watchdog, random number generator, and UART

  • sensor: Add BMM150 Geomagnetic sensor driver

Networking

  • LWM2M support added

  • net-app API support added. This is higher level API that can be used by applications to create client/server applications with transparent TLS (for TCP) or DTLS (for UDP) support.

  • MQTT TLS support added

  • Add support to automatically setup IEEE 802.15.4 and Bluetooth IPSP networks

  • TCP receive window support added

  • Network sample application configuration file unification, where most of the similar configuration files were merged together

  • Added Bluetooth support to HTTP(S) server sample application

  • BSD Socket compatible API layer, allowing to write and/or port simple networking applications using a well-known, cross-platform API

  • Networking API documentation fixes

  • Network shell enhancements

  • Trickle algorithm fixes

  • Improvements to HTTP server and client libraries

  • CoAP API fixes

  • IPv6 fixes

  • RPL fixes

Bluetooth

  • Bluetooth Mesh support (all mandatory features and most optional ones)

  • GATT Service Changed Characteristic support

  • IPSP net-app support: a simplified networking API reducing duplication of common tasks an application writer has to go through to connect to the network.

  • BLE controller qualification-ready, with all required tests passing

  • Controller-based privacy (including all optional features)

  • Extended Scanner Filter Policies support in the controller

  • Controller roles (Advertiser, Scanner, Master and Slave) separation in source code, conditionally includable

  • Flash access cooperation with BLE radio activity

  • Bluetooth Kconfig options have been renamed have the same (consistent) prefix as the Bluetooth APIs, namely BT_* instead of BLUETOOTH_*. Controller Kconfig options have been shortened to use CTLR instead of CONTROLLER.

  • Removed deprecated NBLE support

Build and Infrastructure

  • change description

Libraries

  • mbedTLS updated to 2.6.0

  • TinyCrypt updated to 0.2.7

HALs

  • Added support for stm32f417 SOC

  • Added support for stm32f405 SOC

  • pinmux: stm32: 96b_carbon: Add support for SPI

  • Added rcc node on stm32 socs

  • Added pin config for USART1 on PB6/PB7 for stm32l4

  • Removed TI cc3200 SOC and LaunchXL board support

Documentation

  • CONTRIBUTING.rst and Contribution Guide material added

  • Configuration options doc reorganized for easier access

  • Navigation sidebar issues fixed for supported boards section

  • Fixed link targets hidden behind header

  • Completed migration of wiki.zephyrproject.org content into docs and GitHub wiki. All links to old wiki updated.

  • Broken link and spelling check scans through .rst, Kconfig (used for auto-generated configuration docs), and source code doxygen comments (used for API documentation).

  • API documentation added for new interfaces and improved for existing ones.

  • Documentation added for new boards supported with this release.

  • Python packages needed for document generation added to new python pip requirements.txt

Build System and Tools

  • Convert post-processing host tools to python, this includes the following tools: gen_offset_header.py gen_idt.py gen_gdt.py gen_mmu.py

Tests and Samples

  • Added test Case to stress test round robin scheduling in schedule_api test.

  • Added test case to stress test priority scheduling in scheduling_api_test.