Hi,
I've designed a product based on nrf52840 soc as a central Bluetooth device. I want to pair and connect to a Bluetooth device (as a slave) that implements a whitelist.
when the slave is in the pairing mode, nrf52840 can successfully connect and pair with it in the lesc numeric comparison mode ( you can see the pairing process in the lesc_dynamic_pairing(clear).pcapng sniffer trace which I've attached). but after that, when the slave is in the connection mode, the slave device doesn't respond to the SCAN_REQ and CONNECT_IND request of the nrf52840 (you can see this problem in the lesc_dynamic_connection(clear).pcapng sniffer trace in the packet no.192 and no.199).
After submitting an engineering issue with the company which has produced the slave device, they said that this problem occurred when the address of the central(in our case nrf52840) can't be resolved.
now my question is, are anything is missed in the pairing process according to the sniffer trace which can cause this problem? I've settled up the random resolvable address with the below code snippet.
ble_gap_privacy_params_t privacy_params = {
.privacy_mode = BLE_GAP_PRIVACY_MODE_DEVICE_PRIVACY,
.private_addr_type = BLE_GAP_ADDR_TYPE_RANDOM_PRIVATE_RESOLVABLE,
.private_addr_cycle_s = BLE_GAP_DEFAULT_PRIVATE_ADDR_CYCLE_INTERVAL_S,
.p_device_irk = 0
};
APP_ERROR_CHECK(sd_ble_gap_privacy_set(&privacy_params));
I want to point out that the slave device works without a problem with the windows and android phones.