This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Hung up on advertising

I'm migrating an old (but working) app from the S110 5.2.1 (SDK 4.X) to the latest SDK9/S110 8.0. I've read the migration doc, and I'm following the examples carefully (specifically app_hids_keyboard, app_uart, and app_hrs). All my init functions are happy: timer, scheduler (with the new APPSH stuff), softdevice (using SOFTDEVICE_HANDLER_APPSH_INIT), everything comes up nicely. Scheduler works.

Then, I call ble_advertising_start(), I get a single BLE_ADV_EVT_FAST, then never another event of any kind. My phone can't see it advertising like it used to, and I never get any errors or anything--just quiet.

The major difference I noticed with my old code is that is has the sec_params_init() and responds to BLE_GAP_EVT_SEC_INFO_REQUEST, while most of the demos respond to that with a BLE_GAP_SEC_STATUS_PAIRING_NOT_SUPP. I never get that event in any case. I noticed that the device manager seems to make those similar security settings, but when I add it into the mix, I don't even get the first advertising event I was getting.

I'm really at a loss what to look for to debug this: If I get errors, I can see them; if I get events, I can see them. But I'm getting nothing.

Parents
  • If you use SoftDevice S110 8.0.0 with a revision 2 chip you should enable mutual exclusion between the radio and the application. Please see the Changes section in the S110 8.0.0 release notes for more information.

    uint32_t opt_id = BLE_COMMON_OPT_RADIO_CPU_MUTEX;
    ble_opt_t cpu_blocking_enabled;
    cpu_blocking_enabled.common_opt.radio_cpu_mutex.enable = 1;
    ble_stack_init();
    err_code = sd_ble_opt_set(opt_id, &cpu_blocking_enabled);
    
Reply
  • If you use SoftDevice S110 8.0.0 with a revision 2 chip you should enable mutual exclusion between the radio and the application. Please see the Changes section in the S110 8.0.0 release notes for more information.

    uint32_t opt_id = BLE_COMMON_OPT_RADIO_CPU_MUTEX;
    ble_opt_t cpu_blocking_enabled;
    cpu_blocking_enabled.common_opt.radio_cpu_mutex.enable = 1;
    ble_stack_init();
    err_code = sd_ble_opt_set(opt_id, &cpu_blocking_enabled);
    
Children
No Data
Related