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

Use of whitelist

How to implement unpaired binding whitelist? I have tried, but the device that only sets the MAC address whitelist cannot be connected, so I must set the peer IRK. Is there a way to obtain the peer IRK, or to set the whitelist to only use the MAC address authentication? Thank you very much!

  • Hi,

    The IRK  is only exchanged during the pairing/bonding procedure. Unless you are making the devices in both ends, there is no other way to obtain the IRK. Mobile phones for instance typically always use a random resolvable address (privacy), so there you need the IRK (and pairing/bonding) in order to do whitelisting. If the devices does not use privacy, then you can simply whitelist the BLE address as this never changes in that case.

    • Hi, thanks for your reply

    I tried simply whitelist the BLE MAC addresses, but failed to connect to devices. The connection can be normal only after IRK is whitelisted. How can I make the whitelist not use IRK?

      

  • Which type device is your peer device, and does it use privacy? Is it a phone? If yes, you must use the IRK as the phones typically change address every 15 minutes. If the device does not use privacy, then you can whitelist a address. See for instance this thread.

  • I use NRF52 DK board,The MAC address of the NRF52 DK board is fixed,I added the MAC address of the NRF52 DK board to the server whitelist, NRF52 DK board can not connect to the server.Is there something not configured?

    Print the following:

    14:41:27.798
    Connecting to device
    14:41:27.818
    Connected to device E5:06:72:AF:CD:4E: interval: 7.5ms, timeout: 4000ms, latency: 0
    14:41:27.851
    Disconnected from device E5:06:72:AF:CD:4E, reason: BLE_HCI_CONN_FAILED_TO_BE_ESTABLISHED

  • Hi,

    So both peers are nRF52 DKs and you do not specifically enable resolvable random address / privacy? If so, IRK is not relevant.

    As you consistently get BLE_HCI_CONN_FAILED_TO_BE_ESTABLISHED after enabling whitelisting, that is consistent with whitelisting being used but that the the device is not in the whitelist.

    By the way, are  you using whitelisting in the peripheral or central, or both?

    A quite common mistake when manually adding whitelist for the first time is to get the endianness wrong, so you could either double-check that or change the byte order to see if that helps. If not, perhaps you can share the code you use to do whitelisting so I can check if it makes sense?

Related