Platform for XIAO nRF54L15 Zephyr Support fails to install

I am following the steps in “XIAO nRF54L15 with PlatformIO | Seeed Studio Wiki but after overwriting platformio.ini, the download and environment setup process stops with the following error.
Even after deleting all VsCode and related files and performing a clean installation, the situation remains unchanged.
Is there any solution?

Loading Zephyr default modules (Zephyr base).
No board named ‘xiao_nrf54l15’ found.

Please choose one of the following boards:

CMake Error at C:/Users/msfujino/.platformio/packages/framework-zephyr/cmake/modules/boards.cmake:228 (message):
Invalid BOARD; see above.

EDIT:
I’m stuck on the first step of running Blinky on nRF54L15 using VsCode and PlatformIO. Zephyr can’t find the board.
If anyone has run Blinky on PlatformIO, please let me know.

I also posted on the Wiki linked below, and received a reply.

Hi, regarding the issue you mentioned, we have indeed reproduced it on our end. We will revise the wiki as soon as possible, and you can keep an eye on the subsequent updates to this wiki.

:crossed_fingers: i there,

Sorry for the late reply, I was on vacation too :v:.
I was able to follow the original SDK wiki and perform ALL the steps using the nRF54L15DK board as the target first. Works AOK. I do think some steps may be reversed and why wouldn’t it. :grin:

I’m using the VS Code with NRF_SDK 3.1.0 extension

I was able to build the same for the Xiao nRF54L and it also works.
my issue’s were more of the keyboard and the floor variety when installing the OpenOcd for the Seeed Debugger. I had to go back and recheck the boards portion to get it to show up correctly. I will make a Video Documenting all of it. ASAP :+1:

Is your zephyr install updated?
Did you install the Nrf_connect SDK?
forgive the 20 questions, I’ll be catching up and reading what was posted in the meantime.
are you getting this in the NRF_SDK?

HTH
GL :slight_smile: PJ :v:

I haven’t tried the PLIO and the Zephyr raw dogging it wiki, but I will and report back. great to have this Hardware finally but as per seeed usual the software WILL need more polish, it will take time and I’m hopeful but would be good if some Arduino IDE could throw some love at it in time too… :crossed_fingers:

I figured out how to fix it, and used platformIO to flash a working blinky to the Nrf54l15

in the file Seeed Studio\boards\seeed-xiao-nrf54l15.json

change

