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
Thank you. I am using experimental_lpn example, but i have error.00> <t: 0>, main.c, 521, ----- BLE Mesh LPN Demo -----
00> <t: 0>, app_error_weak.c, 119, Mesh error 4 at 0x00000000 (:0)
I found that its error from nrf_dfu_svci_vector_table_set(), because no bootloader was found. Do i need to download bootloader from Secure Bootloader example first? How can i do this from ses? When I try to download secure bootloader first, than experimental_lpn example, the second is not started.
My steps:
1. I follow this guide for start Secure Bootloader example
2. I run experimental_lpn example without erase, but in Debug mode application "running..." infinitely. When i press "break" i can see that application stopped at 00015F5A BF40 sev in dissasembly .
And one more question. Can I erase application, but not erase bl and sd using ses?
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");