BLE Sounding not working on xiao nrf54l15

I have downloaded the nrf SDK v3.2.1 and i am testing its BLE sounding reflector and initiator sample code on two different xiao boards here is what i am getting at the serial monitor

I: Latest distance estimates on antenna path 0: ifft: 1.72, phase_slope: 1.74, rtt: 0.00 meters
I: Latest distance estimates on antenna path 0: ifft: 1.72, phase_slope: 1.73, rtt: 0.00 meters
I: Latest distance estimates on antenna path 0: ifft: 1.72, phase_slope: 1.73, rtt: 0.00 meters
I: Latest distance estimates on antenna path 0: ifft: 1.71, phase_slope: 1.73, rtt: 0.00 meters
I: Latest distance estimates on antenna path 0: ifft: 1.71, phase_slope: 1.73, rtt: 0.00 meters
I: Latest distance estimates on antenna path 0: ifft: 1.72, phase_slope: 1.73, rtt: 0.00 meters
I: Latest distance estimates on antenna path 0: ifft: 1.72, phase_slope: 1.73, rtt: 0.00 meters
I: Latest distance estimates on antenna path 0: ifft: 1.72, phase_slope: 1.73, rtt: 0.00 meters
I: Latest distance estimates on antenna path 0: ifft: 1.71, phase_slope: 1.73, rtt: 0.00 meters
I: Latest distance estimates on antenna path 0: ifft: 1.72, phase_slope: 1.73, rtt: 0.00 meters
I: Latest distance estimates on antenna path 0: ifft: 1.72, phase_slope: 1.73, rtt: 0.00 meters
I: Latest distance estimates on antenna path 0: ifft: 1.72, phase_slope: 1.75, rtt: 0.00 meters
I: Latest distance estimates on antenna path 0: ifft: 1.73, phase_slope: 1.78, rtt: 0.00 meters
I: Latest distance estimates on antenna path 0: ifft: 1.73, phase_slope: 1.75, rtt: 0.00 meters
I: Latest distance estimates on antenna path 0: ifft: 1.70, phase_slope: 1.73, rtt: 0.00 meters
I: Latest distance estimates on antenna path 0: ifft: 1.73, phase_slope: 1.75, rtt: 0.00 meters
I: Latest distance estimates on antenna path 0: ifft: 1.73, phase_slope: 1.76, rtt: 0.00 meters
I: Latest distance estimates on antenna path 0: ifft: 1.73, phase_slope: 1.76, rtt: 0.00 meters
I: Latest distance estimates on antenna path 0: ifft: 1.73, phase_slope: 1.76, rtt: 0.00 meters


On the reflector side i dont have any prints.
My question is why am i getting the RTT as 0 ? is there any extra configuration which we need to do

I have followed setting up the xiao nrf from its getting started page 
here is the link of it
wiki.seeedstudio.com/.../

