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

Central S120 and Authenticate

Hello,

I want to implement a proximity central. At the moment, I do not get a bonded connection from central to proximity peripheral (For peripheral i use the proximity application for evalutaion board). As described in documentation a bonded state is needed. Is there a central example in which a bonded state is established? Do i also need the bond manager in central device?

At the moment, I proceed as follows:

  1. conn_mngr_start()
  2. After receive CONN_MNGR_CONN_COMPLETE_IND event --> start sd_ble_gap_authenticate()
  3. After receive BLE_GAP_EVT_SEC_PARAMS_REQUEST evnt --> start sd_ble_gap_sec_params_reply()
  4. After receive BLE_GAP_EVT_AUTH_STATUS --> start ble_db_discovery_start

The function start ble_db_discovery_start returns error code 0x3001.

Is this procedure correct? Or what is the best practice here?

  • My current application is based on the BLE Heart Rate Collector Example for nrf6310 board. For testing I have now deleted everything except for the connection manager. The connection manager is configured for auto connect on match and the policy is CONN_MNGR_CONNECT_POLICY_DEV_NAME. The name to search for is Nordic_Prox.

    For testing i just want to establish a connection to the proximity peripheral. The problem is that i get several connection (CONN_MNGR_CONN_COMPLETE_IND) and disconnection events (CONN_MNGR_DISCONNECT_IND). The disconnection event reason is always BLE_HCI_CONN_FAILED_TO_BE_ESTABLISHED (0x3E). After about 3 to 5 disconnect events the connection is established permanently and the advertising LED from proximity server stop flashing.

    To establish a connection, it can take up to 30 sec. Thats a little bit long for a BLE device. What reasons are there why I get so often the event BLE_HCI_CONN_FAILED_TO_BE_ESTABLISHED?

  • Could it be that the proximity application is already bonded to some other Central? If so, it will advertise with a whitelist for 30 s upon start, in which period it will be impossible for any other than the already bonded Central to connect.

    If this is the case, you can either delete bond information from the proximity device, or modify the code of it so that it doesn't use whitelisting. Deleting bond information can be done by holding button 1 when powering on the kit.

Related