SD+BL+APP dfu only update SD+APP successfully

SDK: 7.0.2

CHIP: nRF52840

I'm faced with strange dfu behavior.

The dfu SD+BL+APP (softdevice 6.1.1 -> 7.2.0) is working fine which was flashed by j-link.

However, Same package dfu which was flashed by I-DAP is always updated only SD+APP without BL. nothing error. 

I assumed to write different flash data between tools I-DAP and J-Link. But Very strange, these flash data were same. I read back flash data by nrf-connect programmer and compared WinMerge.

I think it make a sense that same flash data is same behavior in this level. but actually It isn't.

Could this happen because of the use of register that I did not think of?

Is there any possibility of only updating SD+APP without Bl ?

Parents
  • Hi,

    SoftDevice updates without a simultaneous bootloader update is only supported if the SoftDevice has the same major version. If you update to a new SoftDevice version, a bootloader update is also enforced. This is don so in order to avoid bricking devices in the filed. Specifically, if you upgrade to SoftDevice which is not compatible with the old bootloader, this would render the device non-upgradable in the future, and is why this is prevented. This check is done by the bootloader, so you will not see this when programming with a debugger. I suspect you will see issues if you try to do a update via DFU again afterwards though, as you have an incompatible bootloader and SoftDevice.

  • I have updated a package (bootloader only) with increased bootloader version.

    It looks fine. but still not working. I deleted application sector and forcedly go to bootloader. I check advertisement name. but still old version name.

    I double checked flash dump to read back flash by nrf-connect programmer. and compare old bootloader hex file. It isn't updated.

    What I start for handling this issue?

  • I am having problems understanding exactly what you have done. Can you explain in detail, step by step? Also indicate what you see as a result for each step (for instance, if the DFU master indicates that the bootloader update was successful or not, as it really should be updated if you did not see an error).

  • Sorry for my poor english skills.

    1. start dfu SD+BL+APP through ble.

    -> result: The dfu progress looks fine. (no error) but, only bootloader wasn't updated.

    -> prove: I changed advertisement name in new bootloader. and I erase application area in flash. so, the device run in bootloader. but the advertisement name is still old.  i double checked by comparing old bootloader and updated bootloader device flash data.

    2. after 1, start dfu BL only through ble.

    -> result: nothing change. no errors. but doesn't updated.

  • I see. The problem is that I am not able to understand how this happens from only a high level description of what you are doing. Please explain every step in full detail? How you build both bootloader variants, how you generate the DFU images, how you flash, and how you do the DFU? Please copy past all commands you make, and the resulting output. Include all logs, also from the DFU master.

Reply
  • I see. The problem is that I am not able to understand how this happens from only a high level description of what you are doing. Please explain every step in full detail? How you build both bootloader variants, how you generate the DFU images, how you flash, and how you do the DFU? Please copy past all commands you make, and the resulting output. Include all logs, also from the DFU master.

Children
  • How you build both bootloader variants

    The old one build 15.X.X SDK and I updated my library to 17.0.2 SDK and then, build it.

    how you generate the DFU images

    The generation of package is easy to me. I have deployed many times of application only packages. but, sd+bl+app full package is first time. That being said, It isn't hard to me.

    something special for this is that I customized init packet added some parameters (models, etc..).

    how you flash, and how you do the DFU?

    In factory for production, Our company have used I-DAP tool and S/W supplied by I-DAP syst.

    In development, I have used nrf-connect programmer. I have wrote and read flash dump using it.

    And, I have used i-phone to dfu.

    Include all logs, also from the DFU master.

    I'll reply it when I get back to work tomorrow.

  • Hi,

    _maibi said:
    something special for this is that I customized init packet added some parameters (models, etc..).

    That is very relevant. Which exact changes did you do?

    _maibi said:
    I'll reply it when I get back to work tomorrow.

    Please do. And again, include all details of all steps. Without it, I have no way of understanding what could be happening.

Related