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.

1 Like

I managed to disable it in the file: ncs/v3.1.0/nrf/drivers/mpsl/temp_nrf5/Kconfig

Thanks for your contributions, I can’t wait to see it.

Ths one may be able to help me configure DFU.
Lesson 9 – Bootloaders and DFU/FOTA

Is DFU over USB supported for this XIAO nRF54L15 card?
Which mode do you recommend for beginners?

Regards

Well, I’m putting this down for a few days until seeed engineering gets back from vacations.
I’ve got a very in uncooperative nrf54l15. I can get at it thru DAP and halt examine and reset the cores, but I must be doing something wrong, as I can’t get it to read /write to certain addresses when I try do disable certain levels of write protection.

I’m pretty sure the board definitions in using are correct, but I have a crashed hpf app on core.1 and some sort of protection enable that prevents me from fixing it with my current knowledge level.

It talks back over openocd still, so there’s a hope.

That said I have about 20 other projects that are not based around the xiao nrf54L15, which at the time of writing does not have sufficiently implemented boards definitions and SDK support to be a suitable development platform.

I Love seeed products, but this one needs a lot more love and attention before it’s ready. I’ll try to work with seeed to fix this, but I feel like I wasted my entire day on this Yesterday.

1 Like

Hi there,

So , yea it goes that way, Sideways too sometimes
Not lost on the effort though, You made a nice Opening I’m catching up on the reading. I would agree 100% on the light attention or a “one eye” to detail on the code side as always it seems with this stuff.

It will get sorted… always does it just depends on the timeline which rarely is speedy and is Aok as long as it’s thorough…IMO.

I’ll work with the DK board a while and post up all the results. I have luckily only 4-5 projects so catch up on and Post some video’s.

Great Job! :+1:

more to come.
HTH
GL :slight_smile: PJ :v:

Thanks for your help.
In my opinion, the main difference is that the XIAO nrf54l15 board does not have an external flash, whereas the DK Nordic does.
This means that each example has to be modified. We cannot rely on the pre-designed example.

Can’t wait to see it.