Difficulty Filtering DWM1001 Devices by Service UUID in Bluetooth Advertisement


I am developing a script (either in Python or JavaScript) to scan for DWM1001 devices via Bluetooth with the aim of auto-configuring them. To streamline the process, I want to filter out all non-DWM1001 devices by checking if the service UUID is present in the Bluetooth advertisement data.

However, both my Python and JavaScript implementations fail to detect any devices when I attempt to filter by the specific service UUID. This is puzzling because the Decawave DRTLS Manager app successfully lists only DWM1001 devices, suggesting there should be a way to specifically filter for these devices.

Here is the approach I’ve been trying:

  1. Using the Web Bluetooth API in JavaScript, I specify the service UUID in the requestDevice method’s filter.
  2. Similarly, in Python, I use bleak to scan for devices then check advertisement data for the specific service UUID

Neither method results in any DWM1001 devices being detected, even though they connect and identify the service UUID post-connection when no pre-filtering is applied.

Could you provide guidance on how I should be configuring my scans or suggest what might be missing or incorrect in my current approach to only detect DWM1001 devices via their advertised services? Is there a specific setting on the DWM1001 modules that ensures the service UUID is included in the advertisement packets?

Thank you for your assistance,