nRF54L15 Peripheral<-->Central Bidirectional Communication

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)

2 Likes

Hi there,

Awesome, Sample my Guy :+1: I’m waiting on some external Antenna’s to arrive for a range test. I would agree, There is something off on the West Flashing tech.
Users YMMV, The JLink is Rock Solid the more I use it the more I like the Whole package, RTT Viewer and SDK and DEV board.

I too switched to the JLink runner and haven’t had one go south yet. WIth the West Flash Tech , seemed like every 3rd or 4th flash the part would FAULT and JLink fixed them every time. I had the same as you outcomes with the (restore Script) just did NOT work reliably.

I think it’s a speed issue with the Samd11 front end.
and or the config file may need some additional fine tuning.

The 54 is a nice MCU though and I think with the MCUBoot and the DFU capabilities will serve users well who need that. More maturity on the SDK will only get better so I’M confident the Juice will be worth the Squeeze :grin: :crossed_fingers:

the Deep_throat :man_detective: is whispering a 54LM20 Xiao could be in the works with built in High speed USB and High Speed SPI, 2 Meg NVM and 512k RAM so that will be a catapult to Anything already built or understood. This is I see the advantage, You can just build for a different targets and the APP can be coded to be MCU agnostic and expandable Ram memory and Flash gives instant boost and features like crashproof DFU. Newer Soft devices are expected also for the 54 Series. Supporting some Advanced BLE features.

More RAW HorsePower(2x) @Less than (half) current consumption, Battery Status readable, BLE 6.0 with Channel Sounding. Definitely going in the right direction.

Keep them coming. :dizzy:

GL :slight_smile: PJ :v:

When flashing the built zephyr.hex using “west flash”, the flash process completes successfully, but running the program causes an MPU FAULT and it does not function.
When flashing the same hex file using JLink, it runs without issues.
Comparing the contents of both memories revealed that when written via “west flash”, the last 8 bytes are not written.
I added some unnecessary code to make it a bit longer. If lucky, “west flash” will write the last 8 bytes too, preventing an MPU FAULT from occurring.

3 Likes

This looks super useful, I just got a pack of the antennas for the 54l. They are available in the store.

I ordered an antenna too. I’m waiting for the package.

I was able to get up to 10m with channel sounding and a pair of the antennas instead of it failing at 5m with the onboard ceramic. Anecdotally I think they’re good.

Previously, when I experimented with the nRF52840’s CodedPHY, the communication range exceeded 80 meters using the onboard antenna. It might be interesting to try it with an external antenna on the nRF54L15.

Yeah, channel sounding is a very timing sensitive application I think the range is limited on that. I know I can see a regular ble beacon from considerably further away.

Hi there,

So They are two different things.. So no comparison is possible.
from Nordic ;

" We are still in the process of improving and optimizing the channel sounding measurement procedure, so we don’t have any guarantees for accuracy just yet I’m afraid. The accuracy will vary depending on a lot of factors, like environmental noise, line of sight, etc. According to the Bluetooth SIG’s marketing material, the Bluetooth Channel sounding is only typically able to achieve an accuracy of +/- 50cm,

What we have seen, is pretty consistent measurements if calibrated. To calibrate, estimate distance at a short distance in order to find the offset from the real distance, and then apply that offset for correcting other measurements. For phase based ranging, it should be perfectly possible to achieve 0.5 meters accuracy up to 10 meters, and 1 m accuracy up to 20 meters. RTT can be used for longer distances and to confirm the IFFT results, but is not accurate on its own."

So I would say @toastee your measurements look good at least for 10 meters :dizzy:. Can you share some more details on how you are testing this on your end,?

The CodedPHY now with a 4 Meg possible and Higher RECEIVER sensitivity I bet it reaches Further Too now! Hope to test more of that. :+1:

HTH
GL :slight_smile: PhJ :v: