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 without whitelist

Hi, I get error NRF_ERROR_INVALID_PARAM or error 0x12 from sd_ble_gap_connect in central. I even changed peer_addr.type to 0 (BLE_GAP_ADDR_TYPE_PUBLIC). When scanning find Beacon, I call this function

static void gap_params_init(void)
{


uint32_t                err_code;
ble_gap_conn_params_t   gap_conn_params;		  
err_code = sd_ble_gap_scan_stop();  
err_code = bsp_indication_set(BSP_INDICATE_IDLE);
                    APP_ERROR_CHECK(err_code); 
memset(&gap_conn_params, 0, sizeof(gap_conn_params));	
gap_conn_params.min_conn_interval = 0x6;
gap_conn_params.max_conn_interval = 0x0C80;
 gap_conn_params.slave_latency     = 0;
  gap_conn_params.conn_sup_timeout  = MSEC_TO_UNITS(4000, UNIT_10_MS);		
err_code = sd_ble_gap_connect(&address,&m_scan_param,&gap_conn_params);  
APP_ERROR_CHECK(err_code);
}

in main function:

m_scan_param.active = 0;	
		m_scan_param.selective = 0;
		m_scan_param.p_whitelist = NULL;		
		m_scan_param.selective = 0;
		m_scan_param.interval = SCAN_INTERVAL;//0x2000;
		m_scan_param.window = SCAN_WINDOW;//0x200;		
		m_scan_param.timeout = 0;
		
    err_code = sd_ble_gap_scan_start(&m_scan_param);
    APP_ERROR_CHECK(err_code);		

My beacon is indirect connectable with interval MSEC_TO_UNITS(100, UNIT_0_625_MS) and with timeout = 30. There is softdevice S130 in central and S110 in Beacon.

Related