Error building Matter sample for XIAO nRF54L15 board

Hi,

I bought a XIAO nRF54L15 board to use it for Matter samples (Matter light)
I am facing an issue building the firmware using nRF SDK 3.0.2.

Could you provide me a tutorial for building Matter samples for XIAO nRF54L15 board?
It will help a lot of people too.

Build config

Error
build_nRF54_error.zip (1,6 Ko)

Regards
Ludovic

1 Like

Hi there,

SO I haven’t tried it yet this way, but usually you would select the Nordic SOC in the pull down, not Custom unless you have a different Board files?
You can run the Kmenu config to set the prj.conf options you want ,i.e. bootloader , Flash, DFU tech etc…

Check out the FREE Nordic Tech WEB Seminars/Videos on building the conf. worth the Look and Time!

HTH
GL :slight_smile: PJ :v:

1 Like

Hi PJ, Have you got a good idea or solution for isolating the nordic dev tools? I’m considering putting it in a vm to stop it interfering with the cmake tools for the pi pico dev environment.

1 Like

Hi there,

So , from the beginning I have the Nordic stuff and Seeed Stuff ALL on a D:\ SSD drive on the Development machine. I have not experienced any issues , PLiO & Arduino IDE 2.3.5, NRF_SDK, ESP_IDF(I don’t use it unless req). along with the requites, python, VSB, etc.

HTH
GL :slight_smile: PJ :v:

Have you tried using Docker for this?

I find it works quite well for my “isolated” developments.

I’ve got a few gripes with docker, and my dev laptop is stuffed to its eyeballs already. I did recently have some success with the tpu-mlir docker, but it’s annoying to work with. Thanks for the suggestion though.

I’m pretty sure it was an issue with gpt5 preview deciding that it wanted to do a clean build of something and also deciding that meant deleting the contents of my tool kits folder.

1 Like

i installed docker for an obscure program and it kinda worked… i hate linux installs because it is so complicated and they just say the commands like you have any idea what they are talking about

I feel like we’re getting off topic.

2 Likes

I have add 4 files in my project:

  • pm_static_xiao_nrf54l15_nrf54l15_cpuapp.yml
  • sysbuild/mcuboot/boards/xiao_nrf54l15_nrf54l15_cpuapp.conf
  • sysbuild/mcuboot/boards/xiao_nrf54l15_nrf54l15_cpuapp.overlay
  • boards/xiao_nrf54l15_nrf54l15_cpuapp.overlay

So now I have an issue with TEMP_NRF5_MPSL.
Do you know why?

* Executing task: nRF Connect: Generate config xiao_nrf54l15/nrf54l15/cpuapp for /home/ludovic/matter_light_bulb

Building matter_light_bulb
west build --build-dir /home/ludovic/matter_light_bulb/build_1 /home/ludovic/matter_light_bulb --pristine --board xiao_nrf54l15/nrf54l15/cpuapp -- -DCONF_FILE="prj.conf" -DBOARD_ROOT="/home/ludovic/platform-seeedboards/zephyr"

-- west build: generating a build system
Loading Zephyr module(s) (Zephyr base): sysbuild_default
-- Found Python3: /home/ludovic/ncs/toolchains/c5be9c56c7/usr/local/bin/python3.12 (found suitable version "3.12.4", minimum required is "3.10") found components: Interpreter
-- Cache files will be written to: /home/ludovic/.cache/zephyr
-- Found west (found suitable version "1.4.0", minimum required is "0.14.0")
-- Board: xiao_nrf54l15, qualifiers: nrf54l15/cpuapp
Parsing /home/ludovic/matter_light_bulb/Kconfig.sysbuild
Loaded configuration '/home/ludovic/matter_light_bulb/build_1/_sysbuild/empty.conf'
Merged configuration '/home/ludovic/matter_light_bulb/sysbuild.conf'
Configuration saved to '/home/ludovic/matter_light_bulb/build_1/zephyr/.config'
Kconfig header saved to '/home/ludovic/matter_light_bulb/build_1/_sysbuild/autoconf.h'
--
*****************************
* Running CMake for mcuboot *
*****************************

