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

DFU example

Hi,

I am trying to implement the DFU example from Mesh 3.1.0SDK and 15.2.0 SDK. I am following the process mentioned here.

I am using a MacOS for development.

I am able to execute steps 1 through 9 successfully but when I execute step 10, it says:

command - nrfutil dfu serial -pkg dfu_test.zip -p usbmodem0006829949971 -b 115200 -fc --mesh

Upgrading target on usbmodem0006829949971 with DFU package /Users/xxx/xxx/xxx/xxx/dfu_test.zip. Flow control is enabled.

Failed to upgrade target. Error is: Serial port could not be opened on usbmodem0006829949971. Reason: 

Possible causes:

- bootloader, SoftDevice or application on target does not match the requirements in the DFU package.

- baud rate or flow control is not the same as in the target bootloader.

- target is not in DFU mode. If using the SDK examples, press Button 4 and RESET and release both to enter DFU mode.


I am guessing that the possible reason would be the third one i.e target isn't in the DFU mode. I am not completely sure.

What might be the reason for this dfu failure?

Thank you.

Parents Reply Children
  • Hello,

    I see that your application is running, I can see it from the log. However, if you add --verbose to your DFU command:
    nrfutil-mesh --verbose dfu serial -pkg dfu_test.zip -p COM7 -b 115200 --mesh

    (obviously with your own COM port), you will see that it says:

    Your application log says:

    0> <t: 1>, main.c, 206, ----- Bluetooth Mesh DFU Example -----
    0> <t: 8818>, serial_handler_prov.c, 267, Generating encryption keypair...
    0> <t: 13706>, main.c, 224, Initialization complete!
    0> <t: 18474>, main.c, 245, Enabling serial interface...
    0> <t: 18477>, mesh_app_utils.c, 65, Device UUID (raw): 464B4596FD473049936CE0FE34C4D5FD
    0> <t: 18480>, mesh_app_utils.c, 70, Device UUID : 96454B46-47FD-4930-936C-E0FE34C4D5FD
    0> <t: 18488>, nrf_mesh_dfu.c, 528, RADIO TX! SLOT 0, count 255, interval: periodic, handle: FFFE
    0> <t: 18493>, nrf_mesh_dfu.c, 561, SERIAL TX!
    0> <t: 18500>, main.c, 253, DFU example started!

    (RTT Log read using J-Link RTT Viewer).

    The "--verbose output from nrfutil --verbose dfu serial -pkg dfu_test.zip -p COM7 -b 115200 --mesh" suggests that there are some issues with getting a response from the serial connection. Did you change the UART pins in the application?

    Best regards,

    Edvin

  • Hi,

    Did you change the UART pins in the application?

    Yes, I noticed that I changed the UART pin configuration. Now, I set them back to the original configuration and tried to push the DFU but the result is the same as what you saw.

  • What HW are you trying this on? Are you using a DK? Can you show me the log output and the terminal output when you try to push the DFU? Did you also reprogram the DK after changing the UART pins?

  • What HW are you trying this on? Are you using a DK?

    Yes, I am using an nRF52 development kit.

    Can you show me the log output and the terminal output when you try to push the DFU?

    Did you also reprogram the DK after changing the UART pins?

    Yes, I repeated the whole process again with a new Mesh SDK

  • Ok. I don't know why it is not working. Can you describe how you changed the Serial interface when you changed the UART pins? Did you turn off flow control?

    Can you send the updated hex files with the correct UART settings? The previous version wasn't working, I can confirm that. But there has to be something that you have either changed, or done correctly when following the guide. Was there some part of the guide that you were uncertain of, where you may have done something incorrectly?

    I am really trying to understand why it isn't working, but all I can see from the information you describe is that the board isn't responding, so at this point, anything could be the source of the issue.

    BR,

    Edvin

Related