GATT DB bug: Characteristic enforces bonding and aborts DB parsing

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Anonymous
Not applicable

Hi everybody,

I encountered a problem with a generated GATT DB using the WICED Bluetooth Designer.

The GATT DB is only interpreted until one characteristic with descriptor is read. If I remove it from the GATT DB, all works fine.

This is the characteristic:

// ----- Characteristic 'Command Read from BLE'

#define HDLC_TTL_ENHANCEMENT_SERVICE_COMMAND_READ_FROM_BLE                         0x0530

#define HDLC_TTL_ENHANCEMENT_SERVICE_COMMAND_READ_FROM_BLE_VALUE                   0x0531

#define __UUID_TTL_ENHANCEMENT_SERVICE_COMMAND_READ_FROM_BLE                       0x45, 0x4c, 0xdb, 0xc3, 0x17, 0x7f, 0x56, 0x82, 0x60, 0x40, 0xaa, 0x4d, 0x0a, 0x00, 0x00, 0x00

// Client Configuration

#define HDLD_TTL_ENHANCEMENT_SERVICE_COMMAND_READ_FROM_BLE_CLIENT_CONFIGURATION    0x0540

//<Name>Command Read from BLE</Name>

//<Uuid>45 4c db c3 17 7f 56 82 60 40 aa 4d 0a 00 00 00</Uuid>

CHARACTERISTIC_UUID128 (HDLC_TTL_ENHANCEMENT_SERVICE_COMMAND_READ_FROM_BLE,HDLC_TTL_ENHANCEMENT_SERVICE_COMMAND_READ_FROM_BLE_VALUE,

__UUID_TTL_ENHANCEMENT_SERVICE_COMMAND_READ_FROM_BLE,LEGATTDB_CHAR_PROP_WRITE_NO_RESPONSE | LEGATTDB_CHAR_PROP_NOTIFY,

LEGATTDB_PERM_WRITE_CMD | LEGATTDB_PERM_READABLE,5),0x00,0x00,0x00,0x00,0x00,

//<ClientConfiguration>

//<Notification>false</Notification>

//<Indication>false</Indication>

CHAR_DESCRIPTOR_UUID16_WRITABLE (HDLD_TTL_ENHANCEMENT_SERVICE_COMMAND_READ_FROM_BLE_CLIENT_CONFIGURATION,

UUID_DESCRIPTOR_CLIENT_CHARACTERISTIC_CONFIGURATION,

LEGATTDB_PERM_READABLE | LEGATTDB_PERM_WRITE_CMD | LEGATTDB_PERM_WRITE_REQ | LEGATTDB_PERM_RELIABLE_WRITE | LEGATTDB_PERM_AUTH_WRITABLE,2),

BIT16_TO_8 (CCC_NONE),

Best regards

Hannes Baumgart

0 Likes
1 Solution
Anonymous
Not applicable

Hi JT,

I used the Smart Designer with SDK 2.2.0 and 2.2.1 - both produce the same error.

But I fixed it now. Problem was the UUID of the last characteristic - and that is user keyed into the designer. All characteristics have ascending UUID, but for some reason, it isn't allow to be like this:

Previous characteristic's UUID:

45 4c db c3 17 7f 56 82 60 40 aa 4d 09 00 00 00

Old UUID which crashed the DB:

45 4c db c3 17 7f 56 82 60 40 aa 4d 0a 00 00 00

Fixed UUID with working DB:

45 4c db c3 17 7f 56 82 60 40 aa 4d 10 00 00 00


This seems to be a bug in GATT DB parsing.


Best regards

Hannes Baumgart

View solution in original post

0 Likes
3 Replies
Anonymous
Not applicable

Hello Hannes,

Was this the Smart Designer with SDK 2.2.2?

JT

0 Likes
Anonymous
Not applicable

Hi JT,

I used the Smart Designer with SDK 2.2.0 and 2.2.1 - both produce the same error.

But I fixed it now. Problem was the UUID of the last characteristic - and that is user keyed into the designer. All characteristics have ascending UUID, but for some reason, it isn't allow to be like this:

Previous characteristic's UUID:

45 4c db c3 17 7f 56 82 60 40 aa 4d 09 00 00 00

Old UUID which crashed the DB:

45 4c db c3 17 7f 56 82 60 40 aa 4d 0a 00 00 00

Fixed UUID with working DB:

45 4c db c3 17 7f 56 82 60 40 aa 4d 10 00 00 00


This seems to be a bug in GATT DB parsing.


Best regards

Hannes Baumgart

0 Likes
Anonymous
Not applicable

Hi Hannes,

Thanks for the feedback.

JT

0 Likes