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

observer DFU problem

Hello, I'm using this code(observer): github.com/.../nRF51-multi-role-conn-observer-advertiser SDK9.0.0

I try to add DFU function, now can enter dfu mode and iPhone6 can see advertising and connect it. But the connection is very slow and nRF Toolbox will stop at 1%.

If I skip btle_err_code = btle_scan_param_set(scan_param); The update will be fine. I tried init again or call btle_scan_param_set with different parameter, nothing work.

Do anyone know how to fix it?

Sincerely, Kirby

Parents
  • I got answer from my page~
    
    1. Use NVIC_SystemReset() instead bootloader_util_app_start().
    
    2. Modify bootloader 
    
    
    static void ble_stack_init(bool init_softdevice)
    {
        uint32_t         err_code;
        sd_mbr_command_t com = {SD_MBR_COMMAND_INIT_SD, };
        nrf_clock_lf_cfg_t clock_lf_cfg = NRF_CLOCK_LFCLKSRC;
        //if (init_softdevice) // Softdevice must be invoked after system reset
        //{
            err_code = sd_mbr_command(&com);
            APP_ERROR_CHECK(err_code);
        //}
    
Reply
  • I got answer from my page~
    
    1. Use NVIC_SystemReset() instead bootloader_util_app_start().
    
    2. Modify bootloader 
    
    
    static void ble_stack_init(bool init_softdevice)
    {
        uint32_t         err_code;
        sd_mbr_command_t com = {SD_MBR_COMMAND_INIT_SD, };
        nrf_clock_lf_cfg_t clock_lf_cfg = NRF_CLOCK_LFCLKSRC;
        //if (init_softdevice) // Softdevice must be invoked after system reset
        //{
            err_code = sd_mbr_command(&com);
            APP_ERROR_CHECK(err_code);
        //}
    
Children
Related