Mesh device boot into DFU mode , How to switch back to normal mode?

Hi, Nordicsemi,

        We found one of Mesh device in our customer did not recievie and transmit Mesh package any more. try Nrf-connect application to scan and found the device shows a DFU icon, looks it stay in a wrong DFU mode. even power off and reboot it, device still boot into DFU mode. 

        We tried use nrfutil serial tool to communicate it, the tool runs well. but the device does not change anything..

        FYI, we had DFU other devices ( Not include this device, different application ID ) tow days ago. and we don't know when device happen this issue and why!

        Please help us to recover this device without flashing,  such as using nordic private  serial commands . etc. Flashing solution is big risk to our costomer project.

Thanks & Best Regards.

  • Hi,

    What SDK and version is the project based on, and which DFU solution?

    Normal behavior for most DFU bootloaders is that if no valid application is found it will stay in DFU state. That might be the issue you are experiencing. For instance because a single bank DFU was attempted that did not validate, or because the application has overwritten DFU settings in flash, or the application has overwritten itself in flash (leading to changed CRC checksum.)

    We do not have any proprietary serial commands added to the SDK, so what is documented publicly is what you have. Depending on what is the issue, ways to recover could be to perform a successful DFU, or worst case re-flash.

    If you have debug access to the device, then you can use nrfjprog to take a flash dump. That may give some clues about what has gone wrong. To make a full flash dump, use the command nrfjprog --readcode --readuicr dump.hex in order to store the flash dump in a file named dump.hex. By reading out flash from one device, we could get information needed for figuring out what has happened, and from that find a way to recover other devices that may show the same behaviour.

    Please note this is a public DevZone thread. If you need to share anything confidential, please create a new, private, ticket instead and refer to this one. In a private ticket you can share files in full confidentiality.

    Regards,
    Terje

Related