BLE 6 dongle/DK recommendation for multi-beacon data capture (indoor positioning)

Hi everyone,

We are a research group at a university, working on indoor positioning systems based on Bluetooth Low Energy (BLE) technology. We are currently evaluating different devices for a data capture campaign using BLE 6 from multiple beacons.

During our research we identified the nRF54L15 DK as a possible option for this purpose. We would like to know whether this board already offers a “plug-and-play” experience, without requiring extensive firmware development on our end, or whether there is another solution better suited to that kind of use that would speed up integration into an existing capture setup.

On that note, we would like to ask a few more questions:

  1. Is there any dongle or, alternatively, a development board that supports capturing BLE 6 signals and performing Channel Sounding with multiple beacons?
  2. Is there an API that allows retrieving, on a computer, the Bluetooth signal information received from different BLE 6 beacons: identifier, RSSI, Channel Sounding data, and other fields relevant to localization tasks? In this regard, we are considering incorporating the L03 Bluetooth 6 beacon, made by MokoSmart (https://www.mokosmart.com/l03-bluetooth-6-0-beacon/), into our campaign, and we would like to know if anyone has any information on its compatibility with Nordic’s BLE 6 ecosystem.

Thanks in advance for any input!

Hello @albertoramos,

BLE 6 Channel Sounding is a relatively new technology, and I’m still getting up to speed on it myself. That said, I’ll do my best to address your questions based on what I’ve learned so far.

Since this board is a development kit, you’re probably not going to find a truly plug-n-play experience.

I imagine based on your description of the problem, that you are planning on implementing the “beacons” as channel sounding reflectors and the positioning device as a channel sounding initiator. Nordic provides examples for both roles in their collection of nRF Connect SDK Bluetooth samples. If you’d like to use nRF54L15-DKs as reflectors establishing a single connection at time with an initiator, then I imagine that Nordic’s reflector example would work without major code modifications (though I’d wager some configuration changes would still be required). However, I believe using the nRF54L15-DK as an initiator in this scenario would require more involved modifications to the example application to establish simultaneous connections with multiple reflectors (beacons).

Then again, maybe you have a different approach in mind. Feel free to correct my reasoning where needed.

Choices are still pretty limited in the BLE 6 space, though the field is expanding more and more. Other than Nordic, I’m aware of existing solutions from Silicon Labs, NXP, and TI. Though, again, these will also be development platforms unlikely meeting your plug-n-play request.

Not that I’m aware of.

Not sure what kind of an API you’re asking about… If you’re using the nRF54L15-DK, all of this data could be obtained over the virtual COM port with a few modifications to the source code. Looks like most of it’s available already for the initiator example

I: Starting Channel Sounding Initiator Sample
I: SoftDevice Controller build revision:
I: bd 8a c7 d2 9b 7c 24 05 |.....|$.
I: d3 20 24 a2 60 b9 62 44 |. $.`.bD
I: 1a dc cc 22             |..."
I: HW Platform: Nordic Semiconductor (0x0002)
I: HW Variant: nRF54Lx (0x0005)
I: Firmware: Standard Bluetooth controller (0x00) Version 189.51082 Build 612146130
I: Identity: XX:XX:XX:XX:XX:XX (random)
I: HCI: version 6.0 (0x0e) revision 0x30d5, manufacturer 0x0059
I: LMP: version 6.0 (0x0e) subver 0x30d5
I: Filters matched. Address: XX:XX:XX:XX:XX:XX (random) connectable: 1
I: Connecting
I: Connected to XX:XX:XX:XX:XX:XX (random) (err 0x00)
I: Security changed: XX:XX:XX:XX:XX:XX (random) level 2
I: MTU exchange success (498)
I: The discovery procedure succeeded
I: CS capability exchange completed.
I: CS config creation complete. ID: 0
I: CS security enabled.
I: CS procedures enabled:
 - config ID: 0
 - antenna configuration index: 0
 - TX power: 0 dbm
 - subevent length: 28198 us
 - subevents per event: 1
 - subevent interval: 0
 - event interval: 2
 - procedure interval: 10
 - procedure count: 0
 - maximum procedure length: 1000
I: Distance estimates on antenna path 0: ifft: 1.039173, phase_slope: 1.581897, rtt: 3.075647
I: Sleeping for a few seconds...

This isn’t a vendor/product we carry, so I have no information other than what they provide on their site. You may consider reaching out to them directly.