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
  • Hi

    When sd_ble_gap_connect() returns NRF_ERROR_INVALID_PARAM that indicates that invalid parameter(s) has been supplied. Either invalid parameters in scan_params or conn_params have been supplied. A use of whitelist was requested but the whitelist has not been set (see sd_ble_gap_whitelist_set). Or the peer address was not present in the device identity list (see sd_ble_gap_device_identities_set).

    Best regards,

    Simon

Reply
  • Hi

    When sd_ble_gap_connect() returns NRF_ERROR_INVALID_PARAM that indicates that invalid parameter(s) has been supplied. Either invalid parameters in scan_params or conn_params have been supplied. A use of whitelist was requested but the whitelist has not been set (see sd_ble_gap_whitelist_set). Or the peer address was not present in the device identity list (see sd_ble_gap_device_identities_set).

    Best regards,

    Simon

Children
Related