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

Understanding conn_count member of ble_gap_conn_cfg_t?

I'm developing a multi-peripheral application on the nRF52832 that started from the SDK v13.0.0 experimental_ble_app_multiperipheral_pca10040_s132 example application (running SoftDevice S132 v4.0.2).

This application needs to support 5 concurrent connections with 5 different Smartphones (the worst case being that all 5 connected Smartphones do NOT support BT v4.2).

I'm trying to optimize throughput without sacrificing latency (latency is a priority over throughput). So, I'm thinking I should enable Connection Event Length Extension (using 2.5 ms event length), but I'm not sure what I should set the conn_count member of ble_gap_conn_cfg_t to be?

Should it be set to 5 to match the maximum number of supported peripheral links for my application? Please help me understand what conn_count configures.

/**
 * @brief BLE GAP connection configuration parameters, set with @ref sd_ble_cfg_set.
 *
 * @retval ::NRF_ERROR_CONN_COUNT     The connection count for the connection configurations is zero.
 * @retval ::NRF_ERROR_INVALID_PARAM  One or more of the following is true:
 *                                    - The sum of conn_count for all connection configurations combined exceeds UINT8_MAX.
 *                                    - The event length is smaller than @ref BLE_GAP_EVENT_LENGTH_MIN.
 */
typedef struct
{
  uint8_t  conn_count;     /**< The number of concurrent connections the application can create with this configuration.
                                The default and minimum value is @ref BLE_GAP_CONN_COUNT_DEFAULT. */
  uint16_t event_length;   /**< The time set aside for this connection on every connection interval in 1.25 ms units.
                                The default value is @ref BLE_GAP_EVENT_LENGTH_DEFAULT, the minimum value is @ref BLE_GAP_EVENT_LENGTH_MIN.
                                The event length and the connection interval are the primary parameters
                                for setting the throughput of a connection.
                                See the SoftDevice Specification for details on throughput. */
} ble_gap_conn_cfg_t;
Related