Getting Started with Silicon Labs Bluetooth Channel Sounding#

Overview#

Bluetooth version 6.0 introduces support for Channel Sounding (CS), a feature that enables precise distance estimation between two Bluetooth Low Energy (BLE) devices through time and phase-based measurements. Silicon Labs not only integrates this functionality into its Bluetooth stack but also offers a reference implementation of a Real-Time Locationing (RTL) library, which facilitates distance estimation and additional capabilities.

In CS, two Bluetooth devices, known as Initiator and Reflector, exchange information that is measured to produce a distance estimate between them. Silicon Labs offers comprehensive hardware and software solutions designed to streamline and simplify the evaluation of Bluetooth CS Initiator and Reflector roles.

Hardware Requirements#

To run the demos, you need two setups: one for the Initiator and one for the Reflector. Each setup requires an EFR32xG24 SoC equipped with a 40 MHz crystal.

Currently, Silicon Labs offers BRD4198A, which is an EFR32MG24-based single dipole antenna radio board designed for CS.

When using BRD4198A, both reflector and initiator devices should have:

  • 1x BRD4001 or BRD4002 WSTK

  • 1x BRD4198A with 1x Sleeve dipole antenna and 1x antenna adapter plug

board imageboard image

Software Requirements#

To begin exploring Silicon Labs CS demos, install Simplicity Studio 5 (SSv5) along with Simplicity SDK (SiSDK) version 2024.6.1 or newer.

Bluetooth Channel Sounding Demos#

SiSDK v2024.6.1 provides the following binaries that demonstrate Bluetooth CS Initiator and Reflector devices.

  • Bluetooth – SoC CS Reflector: Demo app is a prebuilt binary version of the SoC Reflector sample project found in:

    <simplicity_sdk>
    └───app
    │   └───bluetooth
    │       └───example
    │           └───bt_cs_soc_reflector 
  • Bluetooth – SoC CS Initiator: Demo app is a prebuilt binary version of the SoC Initiator sample project found in:

    <simplicity_sdk>
    └───app
    │   └───bluetooth
    │       └───example
    │           └───bt_cs_soc_initiator 
  • Bluetooth - NCP CS: Demo app is a prebuilt binary version of the CS NCP target sample project found in:

    <simplicity_sdk>
    └───app
    │   └───bluetooth
    │       └───example
    │           └───bt_cs_ncp 

The Bluetooth - SoC CS Reflector and Initiator demos are standalone. The demo binaries run on the device and display the results directly on the devices' screen and via serial console.

The NCP demo can be used with SSv5's Channel Sounding Analyzer (CS Analyzer) tool.

Setting up the Boards#

To setup the demos:

  1. Ensure that the development kits are connected to a computer that has both SSv5 and SiSDK installed.

  2. Ensure that the switch on the main board is set to AEM.

    board setupboard setup

  3. Start SSv5.

Running the Bluetooth – SoC CS Reflector Demo#

  1. In SSv5 Launcher perspective, select your device from the Debug Adapters list, and on the EXAMPLE PROJECTS & DEMOS tab, select the Bluetooth - SoC CS Reflector demo.

  2. Click RUN to download and run the demo on your board. Note: the demo also includes a bootloader. If you build the CS Reflector application from source, a bootloader must also be flashed to the device. You can find more information about the bootloaders in UG489: Silicon Labs Gecko Bootloader User’s Guide for GSDK 4.0 and Higher.

    screenshotscreenshot

  3. Open the serial monitor, and you will see a message indicating that your device has started advertising. The Reflector advertises with a device name CS RFLCT which will be used by the initiator to identify it and initiate a connection.

    serial monitor messageserial monitor message

Running the Bluetooth – SoC CS Initiator Demo#

  1. In SSv5 Launcher perspective, select your device from the Debug Adapters list, and on the EXAMPLE PROJECTS & DEMOS tab, select the Bluetooth - SoC CS Initiator demo.

  2. Click RUN to download and run the demo on your board. Note: the demo also includes a bootloader. If you build the CS Initiator application from source, a bootloader must also be flashed to the device. You can find more information about the bootloaders in UG489: Silicon Labs Gecko Bootloader User’s Guide for GSDK 4.0 and Higher.

    screenshotscreenshot

  3. After flashing the firmware, the device starts scanning for a Reflector device, connects to it, and starts the CS measurements instantly. These are indicated on the LCD display.

    initiator lcdinitiator lcd

  4. Open the serial monitor, and you will see the logs looking like this:

    serial monitor messageserial monitor message

