This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Device Manager strange behaviour

Hey Guys,

i asked this question already few days ago, but today i produced a log-file. The procedure was:

Setup: SDKv6.0, SoftDevice v7.0.0, nrf51822

  • empty board
  • bond first device (nexus 7)
  • bond second device (nexus 7)
  • reconnect second device

but when i reconnect the second device, i get device_id == 0 although the second device was bonded with device_id == 1. And in the m_peer_device-list there are 2 identical mac addresses. Does anybody has an idea what could be wrong?

Thanks for your help in advance

  • I had the same problem just like you, when I connect nexus7 and iphone4s,it seems that nrf51822 will cover old whitelist in flash.

    I want to know how can I get log like you?

  • Hi guys,

    Thanks to @Krishna Shingala who found a solution for this bug.

    Solution:

    Change the code in device_manager_peripheral.c starting at 2538 from:

    if (p_ble_evt->evt.gap_evt.params.auth_status.central_kex.irk == 1) { 
        m_peer_table[index].irk =  p_ble_evt->evt.gap_evt.params.auth_status.central_keys.irk; 
        m_peer_table[index].id_bitmap &= (~IRK_ENTRY); 
    }
    
    if (p_ble_evt->evt.gap_evt.params.auth_status.central_kex.address == 1)
    {
        m_peer_table[index].peer_addr = p_ble_evt->evt.gap_evt.params.auth_status.central_keys.id_info;
        m_peer_table[index].id_bitmap &= (~ADDR_ENTRY);
    }
    

    to

    if (p_ble_evt->evt.gap_evt.params.auth_status.central_kex.irk == 1) {
        m_peer_table[device_index].irk = p_ble_evt->evt.gap_evt.params.auth_status.central_keys.irk;
        m_peer_table[device_index].id_bitmap &= (~IRK_ENTRY);
    }
    
    if (p_ble_evt->evt.gap_evt.params.auth_status.central_kex.address == 1)
    {
    	m_peer_table[device_index].peer_addr = p_ble_evt->evt.gap_evt.params.auth_status.central_keys.id_info;
    	m_peer_table[device_index].id_bitmap &= (~ADDR_ENTRY);
    }
    

    this sould fix the problem stated above.

    Thanks again to Krishna! Cheers

  • hi gootoomoon, see the new answer with the solution

Related