Parents
  • Hi,

    Thanks for contacting us. Please note that RTT method has a usable resolution of 5 m . For short range applications please use IFFT which should give accuracy of 0.5 m . You can increase the distance to more than 10 m to see what kind of initial offset you have with RTT method. And also try to have a line of sight communication between the boards (no big physical obstacle between them). 

    Best regards,
    Ressa

  • Hi, 
    Thanks for your reply Ressa

    So what will be the maximum distance which I can calculate using IFFT and PHASE SLOPE methods and what will be there accuracy

  • Hi Muba,

    The accuracy with Channel Sounding depends so much on the environment you are testing in. For example having line of sight link with clear surrounding and very few other BLE devices would give better performance with a good consistency and as the mentioned conditions worsen you would expect degraded performance. The number I mentioned is a rough guideline which can vary depending on the application and conditions but based on that lets say for less than 5 m you need to use IFFT and for 5m to 10m you can check both of them and for more than 10 m you can check just RTT.

  • Hi Ressa,

    So here is one case we are having 2 xiao nrf54l15 modules and we are using a custom git repo which has examples of nrf sdk made for xiao nrf54l15, here is the link of it
    https://github.com/Toastee0/Seeed-Xiao-nRF54L15

    i ma using the ble sounding initiator and reflector examples on each xiao nrf54l15 they are separated 1m apart and this is the reading which i am getting

    [00:15:23.905,828] <inf> app_main: [AP0] IFFT:0.51m Phase:0.67m RTT:0.00m → Best:0.62m
    [00:15:24.043,048] <inf> app_main: [AP0] IFFT:0.51m Phase:0.68m RTT:0.00m → Best:0.62m
    [00:15:24.164,471] <inf> app_main: [AP0] IFFT:0.51m Phase:0.68m RTT:0.00m → Best:0.62m
    [00:15:24.204,469] <inf> app_main: [AP0] IFFT:0.49m Phase:0.64m RTT:0.00m → Best:0.59m
    [00:15:24.363,091] <inf> app_main: [AP0] IFFT:0.50m Phase:0.60m RTT:0.00m → Best:0.56m
    [00:15:24.404,448] <inf> app_main: [AP0] IFFT:0.49m Phase:0.60m RTT:0.00m → Best:0.56m
    [00:15:24.521,698] <inf> app_main: [AP0] IFFT:0.49m Phase:0.60m RTT:0.00m → Best:0.56m
    [00:15:24.604,448] <inf> app_main: [AP0] IFFT:0.49m Phase:0.54m RTT:0.00m → Best:0.52m
    [00:15:24.704,394] <inf> app_main: [AP0] IFFT:0.41m Phase:0.60m RTT:0.00m → Best:0.53m
    [00:15:24.804,488] <inf> app_main: [AP0] IFFT:0.41m Phase:0.78m RTT:0.00m → Best:0.66m
    [00:15:24.904,472] <inf> app_main: [AP0] IFFT:0.49m Phase:0.74m RTT:0.00m → Best:0.65m
    [00:15:25.004,487] <inf> app_main: [AP0] IFFT:0.41m Phase:0.78m RTT:0.00m → Best:0.66m
    [00:15:25.104,514] <inf> app_main: [AP0] IFFT:0.41m Phase:0.81m RTT:0.00m → Best:0.68m
    [00:15:25.224,485] <inf> app_main: [AP0] IFFT:0.41m Phase:0.82m RTT:0.00m → Best:0.68m
    [00:15:25.304,515] <inf> app_main: [AP0] IFFT:0.41m Phase:0.82m RTT:0.00m → Best:0.68m
    [00:15:25.404,456] <inf> app_main: [AP0] IFFT:0.41m Phase:0.81m RTT:0.00m → Best:0.68m
    [00:15:25.520,284] <inf> app_main: [AP0] IFFT:0.41m Phase:0.82m RTT:0.00m → Best:0.68m
    [00:15:25.604,509] <inf> app_main: [AP0] IFFT:0.41m Phase:0.82m RTT:0.00m → Best:0.68m
    [00:15:25.704,511] <inf> app_main: [AP0] IFFT:0.41m Phase:0.83m RTT:0.00m → Best:0.69m
    [00:15:25.804,514] <inf> app_main: [AP0] IFFT:0.41m Phase:0.83m RTT:0.00m → Best:0.69m
    [00:15:25.904,482] <inf> app_main: [AP0] IFFT:0.41m Phase:0.82m RTT:0.00m → Best:0.68m
    [00:15:26.004,510] <inf> app_main: [AP0] IFFT:0.41m Phase:0.83m RTT:0.00m → Best:0.69m
    [00:15:26.104,454] <inf> app_main: [AP0] IFFT:0.41m Phase:0.82m RTT:0.00m → Best:0.68m
    [00:15:26.204,483] <inf> app_main: [AP0] IFFT:0.41m Phase:0.81m RTT:0.00m → Best:0.67m
    [00:15:26.304,546] <inf> app_main: [AP0] IFFT:0.41m Phase:0.81m RTT:0.00m → Best:0.67m
    [00:15:26.404,451] <inf> app_main: [AP0] IFFT:0.41m Phase:0.81m RTT:0.00m → Best:0.67m
    [00:15:26.541,666] <inf> app_main: [AP0] IFFT:0.50m Phase:0.77m RTT:0.00m → Best:0.68m
    [00:15:26.604,542] <inf> app_main: [AP0] IFFT:0.55m Phase:0.77m RTT:0.00m → Best:0.70m
    [00:15:26.704,460] <inf> app_main: [AP0] IFFT:0.58m Phase:0.77m RTT:0.00m → Best:0.70m
    [00:15:26.824,490] <inf> app_main: [AP0] IFFT:0.59m Phase:0.77m RTT:0.00m → Best:0.71m
    [00:15:26.921,704] <inf> app_main: [AP0] IFFT:0.60m Phase:0.77m RTT:0.00m → Best:0.71m
    [00:15:27.021,615] <inf> app_main: [AP0] IFFT:0.60m Phase:0.77m RTT:0.00m → Best:0.71m
    [00:15:27.104,449] <inf> app_main: [AP0] IFFT:0.61m Phase:0.77m RTT:0.00m → Best:0.71m
    [00:15:27.204,520] <inf> app_main: [AP0] IFFT:0.61m Phase:0.77m RTT:0.00m → Best:0.71m
    [00:15:27.305,928] <inf> app_main: [AP0] IFFT:0.62m Phase:0.78m RTT:0.00m → Best:0.72m
    [00:15:27.404,543] <inf> app_main: [AP0] IFFT:0.62m Phase:0.78m RTT:0.00m → Best:0.72m
    [00:15:27.541,641] <inf> app_main: [AP0] IFFT:0.64m Phase:0.77m RTT:0.00m → Best:0.72m
    [00:15:27.604,487] <inf> app_main: [AP0] IFFT:0.65m Phase:0.78m RTT:0.00m → Best:0.73m
    [00:15:27.704,521] <inf> app_main: [AP0] IFFT:0.62m Phase:0.78m RTT:0.00m → Best:0.72m
    [00:15:27.804,453] <inf> app_main: [AP0] IFFT:0.62m Phase:0.78m RTT:0.00m → Best:0.72m
    [00:15:27.904,546] <inf> app_main: [AP0] IFFT:0.62m Phase:0.73m RTT:0.00m → Best:0.69m
    [00:15:28.004,449] <inf> app_main: [AP0] IFFT:0.62m Phase:0.79m RTT:0.00m → Best:0.73m
    [00:15:28.120,353] <inf> app_main: [AP0] IFFT:0.64m Phase:0.79m RTT:0.00m → Best:0.74m
    [00:15:28.204,578] <inf> app_main: [AP0] IFFT:0.62m Phase:0.76m RTT:0.00m → Best:0.71m
    [00:15:28.321,671] <inf> app_main: [AP0] IFFT:0.62m Phase:0.79m RTT:0.00m → Best:0.73m
    [00:15:28.444,485] <inf> app_main: [AP0] IFFT:0.59m Phase:0.82m RTT:0.00m → Best:0.74m
    [00:15:28.504,452] <inf> app_main: [AP0] IFFT:0.59m Phase:0.82m RTT:0.00m → Best:0.74m
    [00:15:28.604,484] <inf> app_main: [AP0] IFFT:0.59m Phase:0.87m RTT:0.00m → Best:0.78m
    [00:15:28.721,690] <inf> app_main: [AP0] IFFT:0.59m Phase:0.82m RTT:0.00m → Best:0.74m
    [00:15:28.804,479] <inf> app_main: [AP0] IFFT:0.59m Phase:0.88m RTT:0.00m → Best:0.78m
    [00:15:28.920,234] <inf> app_main: [AP0] IFFT:0.41m Phase:0.89m RTT:0.00m → Best:0.73m
    [00:15:29.004,475] <inf> app_main: [AP0] IFFT:0.41m Phase:0.89m RTT:0.00m → Best:0.73m


    Do I need to make any changes in the config files in order to get better accuracy
    also that what is the maximum accuracy which we can achieve using IFFT method

  • Hi Muba, 

    The 0.5 m accuracy for IFFT and 5 m for RTT are only numbers we can say in generic term. There is no official best accuracy numbers for IFFT and even the numbers are provided are not for all conditions and applications. If the application needs more accuracy our recommendation would be to develop your own algorithm based on the specific use case and environment conditions. 

  • Hi Ressa, 

    I have successfully uploaded the BLE CS code on my xiao nrf54l15, just wanted to ask that many times i keep getting this error when i upload the code on my xiao and it is the case with both the reflector as well as initiator

    [00:00:42.368,367] <err> os: ***** MPU FAULT *****
    [00:00:42.373,725] <err> os: Data Access Violation
    [00:00:42.379,325] <err> os: MMFAR Address: 0x3000d
    [00:00:42.385,023] <err> os: r0/a1: 0x200096e8 r1/a2: 0x00000001 r2/a3: 0xba2e8ba3
    [00:00:42.393,631] <err> os: r3/a4: 0x00000008 r12/ip: 0x00000000 r14/lr: 0x000243b9
    [00:00:42.402,240] <err> os: xpsr: 0x01000000
    [00:00:42.407,425] <err> os: s[ 0]: 0x00000000 s[ 1]: 0x00000000 s[ 2]: 0x00000000 s[ 3]: 0x00000102
    [00:00:42.417,762] <err> os: s[ 4]: 0x20006a78 s[ 5]: 0x20007406 s[ 6]: 0x00000000 s[ 7]: 0x20006a9c
    [00:00:42.428,101] <err> os: s[ 8]: 0x00000040 s[ 9]: 0x00000000 s[10]: 0x00000008 s[11]: 0x0002483d
    [00:00:42.438,440] <err> os: s[12]: 0x20007406 s[13]: 0x0002f563 s[14]: 0x00000000 s[15]: 0x00032c89
    [00:00:42.448,763] <err> os: fpscr: 0x000325e0
    [00:00:42.453,936] <err> os: Faulting instruction address (r15/pc): 0x0002444c
    [00:00:42.461,778] <err> os: >>> ZEPHYR FATAL ERROR 19: Unknown error on CPU 0
    [00:00:42.469,613] <err> os: Current thread: 0x20004950 (unknown)
    [00:00:42.476,331] <err> os: Halting system

    what is this error and why do i keep getting, another thing is that it doesnt come everytime.
    and for this compilation i have just changed this line in the code

    .cs_sync_antenna_selection = BT_LE_CS_ANTENNA_SELECTION_OPT_NO_RECOMMENDATION,