By default, the Initiator uses the Phase-based Ranging (PBR) mode. To try Round-Trip Time (RTT) mode, you need to change the CS mode to RTT in the source code and build the firmware. Refer the CS Developer's Guide to learn how to make this change. Refer to Channel Sounding Fundamentals to learn more about PBR and RTT based measurement methods.

In general, the BLE central and peripheral roles are loosely tied with the CS Reflector and Initiator roles. The CS procedure can also be started by either the Reflector or Initiator device. The transaction for the actual measurement information is always started by the Initiator device.

In this demo implementation, however, the Initiator plays the BLE central role, and is also responsible for starting the CS procedure. The figure below depicts a simple flow diagram for the communication between the Reflector and Initiator devices.

flow diagramflow diagram

The phase and/or time measurements conducted by the Reflector and Initiator are fed to the RTL lib, which then calculates the actual distance estimation. The RTL lib takes the raw data from the results of the CS procedure, performs preprocessing, calculates an estimated distance, and then applies post-processing to yield a refined result.

rtl block diagramrtl block diagram

Running the Bluetooth NCP Channel Sounding Demo#

The NCP demo requires running the Bluetooth - NCP CS firmware on the Initiator device and the Bluetooth - SoC CS Reflector firmware on the Reflector device. In addition, the CS Analyzer is used for visualizing the measurements received by the Initiator.

The CS Analyzer tool is a Java-based application integrated into SSv5, used to visualize and debug the Silicon Labs CS solution. It is intended for demo and evaluation purposes and follows the following simple architecture.

ncp demo architectural diagramncp demo architectural diagram

To run the demo:

  1. In SSv5 Launcher perspective, select your Initiator device from the Debug Adapters list, and on the EXAMPLE PROJECTS & DEMOS tab, select the Bluetooth - NCP CS demo.

  2. Click RUN to download and run the demo on your board. Note: the demo also includes a bootloader. If you build the NCP CS application from source, a bootloader must also be flashed to the device. You can find more information about the bootloaders in [UG489: Silicon Labs Gecko Bootloader User’s Guide for GSDK 4.0 and Higher](https://www.silabs.com/documents/public/user-guides/ug489-gecko-bootloader-user-guide-gsdk-4.pdf).

screenshotscreenshot

Now, you can start the CS Analyzer.

  1. In SSv5 Launcher perspective, go to Tools, and in the Tools Dialog wizard, select Channel Sounding Analyzer.

    screenshotscreenshot

  2. Click OK.

    The CS Analyzer will open in a new tab.

  3. Next:

    • Select your Initiator device by its J-Link address and connect to it (A).

    • It will automatically start scanning the Reflector device. Select your Reflector device by its Bluetooth address and connect to it (B). Use button (C) to start recording the results after the measurement has started.

    • When prompted, select the CS mode (PBR or RTT) (D), algorithm mode (E)—Real time for moving object tracking or Static for stationary object distance estimation, and channel settings (F). By default, PBR is enabled as the CS measurement method, and moving object tracking is selected. In addition, High channel setting is selected by de-fault, meaning all 72 channels are used for CS measurement. Click OK to configure the antenna settings.

    • Set the number of antennas to be used for CS measurement by the initiator and reflector (G).

    • Click OK and a time chart displaying the distance estimate will open. Select (H) to enable/disable the RSSI based measurement graph, and (I) to include more charts.

      screenshotsscreenshots

For a complete feature of the CS Analyzer please refer to the Simplicity Studio Channel Sounding Analyzer.

Once you have set up development with your platform of choice and experimented with the precompiled demos, you can begin customizing example applications to suit your specific needs. Refer to the Developer's Guide to learn more about the demo projects' software architecture and the features of the CS Analyzer.