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

Issue while calling sd_ble_gap_device_name_set in the latest S130

I am trying to use the latest (s130_nrf51822_0.9.0-1.alpha) S130 and experiencing an issue which was not seen in previous version (s130_nrf51822_0.5.0-1.alpha), this is the code I have:

static void gap_params_init(void)
{
    uint32_t                err_code;
    ble_gap_conn_params_t   gap_conn_params;
    ble_gap_conn_sec_mode_t sec_mode;

    BLE_GAP_CONN_SEC_MODE_SET_OPEN(&sec_mode);

    err_code = sd_ble_gap_device_name_set(&sec_mode,
                                          (const uint8_t *)DEVICE_NAME,
                                          strlen(DEVICE_NAME));

The variable err_code contains a value 0x3001 and I cannot find how to map that number to some NRF error?

This is how DEVICE_NAME is declared:

static char DEVICE_NAME[] = "11111";

So, again, this code worked fine in S130 0.5.0-1.alpha but stopped working in 0.9.0-1.alpha. What should I change to get it working?

Parents
  • I beleive you didn't enabled ble after SOFTDEVICE_HANDLER_INIT.

    #define APP_IS_SRVC_CHANGED_CHARACT_PRESENT 0
    
    ble_enable_params_t ble_enable_param;
     memset(&ble_enable_params, 0, sizeof(ble_enable_params));
    ble_enable_params.gatts_enable_params.service_changed = APP_IS_SRVC_CHANGED_CHARACT_PRESENT;
    err_code = sd_ble_enable(&ble_enable_params);
    APP_ERROR_CHECK(err_code);
    
Reply
  • I beleive you didn't enabled ble after SOFTDEVICE_HANDLER_INIT.

    #define APP_IS_SRVC_CHANGED_CHARACT_PRESENT 0
    
    ble_enable_params_t ble_enable_param;
     memset(&ble_enable_params, 0, sizeof(ble_enable_params));
    ble_enable_params.gatts_enable_params.service_changed = APP_IS_SRVC_CHANGED_CHARACT_PRESENT;
    err_code = sd_ble_enable(&ble_enable_params);
    APP_ERROR_CHECK(err_code);
    
Children
Related