cs:Lib is a C/C++ library for Bluetooth Channel Sounding. We have been developing advanced high-resolution algorithms since 2007. The Channel Sounding algorithm comes with several improvements over standard Fast Fourier Transform or MUSIC algorithms, such as higher accuracy, better robustness, and more security features. It enables advanced Bluetooth location services and provides information about:

  • the distance between two nodes
  • expected deviation from true distance
  • the relative velocity between two nodes
  • rating of the complexity of the near multipath environment
  • the level of disturbances (Wi-Fi, etc.)
  • information on the signal security / proximity verification
  • in addition to distance measurements the algorithm is also able to synchronize the nodes in a coherent network



Handles multipathing and interferences.


Leading accuracy of up to 0.1m (line of sight) and 0.3m (non-line of sight).


The ranging results can be protected using round trip time (RTT) to avoid man-in-the-middle attacks.


cs:Lib can take full advantage of chipsets supporting coherent frequency switching, thus reducing measurement time and power consumption.


Configuration options to support different hardware, from low end to high end.


To adapt to different applications, the cs:Lib is implemented in a layered model. Each layer provides a different set of functionality.

Desktop Computer / Cloud / Embedded system

Layer 4: Simulation features

Layer 3: Advanced ranging capabilities

Small embedded system

Layer 2: Simple distance estimation without matrices

Low end embedded system

Layer 1: Data structures and conversions

cs:Lib provides interfaces for data input, configuration of the algorithm and data output.

The source data is defined by the Bluetooth standard and will be provided by the Bluetooth stack. This data needs to be converted to a format the algorithm understands. Delivery of cs:Lib includes sample code for this conversion layer.

The data output is a distance and some quality indicators.

For development cs:Lib can provide detailed debug data.

Supported Platforms

cs:Lib supports Bluetooth chips from all major chip vendors, providing high quality and platform independent distance calculations. The cs:Lib can be configured to run on ARM-based micro controllers (M33 or higher). Implementations on low end platforms without FPU are possible thanks to the layer model of the algorithm but require a separate controller for the calculation.

Exact resource requirements depend on the cs:Lib configuration which in turn depends on exact use case requirements regarding accuracy/robustness/measurement speed and power consumption. Contact us to discuss your requirements and find the best fit.