Zephyr 4.1.0 (Working Draft)
We are pleased to announce the release of Zephyr version 4.1.0.
Major enhancements with this release include:
An overview of the changes required or recommended when migrating your application from Zephyr v4.0.0 to Zephyr v4.1.0 can be found in the separate migration guide.
The following sections provide detailed lists of changes by component.
API Changes
Removed APIs and options
The legacy Bluetooth HCI driver API has been removed. It has been replaced by a Bluetooth HCI APIs that follows the normal Zephyr driver model.
The
CAN_MAX_STD_ID
(replaced byCAN_STD_ID_MASK
) andCAN_MAX_EXT_ID
(replaced byCAN_EXT_ID_MASK
) CAN API macros have been removed.The
can_get_min_bitrate()
(replaced bycan_get_bitrate_min()
) andcan_get_max_bitrate()
(replaced bycan_get_bitrate_max()
) CAN API functions have been removed.The
can_calc_prescaler()
CAN API function has been removed.The
CONFIG_NET_SOCKETS_POSIX_NAMES
option has been removed. It was a legacy option and was used to allow user to call BSD socket API while not enabling POSIX API. This removal means that in order to use POSIX API socket calls, one needs to enable theCONFIG_POSIX_API
option. If the application does not want or is not able to enable that option, then the socket API calls need to be prefixed by azsock_
string.Removed
video_pix_fmt_bpp()
function that was returning a byte count and only supported 8-bit depth tovideo_bits_per_pixel()
returning the bit count and supporting any color depth.CONFIG_WIFI_NM_WPA_SUPPLICANT_CRYPTO
The
CONFIG_PM_DEVICE_RUNTIME_EXCLUSIVE
option has been removed after being deprecated in favor ofCONFIG_PM_DEVICE_SYSTEM_MANAGED
.The
z_pm_save_idle_exit()
PM API function has been removed.
Deprecated APIs and options
the
bt_le_set_auto_conn()
API function. Application developers can achieve the same functionality in their application code by reconnecting to the peer when thebt_conn_cb.disconnected
callback is invoked.CONFIG_NATIVE_APPLICATION
has been deprecated.Deprecated the
stream_flash_erase_page()
from Stream Flash API. The same functionality can be achieved usingflash_area_erase()
orflash_erase()
. Nevertheless erasing of a device, while stream flash is supposed to do so, as configured, will result in data lost from stream flash. There are only two situations where device should be erased directly:when Stream Flash is not configured to do erase on its own
when erase is used for removal of a data prior or after Stream Flash uses the designated area.
For the native_sim target
CONFIG_NATIVE_SIM_NATIVE_POSIX_COMPAT
has been switched ton
by default, and this option has been deprecated.All HWMv1 board name aliases which were added as deprecated in v3.7 are now removed (GitHub #82247).
The TinyCrypt library has been deprecated as the upstream version is no longer maintained. PSA Crypto API is now the recommended cryptographic library for Zephyr.
New APIs and options
Architectures
Bluetooth
Mesh
bt_mesh_health_cli::update
callback can be used to periodically update the message published by the Health Client.
Build system
Sysbuild
The newly introduced MCUboot swap using offset mode can be selected from sysbuild by using
SB_CONFIG_MCUBOOT_MODE_SWAP_USING_OFFSET
, this mode is experimental.
Crypto
Management
hawkBit
The hawkBit subsystem now uses the State Machine Framework internally.
MCUmgr
Image management
MGMT_EVT_OP_IMG_MGMT_DFU_CONFIRMED
now has image data fieldimg_mgmt_image_confirmed
.
Other
New Boards
Adafruit Industries, LLC
Feather M4 Express (
adafruit_feather_m4_express
)QT Py ESP32-S3 (
adafruit_qt_py_esp32s3
)
Advanced Micro Devices (AMD), Inc.
ACP 6.0 Xtensa Audio DSP (
acp_6_0_adsp
)
Analog Devices, Inc.
MAX78000EVKIT (
max78000evkit
)MAX78000FTHR (
max78000fthr
)MAX78002EVKIT (
max78002evkit
)
Antmicro
Myra SiP Baseboard (
myra_sip_baseboard
)
BeagleBoard.org Foundation
BeagleY-AI (
beagley_ai
)
FANKE Technology Co., Ltd.
FK750M1-VBT6 (
fk750m1_vbt6
)
Google, Inc.
Icetower Development Board (
google_icetower
)Quincy (
google_quincy
)
Infineon Technologies
PSOC 6 AI Evaluation Kit (
cy8ckit_062s2_ai
)
Lilygo Shenzhen Xinyuan Electronic Technology Co., Ltd
TTGO T7 Mini32 V1.5 (
ttgo_t7v1_5
)TTGO T8-S3 (
ttgo_t8s3
)
M5Stack
CoreS3 (
m5stack_cores3
)
Makerbase Co., Ltd.
MKS CANable V2.0 (
mks_canable_v20
)
MediaTek Inc.
MT8186 (
mt8186
)MT8188 (
mt8188
)MT8196 (
mt8196
)
NXP Semiconductors
MIMXRT700-EVK (
mimxrt700_evk
)
Nordic Semiconductor
nRF54L09 PDK (
nrf54l09pdk
)
Norik Systems
Octopus IO-Board (
octopus_io_board
)Octopus SoM (
octopus_som
)
Qorvo, Inc.
Decawave DWM3001CDK (
decawave_dwm3001cdk
)
Raspberry Pi Foundation
Raspberry Pi Pico 2 (
rpi_pico2
)
Realtek Semiconductor Corp.
RTS5912 Evaluation Board (
rts5912_evb
)
Renesas Electronics Corporation
RA4E1 Fast Prototyping Board (
fpb_ra4e1
)RZ/G3S SMARC Evaluation Board Kit (
rzg3s_smarc
)RA4E1 Voice User Reference Kit (
voice_ra4e1
)
STMicroelectronics
Nucleo C071RB (
nucleo_c071rb
)Nucleo F072RB (
nucleo_f072rb
)Nucleo H7S3L8 (
nucleo_h7s3l8
)Nucleo WB07CC (
nucleo_wb07cc
)STM32F413H Discovery (
stm32f413h_disco
)
Seeed Technology Co., Ltd
XIAO ESP32C6 (
xiao_esp32c6
)
Shenzhen Fuyuansheng Electronic Technology Co., Ltd.
UCAN (
ucan
)
Silicon Laboratories
EFR32xG23 868-915 MHz 20 dBm (xG23-RB4210A) (
xg23_rb4210a
)EFR32xG24 Explorer Kit (xG24-EK2703A) (
xg24_ek2703a
)EFR32xG29 2.4 GHz 8 dBm Buck (xG29-RB4412A) (
xg29_rb4412a
)
Toradex AG
Verdin iMX8M Mini (
verdin_imx8mm
)
Waveshare Electronics
RP2040-Zero (
rp2040_zero
)
WeAct Studio
MiniSTM32H7B0 Core Board (
mini_stm32h7b0
)
WinChipHead
WCH CH32V003EVT (
ch32v003evt
)
Würth Elektronik GmbH.
Oceanus-I EV (
we_oceanus1ev
)Orthosie-I-EV (
we_orthosie1ev
)
others
CANbardo (
canbardo
)candleLight (
candlelight
)candleLightFD (
candlelightfd
)ESP32-C3-SUPERMINI (
esp32c3_supermini
)Pro Micro nRF52840 (
promicro_nrf52840
)
New Drivers
ADC
ARM architecture
Bluetooth
Clock control
Counter
CPU
DAC
DAI
Display
DMA
Ethernet
davicom,dm8806-phy
Firmware
FPGA
GPIO
IEEE 802.15.4 HDLC RCP interface
I2C
I3C
Input
Interrupt controller
Mailbox
MDIO
Memory controller
MFD
MIPI DSI
Miscellaneous
MMU / MPU
MTD
PCIe
PHY
Pin control
PWM
Quad SPI
Regulator
RNG
RTC
SDHC
Sensors
invensense,icm42370
Serial controller
SPI
Stepper
TCPC
Timer
USB
Video
Watchdog
Wi-Fi
New Samples
Other notable changes
Space-separated lists support has been removed from Twister configuration files. This feature was deprecated a long time ago. Projects that do still use them can use the scripts/utils/twister_to_list.py script to automatically migrate Twister configuration files.
Test case names for Ztest now include the Ztest suite name, meaning the resulting identifier has three sections and looks like:
<test_scenario_name>.<ztest_suite_name>.<ztest_name>
. These extended identifiers are used in log output, twister.json and testplan.json, as well as for--sub-test
command line parameters.The
--no-detailed-test-id
command line option can be used to shorten the test case name by excluding the test scenario name prefix which is the same as the parent test suite id.