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

Dfu Mesh

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?

Parents
  • 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");

Reply
  • 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");

Children
No Data
Related