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

DFU of softdevice or softdevice+bootloader makes iOS app crash

sdonly.zipsoftdevice.zipCustom board with a nRF51422, SD 310 rev 2.0.0, nRF Toolbox rev 2.4, iOS 8.4

When trying to use the DFU app to update my softdevice and/or the combined package with softdevice+bootloader the application crashes/quits without errormessage, warnings or anything.

I can update the application or the bootloader successfully, but as soon as the SD is involved I get nowhere in a hurry.

Any good ideas as to what goes wrong?

The zip file is generated from s310_nrf51422_2.0.0_softdevice.hex and my own bootloader.hex, by peeling of lines as described in the howto, running hex2bin, combining them with copy /b and thus obtaining the crc using crc.exe. Finally my shot at a .dat is zipped together with the original .hex files.

  • My mistake with the wrong ID. I looked at the bottom of the S310 documentation developer.nordicsemi.com/.../a00052.html, where the ID's given are for the S110, not the S310. The softdevice part of my agony is gone when I use the zip you provided (or generate it myself with ID=0x5d.

    I still have no success updating the bootloader or SD+bootloader. Error message is: "Error on startDFU, Message: Data Size Exceeds" My device is a 51422_xxAA which has 256K Flash , and the bootloader is a custom built version of the dual bank ble project.

  • Hi Peterh,

    I am afraid that there may be not enough space for softdevice+bootloader update. The softdevice, MBR and the bootloader is already occupied 112+4+16 = 132kB. You have 124kB left in the swap area. And this is not enough to store both new softdevice and bootloader at the same time (112+16= 128kB).

    It's one of the issues we are facing and we will try to find a solution to fix it.

  • What if I want to update the bootloader only. Can that be done, or do I have to bundle the operation with the softdevice update (and therefore wait for your solution)?

    Problem is that I need to make own bootloader in order to keep application data in flash across firmware updates, and that it will take me at least a couple of hours pr device to access them by jtag. OTA would be so much nicer ;-)

  • Yes, you can update the bootloader separately. However, if it's a major change in the softdevice, the old bootloader might not be able to run with the new softdevice (API changes for example). Then there is no other option but to bundle new bootloader and new softdevice together.

    So, if it's change with application, bootloader, and small change with softdevice (for example from v2.0 to v2.1) then it would be fine. But if it's a major change of softdevice such as from S310 to S110 or from S310 v2.0 to v3.0 you may have to access the chip via debugger, or you would need external storage (or switch to nRF52 chip which has 512kB Flash).

  • Ok. Thanks for the answer. We'll update to S310 v3.0, build a bootloader to match and never touch them again. Debugger is not an option once our product leaves the factory..

Related