Having become somewhat familiar with using Zephyr+NCS, I wrote a simple project for practice to send and receive data bidirectionally between the nRF54L15 Peripheral and Central. I hope it proves useful to anyone interested.
Both the Peripheral and Central send and receive 16 bytes of data (timestamp, battery voltage, RSSI, and each other’s random number) to each other every second. The transmitted random number is received with a periodic delay, allowing for verification. When running on battery power, set CONFIG_SERIAL=n. The transmit power is set to 8dBm by specifying CONFIG_BT_CTLR_TX_PWR_PLUS_8=y, but this can be changed and verified by observing changes in the RSSI value.
This might be specific to my environment, but a recurring issue is that flashing via USB using “west flash” often fails, or if it does flash but it frequently causes a FAULT. Performing a “factory_reset” does not resolve this. As a workaround, I’m now flashing using J-Link, which is stable.
My impression is that with Arduino and nRF54820, I could have built the same project much faster. Even though it was my first time, using nRF54L15 with the complex Zephyr+NCS stack took nearly a month. Not being able to reuse assets written for Arduino made it very inefficient.
The project and hex files are located in the folder below.
BLE_bidirectional.zip (901.7 KB)
