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

Restarting DFU, and building on previous progress

I've written a DFU client in python.  I'm trying to add the ability to restart a failed DFU without having to resend the whole file.  I can see that the init packet is saved, because when I send the "create init object" packet [06 01] after a failed DFU attempt, the response contains the init packet's size and CRC.  I've seen a link [1] which describes the general process, but I'm not sure I'm performing it correctly.  After getting back the correct length and CRC in the init object create response, I send the execute object packet, expecting to get back a response indicating that there have already been some application objects created and stored.  However, I always get back a packet indicating no bytes and no crc [60 06 01 00 10 00 00 00 00 00 00 00 00 00 00].

How do I continue a DFU from where it was before it failed?

[1] - https://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.sdk5.v14.2.0%2Flib_dfu_transport_ble.html&cp=4_0_0_3_5_2_2_3_1&anchor=lib_dfu_transport_msc_data