Loading Zephyr default modules (Zephyr base).
-- Application: /home/ludovic/ncs/v3.1.0/bootloader/mcuboot/boot/zephyr
-- CMake version: 3.21.0
-- Found Python3: /home/ludovic/ncs/toolchains/c5be9c56c7/usr/local/bin/python (found suitable version "3.12.4", minimum required is "3.10") found components: Interpreter
-- Cache files will be written to: /home/ludovic/.cache/zephyr
-- Zephyr version: 4.1.99 (/home/ludovic/ncs/v3.1.0/zephyr)
-- Found west (found suitable version "1.4.0", minimum required is "0.14.0")
-- Board: xiao_nrf54l15, qualifiers: nrf54l15/cpuapp
-- Found host-tools: zephyr 0.17.0 (/home/ludovic/ncs/toolchains/c5be9c56c7/opt/zephyr-sdk)
-- Found toolchain: zephyr 0.17.0 (/home/ludovic/ncs/toolchains/c5be9c56c7/opt/zephyr-sdk)
-- Found Dtc: /home/ludovic/ncs/toolchains/c5be9c56c7/usr/bin/dtc (found suitable version "1.5.0", minimum required is "1.4.6")
-- Found BOARD.dts: /home/ludovic/platform-seeedboards/zephyr/boards/arm/xiao_nrf54l15/xiao_nrf54l15_nrf54l15_cpuapp.dts
-- Found devicetree overlay: /home/ludovic/matter_light_bulb/sysbuild/mcuboot/app.overlay
-- Generated zephyr.dts: /home/ludovic/matter_light_bulb/build_1/mcuboot/zephyr/zephyr.dts
-- Generated pickled edt: /home/ludovic/matter_light_bulb/build_1/mcuboot/zephyr/edt.pickle
-- Generated devicetree_generated.h: /home/ludovic/matter_light_bulb/build_1/mcuboot/zephyr/include/generated/zephyr/devicetree_generated.h

warning: REGULATOR_FIXED_INIT_PRIORITY (defined at drivers/regulator/Kconfig.fixed:14) was assigned
the value '45' but got the value ''. Check these unsatisfied dependencies: REGULATOR_FIXED (=n). See
http://docs.zephyrproject.org/latest/kconfig.html#CONFIG_REGULATOR_FIXED_INIT_PRIORITY and/or look
up REGULATOR_FIXED_INIT_PRIORITY in the menuconfig/guiconfig interface. The Application Development
Primer, Setting Configuration Values, and Kconfig - Tips and Best Practices sections of the manual
might be helpful too.

Parsing /home/ludovic/ncs/v3.1.0/bootloader/mcuboot/boot/zephyr/Kconfig
Loaded configuration '/home/ludovic/platform-seeedboards/zephyr/boards/arm/xiao_nrf54l15/xiao_nrf54l15_nrf54l15_cpuapp_defconfig'
Merged configuration '/home/ludovic/matter_light_bulb/sysbuild/mcuboot/prj.conf'
Merged configuration '/home/ludovic/matter_light_bulb/build_1/mcuboot/zephyr/.config.sysbuild'
Configuration saved to '/home/ludovic/matter_light_bulb/build_1/mcuboot/zephyr/.config'
Kconfig header saved to '/home/ludovic/matter_light_bulb/build_1/mcuboot/zephyr/include/generated/zephyr/autoconf.h'
-- Found GnuLd: /home/ludovic/ncs/toolchains/c5be9c56c7/opt/zephyr-sdk/arm-zephyr-eabi/arm-zephyr-eabi/bin/ld.bfd (found version "2.38")
-- The C compiler identification is GNU 12.2.0
-- The CXX compiler identification is GNU 12.2.0
-- The ASM compiler identification is GNU
-- Found assembler: /home/ludovic/ncs/toolchains/c5be9c56c7/opt/zephyr-sdk/arm-zephyr-eabi/bin/arm-zephyr-eabi-gcc
=========== Generating psa_crypto_config ===============
Backup: CONFIG_MBEDTLS_PSA_CRYPTO_SPM: False
Backup: CONFIG_MBEDTLS_PSA_CRYPTO_C: True
Backup: CONFIG_MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER: False
Backup: CONFIG_MBEDTLS_PLATFORM_SETUP_TEARDOWN_ALT: False
Backup: CONFIG_MBEDTLS_THREADING_C: False
Backup: CONFIG_MBEDTLS_THREADING_ALT: False
=========== Checkpoint: backup ===============
Restore: CONFIG_MBEDTLS_PSA_CRYPTO_SPM: False
Restore: CONFIG_MBEDTLS_PSA_CRYPTO_C: True
Restore: CONFIG_MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER: False
Restore: CONFIG_MBEDTLS_PLATFORM_SETUP_TEARDOWN_ALT: False
Restore: CONFIG_MBEDTLS_THREADING_C: False
Restore: CONFIG_MBEDTLS_THREADING_ALT: False
=========== End psa_crypto_config ===============
=========== Generating psa_crypto_library_config ===============
Backup: CONFIG_MBEDTLS_PSA_CRYPTO_C: True
Backup: CONFIG_MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER: False
Backup: CONFIG_MBEDTLS_PSA_CRYPTO_SPM: False
Backup: CONFIG_MBEDTLS_USE_PSA_CRYPTO: True
Backup: CONFIG_MBEDTLS_PLATFORM_PRINTF_ALT: False
Backup: CONFIG_MBEDTLS_THREADING_C: False
Backup: CONFIG_MBEDTLS_THREADING_ALT: False
=========== Checkpoint: backup ===============
Restore: CONFIG_MBEDTLS_PSA_CRYPTO_C: True
Restore: CONFIG_MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER: False
Restore: CONFIG_MBEDTLS_PSA_CRYPTO_SPM: False
Restore: CONFIG_MBEDTLS_USE_PSA_CRYPTO: True
Restore: CONFIG_MBEDTLS_PLATFORM_PRINTF_ALT: False
Restore: CONFIG_MBEDTLS_THREADING_C: False
Restore: CONFIG_MBEDTLS_THREADING_ALT: False
=========== End psa_crypto_library_config ===============
-- Using ccache: /home/ludovic/ncs/toolchains/c5be9c56c7/usr/bin/ccache
-- Found gen_kobject_list: /home/ludovic/ncs/v3.1.0/zephyr/scripts/build/gen_kobject_list.py
MCUBoot bootloader key file: /home/ludovic/ncs/v3.1.0/bootloader/mcuboot/root-ed25519.pem
CMake Warning at CMakeLists.txt:412 (message):
WARNING: Using default MCUboot signing key file, this file is for debug use
only and is not secure!


