You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Today I discovered - after quite some debugging - that vendor-specific (long) Service UUIDs must be written in lowercase.
A BLE central will not find the service, if the declaration of a long UUID contains an uppercase hex digit.
I suggest that this should be changed to accept any valid hex string.
To reproduce in a simple example, modify main.py in the "echo" example, line 26 to
'uuid': '12345678-1234-1234-1234-1234567890AB',
(it should be a vendor-specific (long) uuid, and note the capital letters AB)
Then use gatttool -b <bdaddr> -I on another linux machine and enter the commands below:
$ gatttool -b B8:27:EB:5E:36:C7 -I
[B8:27:EB:5E:36:C7][LE]> connect
Attempting to connect to B8:27:EB:5E:36:C7
Connection successful
[B8:27:EB:5E:36:C7][LE]> primary
attr handle: 0x0001, end grp handle: 0x0005 uuid: 00001800-0000-1000-8000-00805f9b34fb
attr handle: 0x0006, end grp handle: 0x0009 uuid: 00001801-0000-1000-8000-00805f9b34fb
attr handle: 0x000a, end grp handle: 0x000d uuid: 12345678-1234-1234-1234-1234567890ab
[B8:27:EB:5E:36:C7][LE]> primary 12345678-1234-1234-1234-1234567890ab
Error: No service UUID found
The result should of course be
Starting handle: 0x000a Ending handle: 0x000d
I tried multiple versions of pybleno, raspbian, bluez and it happened on all of them, before I found the reason "upper case hex digit". The last versions were: pybleno 0.11, raspbian buster, bluez 5.52
The text was updated successfully, but these errors were encountered:
Today I discovered - after quite some debugging - that vendor-specific (long) Service UUIDs must be written in lowercase.
A BLE central will not find the service, if the declaration of a long UUID contains an uppercase hex digit.
I suggest that this should be changed to accept any valid hex string.
To reproduce in a simple example, modify main.py in the "echo" example, line 26 to
(it should be a vendor-specific (long) uuid, and note the capital letters AB)
Then use
gatttool -b <bdaddr> -I
on another linux machine and enter the commands below:The result should of course be
I tried multiple versions of pybleno, raspbian, bluez and it happened on all of them, before I found the reason "upper case hex digit". The last versions were: pybleno 0.11, raspbian buster, bluez 5.52
The text was updated successfully, but these errors were encountered: