This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

irk saved but android 5.0 cannot reconnect to s110

Hi, we have two devices using android 5.0 have this issue.

  1. bonding to s110, irk_counter=1; s110 uses whitelist advertising. android 5.0 device can reconnect to s110.

  2. android 5.0 device delete bonding info, and rebonding to s110, irk_counter=2; s110 uses whitelist advertising. android 5.0 device cannot reconnect to s110.

  3. s110 uses advertising without whitelist, android 5.0 device can reconnect to s110.

iPhone5s and android 4.4 device can do it right. Anyone have similar issue like me? thanks.

S110 + SDKv6.1 + SDv7.1

======================================================================================

07/13:

And about ble_app_proximity example in SDK, we can only find it in SDK8.1.0 (in pack installer also), but our s110 is rev2, it seems that we cannot test this example. Or do you know where to get SDK6.1 version? Thanks.

update: iPhone5s also cannot reconnect to S110 using whitelist advertising after rebonding.

my whitelist parameter:

whitelist.addr_count = BLE_GAP_WHITELIST_ADDR_MAX_COUNT;
whitelist.irk_count  = BLE_GAP_WHITELIST_IRK_MAX_COUNT;
whitelist.pp_addrs   = p_whitelist_addr;
whitelist.pp_irks    = p_whitelist_irk;

err_code = dm_whitelist_create(&m_app_handle, &whitelist);
APP_ERROR_CHECK(err_code);

if ((whitelist.addr_count != 0) || (whitelist.irk_count != 0))
{
    adv_params.type        = BLE_GAP_ADV_TYPE_ADV_IND;
    adv_params.p_peer_addr = NULL;    // Undirected advertisement.
    adv_params.interval    = APP_ADV_INTERVAL;
    adv_params.timeout     = 0;
    adv_params.fp          = BLE_GAP_ADV_FP_FILTER_BOTH;
    adv_params.p_whitelist = &whitelist;
    advertising_init(BLE_GAP_ADV_FLAG_BR_EDR_NOT_SUPPORTED);    
}
  • I'm not sure if the same android device do rebonding, irk_counter should increase.

  • @Now: If you could provide a sniffer trace, it would be easier to find what could be wrong here.

  • @Now: On SDK v6.x we will create a new bond (treat it as a new central) when previously bonded device connect and request bonding again.

    Regarding irk_counter is increased, I need to have a sniffer trace to be able to know if the Nexus tablet changes the irk when delete bonding or keeps the old one but the nRF51 couldn't detect it.

    I will try to reproduce the issue here with my Nexus 7 to see if it worked.

  • @Now: I just checked here, my memory was wrong, on SDK v6.1 we update the old bond information when the central request bonding again. So you should only see irk_count = 1. If you still use the same device.

    I checked with my Nexus7 here and confirm that. I would need the sniffer trace from you to know what could be wrong here. Have you check the irk list to see if both of them are the same IRK ?

  • Hi Hung, Does your Nexus 7 run on Android L? We checked IRK value when irk_count = 2, and two irk values are the same. We'll try get sniffer log later, since we need time to get dongle.

1 2 3 4 5