Platform for XIAO nRF54L15 Zephyr Support fails to install

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