Secondary development

Now, I’d like to realize the auto-positioning function by my own code(C language) and modify the ranging algorithm to build my own three dimensional positioning system. Do I need to have a Raspberry Pi 3b? And I want to use the Raspberry as an upper computer to configure the module, is it feasible?

Hi Leo,

Can you confirm you are using the PANS firmware for dwm1001 ?

The raspberry pi is required only if you need the bridge node functionality.

Regarding customizing the ranging algorithm, it is not easily possible.

Thank you,

Hi Yves,
Yes, i am using the PANS firmware 2 for dwm1001.
I now know about the bridge node functionality, and I’m learning about the BLE API.
Everything I can find related to BLE API is in the Firmware API guide, which shows the uuid and so on, but I wonder how to use the BLE API other than RTLS manager in Android system. Because I want to write a code in PC to control the dwm1001 module remotely. But I don’t know how to use the BLE API.

Ok I see,

I think the best reference is the android application source code. You can see how interface with the BLE is implemented there.

Otherwise I have made a basic python script that will connect over BLE a while ago, it could be a starting point :


Thanks Yves,
but I haven’t learned python yet. Do you have a simple C program that shows how to connect the device through BLE?

Hi Leo,

We don’t have such a program, sorry.

Maybe have a look at nrf52832 software provided by nordic (this is the MCU used on dwm1001)


Thank you,Yves
Your answer helps me a lot.


if you use a Linux machine (e.g. on Raspberry 3B there is Bluetooth), then you can use Bluez to write a Bluetooth application.

Basically install necessary tools on your Raspberry:

sudo apt-get update
sudo apt-get install bluetooth bluez libbluetooth-dev libudev-dev

Then enable the BT HCI interface

sudo hciconfig hci0 down
sudo hciconfig hci0 ip

Then write some application e.g. in C or C++. Look for “linux bluetooth c example bluez” on Google and you will find a lot of examples. Another option is to use nodejs to run javascript bluetooth tool like this one:


Thank you very much!
I will follow your step and try to work it out.