how to reduce BLE reconnection time after disconnect from the application(its taking 16 seconds to reconnect after disconnect)

Hi Team,

I am currently working with the nRF52833 BLE module, and I’ve noticed that the BLE device takes approximately 16 seconds to reconnect after a disconnection from the application. I am looking to reduce this reconnection time to under 10 seconds.

Could you please advise on the configuration changes or optimizations that would help achieve a faster reconnection? Specifically, I would like guidance on parameters for advertising intervals, connection settings, and any relevant best practices to improve reconnection speed.

Thank you for your assistance!

Parents
  • Hello,

    Normally when you are in a connection you have a connection parameter called supervisor timeout. This parameter control how long the link should be assumed valid, before considered lost. I assume in this case that maybe this parameter is set very high, and thereby the central or peripheral will not advertise or connect before it's timed out.

    If that is not the problem, then I suggest to look at the advertisement interval, maybe it's set very long.

    Kenneth

  • Hello Kenneth,

    Here is the configured parameter values

    #define APP_ADV_INTERVAL          300
    #define APP_ADV_DURATION        BLE_GAP_ADV_TIMEOUT_GENERAL_UNLIMITED
    #define MIN_CONN_INTERVAL       MSEC_TO_UNITS(15, UNIT_1_25_MS)
    #define MAX_CONN_INTERVAL      MSEC_TO_UNITS(40, UNIT_1_25_MS)
    #define SLAVE_LATENCY                0
    #define CONN_SUP_TIMEOUT       MSEC_TO_UNITS(4000, UNIT_10_MS)
    #define FIRST_CONN_PARAMS_UPDATE_DELAY 5000
    #define NEXT_CONN_PARAMS_UPDATE_DELAY 30000

    is that Supervision timeout i need to decrease?

Reply
  • Hello Kenneth,

    Here is the configured parameter values

    #define APP_ADV_INTERVAL          300
    #define APP_ADV_DURATION        BLE_GAP_ADV_TIMEOUT_GENERAL_UNLIMITED
    #define MIN_CONN_INTERVAL       MSEC_TO_UNITS(15, UNIT_1_25_MS)
    #define MAX_CONN_INTERVAL      MSEC_TO_UNITS(40, UNIT_1_25_MS)
    #define SLAVE_LATENCY                0
    #define CONN_SUP_TIMEOUT       MSEC_TO_UNITS(4000, UNIT_10_MS)
    #define FIRST_CONN_PARAMS_UPDATE_DELAY 5000
    #define NEXT_CONN_PARAMS_UPDATE_DELAY 30000

    is that Supervision timeout i need to decrease?

Children
Related