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

sd_ble_gap_connect: NRF_ERROR_INVALID_PARAM

Hello,

I'm trying to use `sd_ble_gap_connect` to connect to a peer I discovered using `nrf_ble_scan`.

nrf_ble_scan_init_t scan_init{};
scan_init.p_scan_param = &m_scan_param;
scan_init.conn_cfg_tag = 1;

nrf_ble_scan_init(&m_scan, &scan_init, scan_handler);

nrf_ble_scan_start(&m_scan);
Once I find a suitable peer, I do the following to connect to it:
nrf_ble_scan_stop();

res = sd_ble_gap_connect(&buf[last_seen].peer_addr,
&m_scan.scan_params,
&m_scan.conn_params,
m_scan.conn_cfg_tag);

if (res != NRF_SUCCESS) {
printf("sd_ble_gap_connect failed %s", nrf_strerror_get(res));
}
However, I always get 0x7 (invalid param) as my result. I checked my config and I have 5 central links configured. I tried passing NULL as the scan_params and conn_params to scan_init to use the default ones, but that did not help either.
Is there anything obvious that I'm missing?
Parents
  • Thank you, these values should be okay, although rather low in my opinion, what happens if you set the scan interval and window to the same value? That should make sure that the device scans 100% of the time, as the central will scan for SCAN_WINDOW time, every SCAN_INTERVAL interval.

    Next, what connection parameters are you using (min/max_conn_interval, slave_latency, conn_sup_timeout)? The valid parameters here should be stated in BLE_GAP_CP_LIMITS. 

    Best regards,

    Simon

Reply
  • Thank you, these values should be okay, although rather low in my opinion, what happens if you set the scan interval and window to the same value? That should make sure that the device scans 100% of the time, as the central will scan for SCAN_WINDOW time, every SCAN_INTERVAL interval.

    Next, what connection parameters are you using (min/max_conn_interval, slave_latency, conn_sup_timeout)? The valid parameters here should be stated in BLE_GAP_CP_LIMITS. 

    Best regards,

    Simon

Children
Related