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

SDK 12.3.0 - connection parameter config got fatal error

Hi there,

Based on apple recommendation, I've chosen the next connection parameter set (and tested the parameter set works on other platform such as TI and Dialogue chip):

140 #define MIN_CONN_INTERVAL MSEC_TO_UNITS(1979, UNIT_1_25_MS) /**< Minimum acceptable connection interval (1.979 seconds). */

141 #define MAX_CONN_INTERVAL MSEC_TO_UNITS(1999, UNIT_1_25_MS) /**< Maximum acceptable connection interval (1.999 second). */

142 #define SLAVE_LATENCY 0 /**< Slave latency. */

143 #define CONN_SUP_TIMEOUT MSEC_TO_UNITS(2000, UNIT_10_MS) /**< Connection supervisory timeout (2 seconds). */

However the RTT log (ble_app_proximity) in this case says "APP ERROR:ERROR:Fatal" and fail to boot up.

When change it back to the Nodic default config, the chip boots OK.

Can you please give it a quick try and figure out what's going on behind the scene? Why it fails to boot up using a legitimate set of connection parameters?

Thanks for your attention, Carl

Parents
  • Hi,

    From the Bluetooth specification we have the following requirement:

    The connSupervisionTimeout shall be a multiple of 10 ms in the range of 100 ms to 32.0 s and it shall be larger than (1 + connSlaveLatency) * connInterval * 2.

    In your case, you have connSupervisionTimeout set to 2000ms, and connInterval_max set to 1999 ms. I.e. connSupervisionTimeout > connInterval_max *2 requirement is not fulfilled.

    When setting the connection parameters with sd_ble_gap_ppcp_set(), it will return NRF_ERROR_INVALID_PARAM. You will then enter the error-handler, and get the Fatal message

    You therefore need to set the CONN_SUP_TIMEOUT to 4000ms with the connection interval you have chosen. This is also in line with the Apple Bluetooth Design Guidelines, where you have

    2 seconds ≤ connSupervisionTimeout ≤ 6 seconds
    
  • My bad, yes it was set to connSupervisionTimeout = 6s for the other platforms. Changed to 6s and it work on nrf51 DK. Sorry for the fuss.

Reply Children
No Data
Related