NRF_ERROR_SOFTDEVICE_NOT_ENABLED for nRF52832

Hi

I have a nRF52832 Device, and develop by nRF5 SDK 17.1

Now, I have a project base on BLE_Central \ ble_app_uart_c  , and also need to use Dfu OTA function 

so I refer ble_peripheral\ble_app_buttonless_dfu to add dfu config

and now I can do OTA but I found my device will be error after a period of power-on.

I want to know reason and how to fix it 

Thanks

Parents
  • Hello,

    Is the problem solved? 

    ''I found that when I called the advertising_start() function, I would make an error. If not, everything is fine.''

    Can you elaborate this details?

  • This is what I saw. My project base on ble_central / ble_app_uart.c. And add dfu refer ble_peripheral \ ble_app_buttonless_dfu.

    If don't call function advertising_start(). The code will run normally. and I alse want to know why.

    By the way, could you please tell me how to improve the speed to connect to the peripheral?? I found I need to use 4~5 sec

  • ''If don't call function advertising_start(). The code will run normally. and I alse want to know why.''

    In normal ble central operation, your device does not need to advertise as it's scanning for peripherals rather than being discovered.  I think thts why not calling function advertising_start() works to run the code normally. 

    When entering DFU mode, device switches to peripheral role for receiving firmware devices.

    ''By the way, could you please tell me how to improve the speed to connect to the peripheral??''

    You need to reduce the advertising interval to speed up the connection.

    #define APP_ADV_INTERVAL 100  // 100 * 0.625ms = 62.5ms

    The value 100 is used for optimizing faster communication. 

    You can look at this link Troubleshooting

Reply
  • ''If don't call function advertising_start(). The code will run normally. and I alse want to know why.''

    In normal ble central operation, your device does not need to advertise as it's scanning for peripherals rather than being discovered.  I think thts why not calling function advertising_start() works to run the code normally. 

    When entering DFU mode, device switches to peripheral role for receiving firmware devices.

    ''By the way, could you please tell me how to improve the speed to connect to the peripheral??''

    You need to reduce the advertising interval to speed up the connection.

    #define APP_ADV_INTERVAL 100  // 100 * 0.625ms = 62.5ms

    The value 100 is used for optimizing faster communication. 

    You can look at this link Troubleshooting

Children
Related