With previous XIAO series boards, we could easily write sketches using Arduino thanks to the Board Support Package (BSP). However, the XIAO nRF54L15 did not have a BSP, limiting the development environment to Zephyr.
I imagine many of you have struggled with learning Zephyr or setting up the environment.
Now, @Loren_Bufanu is developing an nRF54L15 BSP on GitHub (link below).
While full-scale debugging support is still under development, I can already write and run Arduino sketches with few issues. Most existing Arduino libraries and sketches work with little to no modification. Compile times are also significantly faster compared to Zephyr.
I have written a few sample sketches, so please use them as a reference.
Wow, wonderful news.
I will test it today, should be easy because there is a JSON to integrate it in my Eclipse/Sloeber.
So I have to buy a few nrf54L15-XIAOs next week. Exciting …
That saves a lot of time for me. My own integration of the Nordic bare metal environment into Eclipse is far away from success as I can spent only a few hours per week for it.
Thank You for the information.
Update:
The preparation of my IDE has taken only a few minutes and compilation runs (empty setup() and loop() with including Arduino.h). Now I have to wait for the XIAO-boards. There are some selectors (ZigBee, BLE, etc.), may be I have to learn more if it does not run with default (no) selections. But that is for the next week …
(Would be interesting if I can exclude compiling and linking of resources that I do not need.)
Update 2: (not technical)
Does someone know, how to order XIAO-boards at seedstudio without PayPal?
My latest XIAO-Boards (nrf52840) I ordered at Amazon, but they do not have nrf54L15.
Now I spent a lot of time trying to buy a XIAO-board, more, than installing and testing the developer environment. But no success … not possible to buy.
Update 3: Meanwhile I found a seller with several payment conditions.
The BSP for the nRF54L15 currently being developed by @Loren_Bufanu includes a wealth of BLE examples. Using these as a reference, I wrote a demo sketch for Extended BLE. I hope this serves as a useful reference for anyone interested.
Peripheral retrieves data from the IMU every 80 ms and calculates attitude using the Madgwick filter. It then bursts 44 bytes of data three times via ExtendedAdv. The central filters Peripheral by MAC address, receives the 44-byte data, and displays it on a display and a PC serial plotter.
If necessary, the data length can be extended up to 1 KB.
That is near to my BLE application, a master/slave bus-system with many slaves (currently 10, up to 255 possible) based on standard advertising PDUs (6 bytes request and 31 bytes response) and a connection time of less than 1 millisecond for each slave. Till now it is running on Arduino Nano BLE 33 (nRF52840).
I am still waiting for the XIAO-boards which I ordered this Monday, being excited how it works. It will take a few hours to adapt my code, because I directly manipulate the registers and there are new registers with nRF54L15 (SUBSCRIBE_…) which I want to learn.
And of course I will have a look to the resources presented by @Loren_Bufanu, but first I want to run my own software.
Thanks to @msfujino for the presentations and thanks to @Loren_Bufanu for the Arduino integration.
For anybody with interest, the library is out-of-the-box compatible with nRF24 and nRF52840 devices, but can be set to use the larger payload sizes and faster (4Mbit) speeds as well.
The library focuses on the ESB (Enhanced Shock Burst) protocol, which is basically direct radio communication between devices.
My supporting libraries (RF24Network, RF24Mesh &RF24Ethernet) are being updated currently, and the current changes are available on the master branches, we just haven’t done official releases yet, until things are ready. I’m still working out a few details all around.
Testers, users etc are all welcome! Please report any issues etc via the link above.