-- Configuring done
-- Generating done
-- Build files have been written to: /home/ludovic/matter_light_bulb/build_1/mcuboot
--
***************************************
* Running CMake for matter_light_bulb *
***************************************

Loading Zephyr default modules (Zephyr base).
-- Application: /home/ludovic/matter_light_bulb
-- CMake version: 3.21.0
-- Found Python3: /home/ludovic/ncs/toolchains/c5be9c56c7/usr/local/bin/python (found suitable version "3.12.4", minimum required is "3.10") found components: Interpreter
-- Cache files will be written to: /home/ludovic/.cache/zephyr
-- Zephyr version: 4.1.99 (/home/ludovic/ncs/v3.1.0/zephyr)
-- Found west (found suitable version "1.4.0", minimum required is "0.14.0")
-- Board: xiao_nrf54l15, qualifiers: nrf54l15/cpuapp
-- Found host-tools: zephyr 0.17.0 (/home/ludovic/ncs/toolchains/c5be9c56c7/opt/zephyr-sdk)
-- Found toolchain: zephyr 0.17.0 (/home/ludovic/ncs/toolchains/c5be9c56c7/opt/zephyr-sdk)
-- Found Dtc: /home/ludovic/ncs/toolchains/c5be9c56c7/usr/bin/dtc (found suitable version "1.5.0", minimum required is "1.4.6")
-- Found BOARD.dts: /home/ludovic/platform-seeedboards/zephyr/boards/arm/xiao_nrf54l15/xiao_nrf54l15_nrf54l15_cpuapp.dts
-- Found devicetree overlay: /home/ludovic/matter_light_bulb/boards/xiao_nrf54l15_nrf54l15_cpuapp.overlay
-- Generated zephyr.dts: /home/ludovic/matter_light_bulb/build_1/matter_light_bulb/zephyr/zephyr.dts
-- Generated pickled edt: /home/ludovic/matter_light_bulb/build_1/matter_light_bulb/zephyr/edt.pickle
-- Generated devicetree_generated.h: /home/ludovic/matter_light_bulb/build_1/matter_light_bulb/zephyr/include/generated/zephyr/devicetree_generated.h

warning: Deprecated symbol BT_CTLR is enabled.


