Create a function like this:
void conn_evt_len_ext_set(void) { ret_code_t err_code; ble_opt_t opt; memset(&opt, 0x00, sizeof(opt)); opt.common_opt.conn_evt_ext.enable = 1; err_code = sd_ble_opt_set(BLE_COMMON_OPT_CONN_EVT_EXT, &opt); APP_ERROR_CHECK(err_code); }
and call it after ble_stack_init(), snippet:
int main(void) { bool erase_bonds; // Initialize. uart_init(); log_init(); timers_init(); buttons_leds_init(&erase_bonds); power_management_init(); ble_stack_init(); conn_evt_len_ext_set(); gap_params_init();
the whole connection interval can be used to send packets if needed. But it’s fine to set it higher also. Connection intervals are ultimately set by the BLE central. For a connection with 1 peripheral link, I usually set NRF_SDH_BLE_GAP_EVENT_LENGTH to 320 (400ms connection interval).