Reply
  • Hi Ressa, 

    I have successfully uploaded the BLE CS code on my xiao nrf54l15, just wanted to ask that many times i keep getting this error when i upload the code on my xiao and it is the case with both the reflector as well as initiator

    [00:00:42.368,367] <err> os: ***** MPU FAULT *****
    [00:00:42.373,725] <err> os: Data Access Violation
    [00:00:42.379,325] <err> os: MMFAR Address: 0x3000d
    [00:00:42.385,023] <err> os: r0/a1: 0x200096e8 r1/a2: 0x00000001 r2/a3: 0xba2e8ba3
    [00:00:42.393,631] <err> os: r3/a4: 0x00000008 r12/ip: 0x00000000 r14/lr: 0x000243b9
    [00:00:42.402,240] <err> os: xpsr: 0x01000000
    [00:00:42.407,425] <err> os: s[ 0]: 0x00000000 s[ 1]: 0x00000000 s[ 2]: 0x00000000 s[ 3]: 0x00000102
    [00:00:42.417,762] <err> os: s[ 4]: 0x20006a78 s[ 5]: 0x20007406 s[ 6]: 0x00000000 s[ 7]: 0x20006a9c
    [00:00:42.428,101] <err> os: s[ 8]: 0x00000040 s[ 9]: 0x00000000 s[10]: 0x00000008 s[11]: 0x0002483d
    [00:00:42.438,440] <err> os: s[12]: 0x20007406 s[13]: 0x0002f563 s[14]: 0x00000000 s[15]: 0x00032c89
    [00:00:42.448,763] <err> os: fpscr: 0x000325e0
    [00:00:42.453,936] <err> os: Faulting instruction address (r15/pc): 0x0002444c
    [00:00:42.461,778] <err> os: >>> ZEPHYR FATAL ERROR 19: Unknown error on CPU 0
    [00:00:42.469,613] <err> os: Current thread: 0x20004950 (unknown)
    [00:00:42.476,331] <err> os: Halting system

    what is this error and why do i keep getting, another thing is that it doesnt come everytime.
    and for this compilation i have just changed this line in the code

    .cs_sync_antenna_selection = BT_LE_CS_ANTENNA_SELECTION_OPT_NO_RECOMMENDATION,



Children
Related