Release Notes for nRF Connect SDK Bare Metal option v1.0.0

Bare Metal v1.0.0 is the first supported 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 v1.0.0.

This release includes two versions of the SoftDevice - a Bluetooth® LE stack to be used on the nRF54L15 DK:

  • S115 - Support for peripheral role only

  • S145 - Support for both peripheral and central role, as well as more connections

Highlights

The overall software maturity status of nRF Connect SDK Bare Metal option v1.0.0 is supported unless stated differently for individual features or components. This makes it suitable for product development using nRF54L15, nRF54L10, and nRF54L05 Wireless SoCs, including the nRF54L15 DK targets.

Added the following features as supported:

  • The S115 SoftDevice, which was part of Bare Metal v0.9.0 as experimental, is now supported. For information about the qualification of this SoftDevice variant, refer to the nRF54L15 Compatibility Matrix, or respective pages for nRF54L105 and nRF54L10. Updates to the compatibility matrices will be published in the upcoming weeks.

  • The S145 SoftDevice, a new variant that enables central and multirole operation, has been added as supported. For information about the qualification of this SoftDevice variant, refer to the nRF54L15 Compatibility Matrix, or respective pages for nRF54L105 and nRF54L10. Updates to the compatibility matrices will be published in the upcoming weeks.

  • MCUBoot (IRoT)/DFU:

    • CRACKEN/KMU is now supported.

    • Possible to be configured as IRoT for your applications.

    • Available in two variants: debug and size-optimized.

  • New samples and libraries. Refer to the changelog for detailed information.

  • Bare Metal v1.0.0 uses nrfx 4.0.0. For migration of nrfx drivers, see the nrfx 4.0 migration guide. Details from the nrfx 3.0 migration guide might be required when migrating from nRF5.

Added the following features as experimental:

  • NFC Type 4 Tag and Type 2 Tag libraries, including samples.

  • Bluetooth LE Central functionality as part of samples and libraries utilizing the S145 SoftDevice.

    Note

    While the S145 SoftDevice has supported maturity, its overall integration in the SDK is experimental.

Release tag

The release tag for the Bare Metal manifest repository is v1.0.0. Check the west.yml file for the corresponding tags in the project repositories.

To use this release, install it using nRF Connect for VS Code extension by following the instructions in Installing the nRF Connect SDK Bare Metal option.

Alternatively, check out the tag in the manifest repository, run west config manifest.path nrf-bm, and then west update.

This release of Bare Metal is based on nRF Connect SDK v3.2.0.

IDE and tool support

nRF Connect for Visual Studio Code is the recommended IDE for Bare Metal v1.0.0. See the Installation section for more information about supported operating systems and toolchain.

Changelog

The following sections provide detailed lists of changes by component.

S115 SoftDevice

  • Updated S115 SoftDevice version to v9.0.0.

S145 SoftDevice

  • Added the S145 SoftDevice v9.0.0 for central support.

SoftDevice Handler

Boards

  • Added

    • The nRF54L15 DK board variants for the S145 SoftDevice.

    • The bm_nrf54l15dk_nrf54l051015_oscillator.dtsi file with HF and LF external oscillator configuration choices for the nRF54L05, nRF54L10, and nRF54L15.

  • MCUboot partition size has been reduced from 36 KiB to 31 KiB for the following board targets:

    • bm_nrf54l15dk/nrf54l05/cpuapp/s115_softdevice/mcuboot

    • bm_nrf54l15dk/nrf54l10/cpuapp/s115_softdevice/mcuboot

    • bm_nrf54l15dk/nrf54l15/cpuapp/s115_softdevice/mcuboot

  • Removed unused peripheral nodes from the devicetree.

Build system

  • Added automatic flashing of SoftDevice files for projects that do not use MCUboot when west flash is invoked.

DFU

  • Added:

  • Updated:

    • By refactoring the code for the UART MCUmgr application into a separate library to facilitate reuse in other applications.

    • The MCUmgr image management to prevent erasing of the firmware loader by itself. Such operation would break the DFU functionality.

Interrupts

  • Interrupts in nRF Connect SDK Bare Metal option now use the IRQ vector table directly instead of the software ISR table. This saves eight bytes of memory for each IRQ, which is approximately 2 kB for the nRF54L05, nRF54L10, and nRF54L15 application core. With this update, applications must now use macros IRQ_DIRECT_CONNECT and ISR_DIRECT_DECLARE instead of IRQ_CONNECT when defining an ISR.

    For example, an ISR defined with IRQ_CONNECT in the following way:

    static nrfx_gpiote_t gpiote20 = NRFX_GPIOTE_INSTANCE(NRF_GPIOTE20);
    
    int main(void)
    {
            IRQ_CONNECT(
                    NRFX_IRQ_NUMBER_GET(NRF_GPIOTE20),
                    10,
                    nrfx_gpiote_irq_handler,
                    &gpiote20,
                    0
            );
    

    Must now be defined like this:

    static nrfx_gpiote_t gpiote20 = NRFX_GPIOTE_INSTANCE(NRF_GPIOTE20);
    
    ISR_DIRECT_DECLARE(gpiote_20_direct_isr)
    {
            nrfx_gpiote_irq_handler(&gpiote20);
            return 0;
    }
    
    int main(void)
    {
            IRQ_DIRECT_CONNECT(
                    NRFX_IRQ_NUMBER_GET(NRF_GPIOTE20),
                    10,
                    gpiote_20_direct_isr,
                    0
            );
    

Logging

  • Removed module-dep=LOG in Kconfig files. This is no longer defined.

Drivers

Libraries

Bluetooth LE Services

Libraries for NFC

  • Added experimental support for Near Field Communication (NFC).

Samples

  • Updated all sample Kconfig options to be prefixed with APP_.

Bluetooth LE samples

NFC samples

Peripheral samples

DFU samples

  • Moved the MCUmgr samples to the applications/firmware_loader folder.

Subsystem samples

Known issues and limitations

  • The Bare Metal delivery does not have a common library for handling GPIOTE. This results in issues when enabling multiple libraries that require GPIOTE, such as Low Power UART with EasyDMA (LPUARTE) and Button handling library.

  • Some Bluetooth LE libraries allow for the creation of multiple instances, although only one instance is supported. Defining multiple instances of the same library may lead to unexpected behavior.

Documentation