Bluetooth API Problems with UUID 0x2902


I am trying to connect to the DWM1001 using bluetooth on a linux box. I am using QT 5.0 When I do the service discoverDetails() call
I get the first characteristic in the service, but then the QT code goes to get information on the descriptor, UUID 0x2902 the Client Characteristic
Configuration, the request times out and the device disconnects.

While I am looking for a way to stop the QT/BlueZ stack from trying to follow the 0x2902, I am wondering why the DWM1001 behaves this way?
It appears to behave this way with the Nordic Connect App as well, So I am inclined to think that this is a problem on the DWM1001.

Has anyone else been able to connect to the DWM1001 using bluetooth on anything other than an Android based device.

Ultimately I am looking to be able to configure these devices using a raspberry Pi and Bluetooth and one should be able to create something
very much like the RTLS manager app.

My one other question would be, I see some info on Release 2.0 with the Raspberry PI and I was wondering when that was actually going to be


Any update on this topic? I have been doing tests and I have the same problem.

Hi guys,

I have already managed to setup a BLE connection with a raspberry pi and using pygatt but only reading distances. I can releqase the code if it’s of any use to help you.

Regarding the release 2, we’ve done some fundamental changes in the architecture and are currently testing it. Keep an eye on the forum for additional information.


Release the code pretty please ^^

1 Like

Hi Yves,

It would be very great if you release the code.

As you know, Bluetooth based data exchange has better performances than UWB in cluttered environments

Many thanks for your efforts


Hi guys,

I have attached the code below. It was originally running on a raspberry pi (3.9 KB)

Hope it helps,


Thanks so much. :slight_smile: :slight_smile: :slight_smile:

Thank you for sharing this code.
however, I’m a bit confused trying to understand how the code works.
My main concern is how will the code identify which bluetooth to connect to?
Is there some line in the code where we have to change?

I have switched on 3 dev boards which were configured as anchors before and I have also switch on the tag board and replaced line 58 with the tag name “dw4201”
However, I keep getting the following output:

Python 3.7.3 (/usr/bin/python3)


Would really appreciate if anyone can tell me what I’m doing wrong.

@Yves_Bernard Thanks for your code. I have encountered some issue on the data that I received.

First, I try to print out the value which is the raw data that I have received from BLE subscribe function.
Bytearray: bytearray(b'\x00\xb9\x00\x00\x00|\x00\x00\x008\xff\xff\xffA')

Why they is a symbol ‘’ in between? \xb9\x00 is representing one byte, right?

Then, the result after converting to decimal is ridiculously big. I guess something is wrong in the conversion? Or is the calibration error? The result from android app is correct.
x: 185 y: 124 z: 4294967096 qf: 65