Release Notes for nRF Connect SDK Bare Metal option v0.8.0

Bare Metal v0.8.0 is the public launch release of this product, demonstrating a set of samples for the nRF54L15 DK with build targets supporting the following SoCs:

The supported DK version is nRF54L15 DK v0.9.3.

The release includes a prototype version of the S115 SoftDevice - a proprietary Bluetooth® LE stack to be used on the nRF54L15 DK.

Product maturity

As this is version 0.8.0 of Bare Metal, please note that the solution is still under development and not production ready. Modules and libraries are subject to changes. This includes potential modifications to the organization of the folder structure. Although the memory partition structure is expected to remain consistent, the sizes of individual partitions might be refined as progress is made towards a stable release.

The documentation for Bare Metal is still in development and might not cover all libraries and modules available in the codebase. Some sections are incomplete and lacking detailed information as content is being developed.

IDE and tool support

nRF Connect extension for Visual Studio Code is the recommended IDE for Bare Metal v0.8.0. See the Installing the nRF Connect SDK Bare Metal option section for more information about supported operating systems and toolchain.

Supported boards

Migration from nRF5 SDK

For guidelines on how to migrate an application built on nRF5 SDK to Bare Metal, refer to Migration notes - nRF5 SDK to nRF Connect SDK Bare Metal option.

Changelog

The following sections provide detailed lists of changes by component.

SDK installation

  • The default way to install Bare Metal is through the nRF Connect for VS Code extension user interface, using either the Pre-packaged SDK & Toolchain option or a GitHub installation. For detailed steps, see Getting the code.

S115 SoftDevice

  • Updated the S115 SoftDevice version to s115_9.0.0-3.prototype. The SoftDevice comes in three variants to support different SoCs of the nRF54L Series: nRF54L15, nRF54L10, and nRF54L05.

    • s115_9.0.0-3.prototype_nrf54l15_softdevice.hex

    • s115_9.0.0-3.prototype_nrf54l10_softdevice.hex

    • s115_9.0.0-3.prototype_nrf54l05_softdevice.hex

SoftDevice Handler

  • Added support for seeding the SoftDevice RNG when requested by the SoftDevice.

  • Fixed the maximum MTU Kconfig option.

Boards

  • Added the following bm_nrf54l15dk board variants for MCUboot (DFU-enabled board variants):

    • bm_nrf54l15dk/nrf54l05/s115_softdevice/mcuboot

    • bm_nrf54l15dk/nrf54l10/s115_softdevice/mcuboot

    • bm_nrf54l15dk/nrf54l15/s115_softdevice/mcuboot

  • Renamed the bm_nrf54l15dk board variants:

    • bm_nrf54l15dk/nrf54l05/softdevice_s115 to bm_nrf54l15dk/nrf54l05/s115_softdevice

    • bm_nrf54l15dk/nrf54l10/softdevice_s115 to bm_nrf54l15dk/nrf54l10/s115_softdevice

    • bm_nrf54l15dk/nrf54l15/softdevice_s115 to bm_nrf54l15dk/nrf54l15/s115_softdevice

  • Fixed:

    • Fixed wrong RRAM size on the nRF54L10 emulation target from 1022 to 1012 KiB.

  • Removed:

    • The template board variants.

    • The no_softdevice variants of the bm_nRF54l15dk.

DFU

  • DFU using MCUboot firmware loader mode is now introduced in the SDK:

    • Added experimental support for single-bank DFU, using the MCUboot bootloader and a firmware loader which is tasked to receive the new firmware image. The DFU supports updating either the application or the SoftDevice with the firmware loader.

    For more details, see Device Firmware Update (DFU).

Logging

  • Fixed an issue with the minimal log mode.

Drivers

Libraries

  • Added the following libraries:

    • The Bare Metal Zephyr Memory Storage (BM_ZMS) library.

    • The bm_storage library.

    • A queue library (modified library from Zephyr). This library has been added as a dependency for MCUmgr (used in DFU) offering support for threadless applications.

  • ble_conn_params library library:

    • Updated connection parameter values to the BLE_CONN_PARAMS_EVT_UPDATED event.

    • Renamed slave latency to peripheral latency according to specification.

    • Fixed:

      • An issue where the ATT MTU could be set to a lower value than the current value.

      • An issue where the list of PHYs supported by the SoftDevice was not respected by the library when doing PHY updates.

      • Data length timeout issue and the data_length_get() function returning wrong value.

      • Incorrectly stated maximum ATT MTU value.

Samples

  • General changes:

    • All samples now use the logging module instead of printk.

    • Updated:

      • The main loop sleep instructions as the sd_app_evt_wait() function is deprecated.

      • Updated the main function flow to always end up in a loop with sleep instructions and deferred log processing instead of returning from the main function. This ensures that log messages are printed and that the device goes into sleep mode. Returning from main leaves the device in a state that prevents low power sleep and unhandled deferred log messages are not processed.

Bluetooth samples

  • Fixed:

    • The pin configuration to use the pins from the board_config.h board header.

    • An issue in the ble_nus_data_send() function where passing NULL as the NUS instance could cause a segmentation fault.

Peripheral samples

DFU samples

  • Added the following samples:

    • MCUboot: Recovery entry sample that demonstrates how to activate DFU mode on the device using Bluetooth LE on a mobile application.

    • MCUboot: Recovery retention sample that demonstrates how to switch a device into DFU mode on embedded application’s request and execute DFU over UART or Bluetooth LE.

Known issues and limitations

  • Some issues are observed when using iPhone as the peer during testing of the Bluetooth samples.

  • Some issues are observed when using Linux with the Bluetooth Low Energy app in nRF Connect for Desktop as the peer during testing of the Bluetooth samples.

  • There are no samples or libraries available to demonstrate or support the Bluetooth LE Pairing and bonding functionality in the SoftDevice.

  • The samples are not optimized for power consumption unless explicitly stated.

Documentation