{
    "build": {
      "cpu": "cortex-m33",
      "f_cpu": "128000000L",
      "mcu": "nRF54L15",
      "zephyr": {
        "variant": "xiao_nrf54l15/nrf54l15/cpuapp"
     }

to

{
    "build": {
      "cpu": "cortex-m33",
      "f_cpu": "128000000L",
      "mcu": "nRF54L15",
        "variant": "SEEED_XIAO_NRF54L15",
      "zephyr": {
        "variant": "xiao_nrf54l15/nrf54l15/cpuapp"
     }
'''

Then you can build blinky for the nrf54l15.

oh, here's a updated platformio.ini that supports unbricking...


[env:seeed-xiao-nrf54l15]

platform = GitHub - Seeed-Studio/platform-seeedboards: Seeed Boards: development platform for PlatformIO

framework = zephyr

board = seeed-xiao-nrf54l15

monitor_speed = 115200

; If you can’t upload the firmware to xiao-nrf54l15, please try to uncomment the following configuration.

;upload_protocol = custom

;upload_command = python “${platformio.platforms_dir}/Seeed Studio/scripts/xiao_nrf54l15_recover_flash.py” --hex $SOURCE --mass-erase


and for good measure the main.c file i used.

/*

  • Copyright (c) 2016 Intel Corporation
  • SPDX-License-Identifier: Apache-2.0
    */

#include <zephyr/kernel.h>
#include <zephyr/device.h>
#include <zephyr/drivers/gpio.h>
#include <nrfx_power.h>

/* 1000 msec = 1 sec */
#define SLEEP_TIME_MS 1000

/* The devicetree node identifier for the “led0” alias. */
#define LED0_NODE DT_ALIAS(led0)

/*

  • 获取 LED 的 GPIO 规范
    */
    static const struct gpio_dt_spec led = GPIO_DT_SPEC_GET(LED0_NODE, gpios);

int main(void)
{
int ret;
bool led_is_on = true;
nrfx_power_constlat_mode_request();
if (!gpio_is_ready_dt(&led)) {
return -1;
}

 ret = gpio_pin_configure_dt(&led, GPIO_OUTPUT_ACTIVE);
 if (ret < 0) {
	 return ret;
 }

 while (1) {
	 ret = gpio_pin_set_dt(&led, (int)led_is_on);
	 if (ret < 0) {
		 return ret;
	 }
	 led_is_on = !led_is_on;
	 k_msleep(SLEEP_TIME_MS);
 }

 return 0;

}

prj.conf from zephr subfolder of zephyr blinky example:

CONFIG_GPIO=y
CONFIG_SERIAL=n

I modified the Seeed Studio\boards\seeed-xiao-nrf54l15.json file and tried to build, but I get the same error.

ading Zephyr default modules (Zephyr base).
No board named ‘xiao_nrf54l15’ found.

Please choose one of the following boards:

CMake Error at C:/Users/msfujino/.platformio/packages/framework-zephyr/cmake/modules/boards.cmake:228 (message):
Invalid BOARD; see above.

For now, I’ve been able to run the blinky and BME280 samples using the nRF Connect SDK. I’ll continue experimenting with NCS for the time being.
Regarding PlatformIO, I’ll wait for the Seeed Wiki to be updated.

Yup, I’ve eaten up like 4 days on this thing.
But, fixing platformio support (at least on my system seems like a win.)

If Swap in my copy of the git repo, in platformio.ini, instead of the seeed official, the basic zephyr Blinky, should build after a “clean”.

Otherwise it’ll potentially pull in a fresh copy of the broken official version of the repo during the platform io run/build

I’ve been wrestling with this for over a week now.
The nRF Connect SDK is somehow working, but I only managed to install it successfully on a completely clean environment on my secondary PC.
For someone like me who’s only ever used the Arduino IDE, this is quite a high hurdle. The paths and directory structures Zephyr assumes are not at all explicit; it seems like a world requiring experience and intuition.
My immediate project is getting the SSD1306 working.

1 Like

Have you managed to get any other apps working on any other NRF devices? Or is this issue only applicable to the new NRF54L15?

I built a Zigbee Light Bulb (XIAO NRF52840) and it doesn’t work - build etc, has CLI but fails to join my Home Assistant network.

I’m looking for someone who has built these applications and has them working.

So far, I’ve only gotten the blinky and BME280 samples working with VS Code + ncs + nRF54L15. (I still don’t fully understand why it didn’t work before or why it works now, but it’s stable for now.)

1 Like

I was able to run several samples using the PlatformIO IDE.
Key points:

  1. Before installing the PlatformIO IDE extension, copy the sample folder to a suitable location.
  2. Install the PlatformIO IDE extension.
  3. For example, go to Menu Bar > File > Open Folder → zephyr-blink
  4. Click the “->” icon in the bottom left to build and upload

Important: If you encounter errors,
place the project in a location not protected by Windows security, or configure settings to allow access to protected folders.

2 Likes

I found it works better if you install it with platformIO’s advanced installation option for platforms like this:

On my freshly installed copy of platformio, in the the zephyr framework the xiao_nrf54l15 folder was missing.

I copied the xiao_nrf54l15 folder into the zephyr framework AND edited the json mentioned above.

this is what was missing from my fix earlier.

With the folder in place:

with the folder missing:

If you’re really bored, I recorded the entire error filled process of finally getting a sample to build. It’ll be on youtube in a few hours.

I recorded the entire process to set it up, on a clean windows vm and posted it to youtube, the link is set to where I copy in the board definition folder, which is what I forgot to add to the instructions yesterday. sorry!

As mentioned in Post #10, I was able to install it without any particularly complicated steps.
Thank you all for your advice.

1 Like