Disclaimer: this issue was investigated and written up with AI assistance. The
findings were verified on real hardware — see the reproduction details below.
Page: https://wiki.seeedstudio.com/xiao_nrf54lm20a_with_onboard/#imu-wake-up
Board: XIAO nRF54LM20A Sense
SDK: nRF Connect SDK v3.4.0 / Zephyr v4.4.0, Zephyr SDK 1.0.1
1. regulator-boot-on on LDO1 puts the board in an unrecoverable reset loop
The app.overlay on this page sets regulator-boot-on on the nPM1300 LDO1 node.
On NCS v3.4.0 this hard-faults during driver init: LDO1 sits behind the PMIC on
the gpio-i2c bitbang bus, and boot-on enables the rail before that bus is ready.
The fault handler itself faults, producing a double fault and CPU lockup.
Symptom: the board enters a ~573 ms USB enumerate/disconnect loop. Because the
lockup takes the onboard SAMD11 CMSIS-DAP down with it, the board looks like a dead
debug probe and is very difficult to reflash (openocd reports
clearing lockup after double fault on the rare attempt that connects).
Removing the single line regulator-boot-on; fixes it completely — board boots,
IMU initializes, tap detection works. It is also redundant: the page's own main.c
already calls regulator_enable(imu_vdd) at runtime.
Verified as a single-variable change; stock samples/basic/blinky was stable on the
same board throughout, ruling out most other hardware issues.
2. prj.conf enables the WS2812 driver with no matching devicetree node
prj.conf sets CONFIG_LED_STRIP=y and CONFIG_WS2812_STRIP_SPI=y, but the overlay
defines no worldsemi,ws2812-spi node, so the build emits:
warning: WS2812_STRIP_SPI ... was assigned the value 'y' but got the value 'n'.
Check these unsatisfied dependencies: DT_HAS_WORLDSEMI_WS2812_SPI_ENABLED (=n)
plus No SOURCES given to Zephyr library: drivers__led_strip. Both symbols appear
unused by this example and could be dropped.
As stated above nRF Connect SDK v3.4.0 was used instead of the v3.3.0 used by the wiki. I did not confirm if this was an issue on v3.3.0.
Installation of the SDK was done manually using west, but this shouldn't matter.
Page: https://wiki.seeedstudio.com/xiao_nrf54lm20a_with_onboard/#imu-wake-up
Board: XIAO nRF54LM20A Sense
SDK: nRF Connect SDK v3.4.0 / Zephyr v4.4.0, Zephyr SDK 1.0.1
1.
regulator-boot-onon LDO1 puts the board in an unrecoverable reset loopThe
app.overlayon this page setsregulator-boot-onon the nPM1300LDO1node.On NCS v3.4.0 this hard-faults during driver init:
LDO1sits behind the PMIC onthe
gpio-i2cbitbang bus, and boot-on enables the rail before that bus is ready.The fault handler itself faults, producing a double fault and CPU lockup.
Symptom: the board enters a ~573 ms USB enumerate/disconnect loop. Because the
lockup takes the onboard SAMD11 CMSIS-DAP down with it, the board looks like a dead
debug probe and is very difficult to reflash (openocd reports
clearing lockup after double faulton the rare attempt that connects).Removing the single line
regulator-boot-on;fixes it completely — board boots,IMU initializes, tap detection works. It is also redundant: the page's own
main.calready calls
regulator_enable(imu_vdd)at runtime.Verified as a single-variable change; stock
samples/basic/blinkywas stable on thesame board throughout, ruling out most other hardware issues.
2.
prj.confenables the WS2812 driver with no matching devicetree nodeprj.confsetsCONFIG_LED_STRIP=yandCONFIG_WS2812_STRIP_SPI=y, but the overlaydefines no
worldsemi,ws2812-spinode, so the build emits:plus
No SOURCES given to Zephyr library: drivers__led_strip. Both symbols appearunused by this example and could be dropped.
As stated above nRF Connect SDK v3.4.0 was used instead of the v3.3.0 used by the wiki. I did not confirm if this was an issue on v3.3.0.
Installation of the SDK was done manually using
west, but this shouldn't matter.