Repeated use of CyBle_GapRemoveOldestDeviceFromBondedList breaks bonding

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

cross mob
Anonymous
Not applicable

On boot up we are calling CyBle_GapRemoveOldestDeviceFromBondedList if the number of current bonded devices = 4, to allow rolling use of the last three bonded devices.

   

We do this curing CYBLE_EVT_STACK_ON.  We get the number of bonded devices by calling CyBle_GapGetBondedDevicesList, and then remove the oldest if equal to four.

   

This works most of the time.  We have experienced a number of times in testing when some number of different devices (more than 4) have been bonded.  When in this state, we get CYBLE_EVT_GAP_DEVICE_DISCONNECTED with an event reason of 0x16.  Once this occurs, we can only connect to the last three bonded devices.  Our CYBL11573 based device stays in this state -- only connecting with last 3 bonded, 0x16 error if attempting to connect/bond to a 4th until we reflash the firmware.

   

CYBL11573 running BLE stack V3.10.

0 Likes
1 Solution
Anonymous
Not applicable

Hi,

   

After calling the CyBle_GapRemoveOldestDeviceFromBondedList, can you please make sure that CyBle_StoreBondingData API, so that the bonding list is updated in the flash?

   

Regards,

   

- Madhu Sudhan

View solution in original post

0 Likes
2 Replies