Hi,
I want to add bonding information manually.
1.can I assume IRK key will be constant for multiple peripherals?
2.if IRK only key is available, can i add it to peer list using pm_peer_new?
Hi,
I want to add bonding information manually.
1.can I assume IRK key will be constant for multiple peripherals?
2.if IRK only key is available, can i add it to peer list using pm_peer_new?
Hi
Yes, it should be possible to share the IRK you have with other peripherals, but if you already know the IRK, you can also set the IRK instead of randomly generating it in order to let the peripherals connect and bond to the scanning device using a whitelist.
Best regards,
Simon
Hi
Yes, it should be possible to share the IRK you have with other peripherals, but if you already know the IRK, you can also set the IRK instead of randomly generating it in order to let the peripherals connect and bond to the scanning device using a whitelist.
Best regards,
Simon
How to white list IRK in Other peripherals which are not having any Bond information?
Please read the links in my previous reply, as well as the Usage chapter on Whitelists in the SDK Infocenter page. This post also has a great explanation on Whitelisting using IRKs.
Best regards,
Simon
I modified advertising Event handler case as below, it causing ERROR 7 NRF_ERROR_INVALID_PARAM] when i start advertising
ret_code_t ret = ble_advertising_start(&m_advertising, BLE_ADV_MODE_FAST);
bond_info is filled with bonding information.
case BLE_ADV_EVT_WHITELIST_REQUEST:
{
ble_gap_addr_t whitelist_addrs[BLE_GAP_WHITELIST_ADDR_MAX_COUNT];
ble_gap_irk_t whitelist_irks[BLE_GAP_WHITELIST_ADDR_MAX_COUNT];
uint32_t addr_cnt = BLE_GAP_WHITELIST_ADDR_MAX_COUNT;
uint32_t irk_cnt = BLE_GAP_WHITELIST_ADDR_MAX_COUNT;
err_code = pm_whitelist_get(whitelist_addrs, &addr_cnt,whitelist_irks, &irk_cnt);
APP_ERROR_CHECK(err_code);
memcpy(&(whitelist_irks[0].irk),&(bond_info.peer_ble_id.id_info.irk),16);
irk_cnt = 1;
addr_cnt = 0;
// Apply the whitelist.
err_code = ble_advertising_whitelist_reply(&m_advertising,whitelist_addrs,addr_cnt,whitelist_irks,irk_cnt);
APP_ERROR_CHECK(err_code);
}
break;