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

BLE_HCI_CONN_FAILED_TO_BE_ESTABLISHED(0x3E) problem

I'm working with a BLE central device using S120 which is base on ble_app_multilink_central source code. My problem is that I cannot connect to the peripheral ble tag device(specifically the device is LBT-VRU02 of Logitec). After sending the CONNECT_REQ ,S120 sends "Empty PDU" to the peripheral(LBT-VRU02), but no packet comes from the peripheral as follows.

image description

And BLE_GAP_EVT_DISCONNECTED event with reason code 0x3E is notified immediately after BLE_GAP_EVT_CONNECTED event.

First I considered it was the peripheral side problem, but I noticed that the MCP or the LightBlue of iPhone app can connect to the this peripheral with no problem. So, I reconsider that it might be S120 side problem.

The Sniffer log of MCP is below: image description

I'm using a custom PCB for the my central and peripheral device. And I can connect the S110 peripheral device based on ble_app_multilink_ peripheral source code. I mean that my 120 central device can connect to the Nordic S110 peripheral device without problem.

I'm using the SDK v6.1 and S120 v1.0.0.

I have no idea what causes this problem. Can anyone help me?

  • Hi Bin,

    Could you check and find which chip is inside the LBT-VRU02 ? You can try to use S120 and use the compatibility option we made. This option should be used when connecting to an old 3rd party BLE chip that is not compatible with the default configuration we have on the S120. I suspect it could be the case with the LBT-VRU02.

    Please have a look at the release not of the S120 v2.0 in "New functionality" section. You need to use the sd_ble_opt_set() function to stat the compat mode. .

  • Hi Hung,

    Thanks for your quick relay and the advice.

    I immediately tried the compat option of the new functionaliy using S120 v2.0.

    But, unfortunately I did not find any remeditaion. The sniffer log I got at the time is below.

    Hi Hung,

    Thanks for your quick relay and the advice.

    I immediately tried the compat option of the new functionaliy using S120 v2.0.

    But, unfortunately I did not find any remeditaion. The sniffer log I got at the time is below.

    image description

    The BLE chip of the LBT-VRU02 is CSR100x or CSR101x.

    My code appended is as follows.

    uint32_t err_code;
    uint32_t opt_id = BLE_GAP_OPT_COMPAT_MODE;
    ble_opt_t ble_options;
    
    ble_stack_init();
    
    ble_options.gap_opt.compat_mode.mode_1_enable = 1;
    
    err_code = sd_ble_opt_set(opt_id, &ble_options);
    APP_ERROR_CHECK(err_code);
    

    Is there anything I can try?

    I wonder why MCP can connect to the LBT-VRU02.

    My best regards,

  • Hi Bin,

    Please put your reply in comment, not in answer. If you want to add images, please edit the question to add images in.

    I assume that you are testing with MCP on PC. It's pretty strange because the stack on the dongle for MCP is very similar to S120 stack.

    There could be a chance that the LBT-VRU02 was advertising with whitelist. Could you double check that you have erased the bond information and LBT-VRU02 running in open mode.

    You can also try to test using the same dongle that you use for MCP. You can flash S120 and the application on the dongle and see if it manage to connect to the peripheral. Please send the full sniffer trace, for both cases.

Related