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

Pairing unsuccessful with phone

I designed a reduced size PCB that used an nRF52832 and will act as a BLE HID device.

With the original nRF52DK evaluation board I was able to use the example ble_app_hids_mouse SDK V15 and pair it with Android and iPhones.

But when I used the new PCB with ble_app_hids_mouse, It only worked 1 out of 15 or 20 tries. Otherwise I got the message 'Pairing Unsuccessful: Pairing takes too long..'. However this new PCB works with other non-hid examples such as ble_app_hrs. I did try another commercial unit such as the 'Red Bear Nano' and it has the same issue as mine.

It seems like a hardware issue at first. However I noticed is that even the Nordic nRF52DK eval board has the same issue with SDK V11 (pairing unsuccessful). The nRF52DK board works better with SDK V15 and ble_app_hids_mouse. 

My question is what is mainly required for in a pairing process? Is there a way I can modify any parameter to ease the condition for pairing, such as the number of peers, white list, etc.. to make it work? Since the PCB worked fine with other applications that don't require pairing.

Parents Reply
  • I do have these statements in PM_EVT_CONN_SEC_CONFIG_REQ, even though it looks like:

    conn_sec_config.allow_repairing = true;
    pm_conn_sec_config_reply(p_evt->conn_handle, &conn_sec_config);

    My PCB doesn't have button 2. So I used advertising_start(1) at reset. But pairing is still unsuccessful.

    Since I'm displaying serial debug messages, I was following up some variables and I noticed that when the pairing is successful, the value of m_whitelist_peer_cnt  to be 2 or 3. When the pairing is unsuccessful, m_whitelist_peer_cnt   is always 1. This value is set by the function pm_peer_id_list, called by whitelist_set in advertising start.

    I'm trying to trace further, but if you can give a suggestion that will help.

Children
Related