warning: TEMP_NRF5_MPSL (defined at /home/ludovic/ncs/v3.1.0/nrf/drivers/mpsl/temp_nrf5/Kconfig:8) has direct dependencies DT_HAS_NORDIC_NRF_TEMP_ENABLED && HAS_HW_NRF_TEMP && MPSL && SENSOR && !MPSL_FEM_ONLY with value n, but is currently being y-selected by the following symbols:
- NRF_802154_SL (defined at /home/ludovic/ncs/v3.1.0/nrfxlib/nrf_802154/zephyr/Kconfig.nrfxlib:47), with value y, direct dependencies !NRF_802154_SOURCE_HAL_NORDIC && <choice NRF_802154_SL_TYPE> (value: y), and select condition NRF_802154_TEMPERATURE_UPDATE && !NRF_802154_SOURCE_HAL_NORDIC && <choice NRF_802154_SL_TYPE> (value: y)
Parsing /home/ludovic/matter_light_bulb/Kconfig
Loaded configuration '/home/ludovic/platform-seeedboards/zephyr/boards/arm/xiao_nrf54l15/xiao_nrf54l15_nrf54l15_cpuapp_defconfig'
Merged configuration '/home/ludovic/matter_light_bulb/prj.conf'
Merged configuration '/home/ludovic/matter_light_bulb/build_1/matter_light_bulb/zephyr/.config.sysbuild'

error: Aborting due to Kconfig warnings

CMake Error at /home/ludovic/ncs/v3.1.0/zephyr/cmake/modules/kconfig.cmake:377 (message):
command failed with return code: 1
Call Stack (most recent call first):
/home/ludovic/ncs/v3.1.0/nrf/cmake/modules/kconfig.cmake:83 (include)
/home/ludovic/ncs/v3.1.0/zephyr/cmake/modules/zephyr_default.cmake:131 (include)
/home/ludovic/ncs/v3.1.0/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:66 (include)
/home/ludovic/ncs/v3.1.0/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:92 (include_boilerplate)
CMakeLists.txt:9 (find_package)


-- Configuring incomplete, errors occurred!
CMake Error at cmake/modules/sysbuild_extensions.cmake:530 (message):
CMake configure failed for Zephyr project: matter_light_bulb

Location: /home/ludovic/matter_light_bulb
Call Stack (most recent call first):
cmake/modules/sysbuild_images.cmake:43 (ExternalZephyrProject_Cmake)
cmake/modules/sysbuild_default.cmake:21 (include)
/home/ludovic/ncs/v3.1.0/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:75 (include)
/home/ludovic/ncs/v3.1.0/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:92 (include_boilerplate)
/home/ludovic/ncs/v3.1.0/zephyr/share/sysbuild-package/cmake/SysbuildConfig.cmake:8 (include)
template/CMakeLists.txt:10 (find_package)


-- Configuring incomplete, errors occurred!
See also "/home/ludovic/matter_light_bulb/build_1/CMakeFiles/CMakeOutput.log".
FATAL ERROR: command exited with status 1: /home/ludovic/ncs/toolchains/c5be9c56c7/usr/local/bin/cmake -DWEST_PYTHON=/home/ludovic/ncs/toolchains/c5be9c56c7/usr/local/bin/python3.12 -B/home/ludovic/matter_light_bulb/build_1 -GNinja -DBOARD=xiao_nrf54l15/nrf54l15/cpuapp -DCONF_FILE=prj.conf -DBOARD_ROOT=/home/ludovic/platform-seeedboards/zephyr -S/home/ludovic/ncs/v3.1.0/zephyr/share/sysbuild -DAPP_DIR:PATH=/home/ludovic/matter_light_bulb

* The terminal process terminated with exit code: 1.
* Terminal will be reused by tasks, press any key to close it.

Regards

Looks like there are k config errors.

Did you follow the instructions on the seed wiki for adding the seed boards folder from git to NRF connect?

It needs to point to the seed-boards/zephyr folder, wherever you put it.

Check your prj.conf is setting the right things.

Yes I added the path of the downloaded XIAO nRF54L15 board file to the boardRoots array. It worked well for the zephyr blinky exemple.
I was able to build and flash it.

Now I am trying to make the Matter light bulb sample working:

I’ll see if I can get it to build.

The sample you want to use does not support the xiao nrf54l15 board yet.

Yes, I noticed that.
The list of compatible cards only includes Nordic DK cards.
It works with my Nordic nRF5340-DK.
I don’t think there will ever be a card from a supported manufacturer for the Matter sample.

Shouldn’t the configuration files for XIAO be added to make compilation possible?

Regards

Yup, but it’s taking me a bit to figure out what exactly needs to be changed to enable the onboard SOC temperature sensor in the Xiao version. I’m just a community member not seeed staff :laughing:

Also, I’m a few days from submitting some PRs to the nrf-sdk, to enable more stuff for the Xiao version. I’m testing a new ws2812 driver I wrote for the high performance core for it.

There’s likely no reason I can’t add the seed boards into the main board tree and add it to the supported list in kconfig for the matter samples.