pc-ble-driver-py not returning base UUID for on_notification callback

pc-ble-driver-py v0.17.0

I'm running an issue where the uuid passed into the on_notification callback does not include any information about the Base UUID. To my understanding the 'base' variable should contain the base uuid like the one found in this post.

Only the offset of the characteristic is available, however this does not provide me enough information to distinguish which characteristic performed the callback since there are two other services that contain characteristics with the same offset (they have a different base address).

This happens with standard SIG characteristics such as Standard.Battery as well as custom ones.

Is there any other potential ways to correlate the exact service that this notification was sent from?

I am using the provided heart_rate_collector.py example as well as a 7750.nus_central.py example, both give me the same problem.

For Example:

Characteristic UUID performing callback: 98e00007-2b15-47fe-a52c-8457fd717e7c

What I would expect to get back: uuid.base.base = [0x98, 0xe0, 0x00, 0x00, 0x2b, 0x15, 0x47, 0xfe, 0xa5, 0x2c, 0x84, 0x57, 0xfd, 0x71, 0x7e, 0x7c], uuid.base.value = 7

What I get actually get back: uuid.base.base = None, uuid.base.value = 7

Thanks

Screenshot is from a breakpoint set in the on_notification() function

Parents
  • Hi PurpleCell23,

    I will support you with this answer. However, I am unfamiliar with the pc-ble-drive-py tool myself, and I am having some difficulty understanding and setting it up. I will get back to you on this latest by the end of Tue Feb 17.

    Meanwhile, could you please tell me:

    - What is the version of the connectivity firmware are you using?
    - Did you build it following the pc-ble-driver instruction on GitHub, or did you take it from the nRF5 SDK?
    - What hardware are you using?

    Hieu

  • Hi Hieu,

    This is the following setup:

    1) nRF52840-Dongle

    2) Python 3.10.9

    2) pc_ble_driver_py-0.17.0-cp310-cp310-win_amd64.whl

    3) Firmware ble-connectivity 4.1.4+Mar-11-2021-08-36-04. SoftDevice API version: 5. Baud rate: 1000000.

    Thanks

    EDIT: I used the 'nRF Connect for Desktop' utility to flash the nRF52840 Dongle. This application appears to flash the latest version of the connectivity firmware to my knowledge

  • Hi PurpleCell23,

    I cannot reproduce your issue. My setup is a bit different, but the main things are similar:

    - nRF52840 Dongle
    - ble-connectivity 4.1.4+Mar-11-2021-08-36-04. SoftDevice API version: 5. Baud rate: 1000000
    - Python 3.8.10
    - pc-ble-driver-py v0.17.0

    Where are you setting the breakpoint in your Python debugging?

Reply Children
Related