Hi, i want to use dfu for application with mesh. But i want to update via ble in direct connection with phone, not via mesh protocol. Should i use example from mesh sdk or from ble sdk?
Hi, i want to use dfu for application with mesh. But i want to update via ble in direct connection with phone, not via mesh protocol. Should i use example from mesh sdk or from ble sdk?
Hi.
I suggest you take a look at this previous thread.
https://devzone.nordicsemi.com/f/nordic-q-a/49402/mesh-add-ble-dfu-service/
Best regards,
Joakim
I fixed my last issue by flashing Secure Bootloader example first, than I flash experimental_lpn example using nrfConnect on android.
But I have new problem. When I add this dfu functionality in my project, my application is not responding. It seems that this issue appears in function nrf_mesh_dfu_cmd_send() in nrf_mesh_dfu_init(). It looks like infinite loop. I dont see any error messages or asserts.
My log output:
<t: 0>, main.c, 300, ----- BLE Mesh Light Switch Server Demo-----
<info> app: Setting vector table to bootloader: 0x000F8000
<info> app: Setting vector table to main app: 0x00026000
<info> app: ble_dfu_buttonless_backend_init after
<info> app: sd_ble_gatts_service_add after
<info> app: sd_ble_uuid_vs_add after
<info> app: ble_dfu_buttonless_char_add after
<t: 9514>, main_mesh.c, 111, BEFORE mesh_stack_init
<t: 9520>, mesh_stack.c, 72, BEFORE nrf_mesh_init
<t: 9990>, nrf_mesh_dfu.c, 644, AFTER dfu_cmd_handler_set
<t: 9997>, nrf_mesh_dfu.c, 656, AFTER rand_prng_seed
<t: 10009>, nrf_mesh_dfu.c, 675, BEFORE nrf_mesh_dfu_cmd_send
My code in nrf_mesh_dfu_init():
__LOG(LOG_SRC_APP, LOG_LEVEL_INFO, "BEFORE nrf_mesh_dfu_cmd_send")
error_code = nrf_mesh_dfu_cmd_send(&init_cmd);
__LOG(LOG_SRC_APP, LOG_LEVEL_INFO, "AFTER nrf_mesh_dfu_cmd_send");
I fixed my last issue by flashing Secure Bootloader example first, than I flash experimental_lpn example using nrfConnect on android.
But I have new problem. When I add this dfu functionality in my project, my application is not responding. It seems that this issue appears in function nrf_mesh_dfu_cmd_send() in nrf_mesh_dfu_init(). It looks like infinite loop. I dont see any error messages or asserts.
My log output:
<t: 0>, main.c, 300, ----- BLE Mesh Light Switch Server Demo-----
<info> app: Setting vector table to bootloader: 0x000F8000
<info> app: Setting vector table to main app: 0x00026000
<info> app: ble_dfu_buttonless_backend_init after
<info> app: sd_ble_gatts_service_add after
<info> app: sd_ble_uuid_vs_add after
<info> app: ble_dfu_buttonless_char_add after
<t: 9514>, main_mesh.c, 111, BEFORE mesh_stack_init
<t: 9520>, mesh_stack.c, 72, BEFORE nrf_mesh_init
<t: 9990>, nrf_mesh_dfu.c, 644, AFTER dfu_cmd_handler_set
<t: 9997>, nrf_mesh_dfu.c, 656, AFTER rand_prng_seed
<t: 10009>, nrf_mesh_dfu.c, 675, BEFORE nrf_mesh_dfu_cmd_send
My code in nrf_mesh_dfu_init():
__LOG(LOG_SRC_APP, LOG_LEVEL_INFO, "BEFORE nrf_mesh_dfu_cmd_send")
error_code = nrf_mesh_dfu_cmd_send(&init_cmd);
__LOG(LOG_SRC_APP, LOG_LEVEL_INFO, "AFTER nrf_mesh_dfu_cmd_send");