1
votes

I am trying to connect a Wahoo Scale 1.3 to read the live weight of a person via bluetooth notifications.

The live weight can be read via the following characteristic:

handle: 0x0025, char properties: 0x10, char value handle: 0x0026, uuid: 00002b01-0000-1000-8000-00805f9b34fb.

This is working with LightBlue app on my iPhone.

When I try to receive notifications via gatttool I get the following error:

Command line gatttool: (tried also lots of different notations from different stack overflow topics)

[XX:XX:XX:XX:XX:XX][LE]> char-write-req 0x0026 0100
Error: Characteristic Write Request failed: Attribute can't be written

btmon bluetooth log

< ACL Data TX: Handle 0 flags 0x00 dlen 9                                                                                                                                                                                    [hci0] 4.291021
          ATT: Write Request (0x12) len 4
            Handle: 0x0026
              Data: 0100
    > HCI Event: Number of Completed Packets (0x13) plen 5                                                                                                                                                                       [hci0] 4.327199
            Num handles: 1
            Handle: 0
            Count: 1
    > ACL Data RX: Handle 0 flags 0x02 dlen 9                                                                                                                                                                                    [hci0] 4.383580
          ATT: Error Response (0x01) len 4
            Write Request (0x12)
            Handle: 0x0026
            Error: Write Not Permitted (0x03)

One thing I noticed is that under UUID 1901 (weight service) there are 3 properties: 1: write/indicate, 2: notify, 3: notify. Bluetooth characteristics on LightBlue App

I am able to write with gatttool to the first property, but not to the 2 and 3 property. But how does LightBlue starts listening for notifications?

I tried this one two different systems: Beaglebone Black with QN9021 BLE controller (Bluez 5.38, OpenWrt Linux 4.4) Beaglebone Black WiFi/Bluetooth (Bluez 5.23, Debian Linux 4.4)

Do I get this error because of incompatiblities of the Bluez stack and the Wahoo Scale? How do I fix this?

Thank you!

1

1 Answers

2
votes

0x0026 is the handle for the value, not for the descriptor. I would guess the descriptor's handle is 0x0027.