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

BLE5182+SDK8.0-BLE_HCI_CONNECTION_TIMEOUT

Hello,i am find an interesting phenomenon recently.I have a Nordic 5182 device(role as peripheral) and bonded to an iOS device(role as master),when i put the iOS device near a laptop which contain a BT mouse, the 5182 will receive a disconnect event with reason code 0x08( BLE_HCI_CONNECTION_TIMEOUT), 6~8 times per hour. what made me confused is that the distance between 5182 and iOS is not out of BLE range,so, i use some connection parameters like delowing:

#define MIN_CONN_INTERVAL               MSEC_TO_UNITS(20, UNIT_1_25_MS) 
#define MAX_CONN_INTERVAL               MSEC_TO_UNITS(75, UNIT_1_25_MS)
#define SLAVE_LATENCY                       0
#define CONN_SUP_TIMEOUT                MSEC_TO_UNITS(4000, UNIT_10_MS)

i have some questions: 1,Did laptop with BT enabled have some impact with another BLE device? 2,if there are some issues with my 5182 device RF circuits, how can i test and verify it? Any comments and suggestion will be appreciated. eric

  • I found this issue on iPhone 6 plus which iOS version is 9.3.1, and, Softdevice version is S110 and SDK is 8.0.0. i don't have xcode log now but i will try to find some useful info from iOS side,if u need me to provide more info please let me know,thank u again!

  • hi run_ar,i just found this: devzone.nordicsemi.com/.../ it looks like we were run into the same trap,so, according to you suggestion, what should i do since i do not use 32kHz clk source but a 16mHz one? does it means that the NRF_CLOCK_LFCLKSRC_RC_250_PPM_500MS_CALIBRATION value i set in SOFTDEVICE_HANDLER_INIT is useless?

  • hi run_ar, what do you think if i modify the params from:

    #define MIN_CONN_INTERVAL               MSEC_TO_UNITS(20, UNIT_1_25_MS) 
    #define MAX_CONN_INTERVAL               MSEC_TO_UNITS(75, UNIT_1_25_MS)
    #define SLAVE_LATENCY                       0
    #define CONN_SUP_TIMEOUT                MSEC_TO_UNITS(4000, UNIT_10_MS)
    

    to

    #define MIN_CONN_INTERVAL               MSEC_TO_UNITS(40, UNIT_1_25_MS) 
    #define MAX_CONN_INTERVAL               MSEC_TO_UNITS(60, UNIT_1_25_MS)
    #define SLAVE_LATENCY                       1
    #define CONN_SUP_TIMEOUT                MSEC_TO_UNITS(6000, UNIT_10_MS)
    

    does this modification is useful to this issue before we found the root cause? thanks a lot!

  • Anyone can help me on this issue? i spent a lot of time but make no significant progress, i guess this is Nordic SDK's bug since i put another BLE device into same scenario and everything works well, as i look into the sniffer log, 5182 did NOT answer one of master's heartbeat packet and the connection time out occurs. The master should re-transmit the not acked packet in theory but why 5182 did NOT answer the packet ? the distance between master and slave is only around 5 feet.

  • Looking at your sniffer log I can see that there are is a lot of retransmitts (either interference or poor rf performance). But nothing that should cause a timeout. However the last PDU from the master is not acknowledged, so it should have been transmitted again. Unfortunately I don't know why the master didn't retransmitt this packet as it has done so correctly earlier in the connection. Note that you can create a mypage case and upload gerbers with schematic and layout if you want us to review your hw.
    Questions:

    1. You are using the rc. Is this exposed in any way, so you could be touching it or stress it mechanically?
Related