Beware that this post is related to an SDK in maintenance mode
More Info: Consider nRF Connect SDK for new designs
This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

SDK14.2 ble_app_hids_keyboard directed slow enabled

Hi, Sir

 

I met a problem when I enabled ble_adv_directed_slow_enabled in nRF5_SDK_14.2.0_17b948a\examples\ble_peripheral\ble_app_hids_keyboard\pca10040\s132

The detailed steps are as following:

1: Modified the default configuration to

    init.config.ble_adv_whitelist_enabled      = true;

    init.config.ble_adv_directed_enabled       = true;

    init.config.ble_adv_directed_slow_enabled  = true;

    init.config.ble_adv_directed_slow_interval = APP_ADV_FAST_INTERVAL;

    init.config.ble_adv_directed_slow_timeout  = APP_ADV_FAST_TIMEOUT;

    init.config.ble_adv_fast_enabled           = true;

    init.config.ble_adv_fast_interval          = APP_ADV_FAST_INTERVAL;

    init.config.ble_adv_fast_timeout           = APP_ADV_FAST_TIMEOUT;

    init.config.ble_adv_slow_enabled           = false;

    init.config.ble_adv_slow_interval          = APP_ADV_SLOW_INTERVAL;

init.config.ble_adv_slow_timeout           = APP_ADV_SLOW_TIMEOUT;

2:Compile and burn the program to 52DK, and connect and bind to the IOS phone for the first time,everything is ok.

3:Turn off Bluetooth item on the iOS phone, next, turn on Bluetooth item on the iOS phone,the IOS phone can't connect back to 52DK(From off to on the Bluetooth item, it takes more than 1.2s).

 

If use the default configuration without modifying:

    init.config.ble_adv_whitelist_enabled      = true;

    init.config.ble_adv_directed_enabled       = true;

    init.config.ble_adv_directed_slow_enabled  = false;

    init.config.ble_adv_directed_slow_interval = 0;

    init.config.ble_adv_directed_slow_timeout  = 0;

    init.config.ble_adv_fast_enabled           = true;

    init.config.ble_adv_fast_interval          = APP_ADV_FAST_INTERVAL;

    init.config.ble_adv_fast_timeout           = APP_ADV_FAST_TIMEOUT;

    init.config.ble_adv_slow_enabled           = true;

    init.config.ble_adv_slow_interval          = APP_ADV_SLOW_INTERVAL;

init.config.ble_adv_slow_timeout           = APP_ADV_SLOW_TIMEOUT;

There is no problem.

I understand the whole adv process, firstly, directed adv,after about 1.2s, directed slow adv, then there is the problem;

 

I did more test, and found that after the problem appearing, wait directed slow adv timeout(set directed_slow_timeout= 30s),the 52 DK started fast whitelist adv, the IOS phone connected back to the 52DK.

 

So, it seems like the problem is related to directed slow adv, do you know why the IOS phone can not connect back the device when ble_adv_directed_slow_enabled = true?

Parents Reply Children
No Data
Related