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

Device Manager Fails

Hi

Maybe you can help me.

I'm trying to get Device Manager to work, but I'm having several problems. Although the Device Manager is being correctly initialized and the connection context is being correctly saved into flash memory, I'm getting these two errors:

  1. When bonding, I get this error [BLE_GAP_EVT_SEC_PARAMS_REQUEST]:

Security parameter reply request failed, reason 8

But the bond is correct.

  1. When trying to re-connect after a power off, I get this other error [BLE_GAP_EVT_SEC_INFO_REQUEST]

[CI 0] [DI 0xFF] Security information response failed, reason 8

And now, the bond is not correct and I can't use encryption

These are the only errors I get? Do you have any idea or suggestion?

I'm starting to think I'm not using correctly the bond procedure. In my application, I have a characteristic where encryption is necessary to write into in ( BLE_GAP_CONN_SEC_MODE_SET_ENC_NO_MITM ). To write into it, I bond for the first time and I can write into the characteristic.

After a power off, I reconnect in Master Control, and I try to write into this characteristic directly, because the device was bonded previously. But this time, I get the INSUFFICIENT AUTHENTHICATION error. So I must to delete the Bond Info in Master control and Bond again to access to this characteristic.

What I'm doing wrong? Is there a working Device Manager example?

Thanks in advance

Elena

Parents
  • Hi again

    I haven't found the device manager example I asked in my previous message, but comparing to the Bond Manager example (github.com/.../require-encryption-5.1.0) I have found in this thread, I have why Device Manager was failing.

    The problem looks to be that in my application, I was processing the events BLE_GATTS_EVT_SYS_ATTR_MISSING, BLE_GAP_EVT_AUTH_STATUS and BLE_GAP_EVT_SEC_INFO_REQUEST both inside my own application, and by device_manager_peripheral.c. I'm not an expert in BLE, but looks these events must only being processed by device_manager_peripheral.c.

    After removing the instances to these events inside my own on_ble_evt function, Device Manager has started to work correctly.

    Cheers,

    Elena

    UPDATE: Although the bonding process is working with Master Control Panel, I'm experimenting several problems when working with iOS. The version I'm working is iOS 8. I would like to try with iOS 7 to be sure if the problem is the iOS version or my application.

Reply
  • Hi again

    I haven't found the device manager example I asked in my previous message, but comparing to the Bond Manager example (github.com/.../require-encryption-5.1.0) I have found in this thread, I have why Device Manager was failing.

    The problem looks to be that in my application, I was processing the events BLE_GATTS_EVT_SYS_ATTR_MISSING, BLE_GAP_EVT_AUTH_STATUS and BLE_GAP_EVT_SEC_INFO_REQUEST both inside my own application, and by device_manager_peripheral.c. I'm not an expert in BLE, but looks these events must only being processed by device_manager_peripheral.c.

    After removing the instances to these events inside my own on_ble_evt function, Device Manager has started to work correctly.

    Cheers,

    Elena

    UPDATE: Although the bonding process is working with Master Control Panel, I'm experimenting several problems when working with iOS. The version I'm working is iOS 8. I would like to try with iOS 7 to be sure if the problem is the iOS version or my application.

Children
No Data
Related