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

Connect procedure and the disconnect reason 0x3E (BLE_HCI_CONN_FAILED_TO_BE_ESTABLISHED)

Hi

Over the last years working with Nordic I struggled from time to time over the disconnect reason 0x3E (BLE_HCI_CONN_FAILED_TO_BE_ESTABLISHED) on our devices with Central role support. I didn't get to deep into this as it occurred only rarely. In the last months the appearance of this behavior increased and we analyzed the topic a little more.

Our understanding is that the softdevice changes into a "connected, not proven" state after the connect request has been sent in response of a received advertising. On the API the CONNECTED event is triggered to allow the application to start using the connection. If the case occurs that the connect request that is sent on the advertising channel is not received by the peripheral (caused by other advertisings or disturbances) the peripheral will not change in the connected state. After the 6th PDU is not answered by the peripheral the softdevice terminates the not proven connection with reason BLE_HCI_CONN_FAILED_TO_BE_ESTABLISHED and sends a DISCONNECTED event over the API to the application with the corresponding reason. Is this understanding correct?

Is it possible for the application to detect the switch of the "Connected, not proven" state to the "Connected and proven" state (after the first answered PDU)?
This would allow us to wait for a proven connection before starting the communication procedure.

Any answers, additions and thoughts to this topic are welcome… :-)

Regards Adrian

Parents
  • You understanding is correct  The app gets notified just after the connection request packet is sent. 

    You are also correct that if the peer does not respond within a given time then we get a disconnected event with the BLE_HCI_CONN_FAILED_TO_BE_ESTABLISHED  reason.  This is according to the Spec . See Vol 6, Part B, Section 4.5.4

    Is it possible for the application to detect the switch of the "Connected, not proven" state to the "Connected and proven" state (after the first answered PDU)?

    No, this is not possible now, 

Reply
  • You understanding is correct  The app gets notified just after the connection request packet is sent. 

    You are also correct that if the peer does not respond within a given time then we get a disconnected event with the BLE_HCI_CONN_FAILED_TO_BE_ESTABLISHED  reason.  This is according to the Spec . See Vol 6, Part B, Section 4.5.4

    Is it possible for the application to detect the switch of the "Connected, not proven" state to the "Connected and proven" state (after the first answered PDU)?

    No, this is not possible now, 

Children
Related