I have already implemented DFU update in our one product. Which have fast USB interface and fast "lag-less" UART interface to nRF chip which is used as our bluetooth central.
DFU update works. Sometimes - very rarely - fails, nRF bootloader simply resets after command 03 (checksum).
So we mostly ignored the problem - once per say 50 updates update fails, user will simply repeat it. And end user will rarely (if ever) do software update for nRF chip.
Now we made same bluetooth central module for our older product that have interfacing chip for onewire bus.
It's slow. Not just onewire, but the rest too.
interfacing chip can perform bootloader entry and switch to onewire-UART bridge mode.
My software update program do works as expected - which is confirmed by connecting FTDI uarts to both RX and TX ports on nRF side.
Everything is sent properly and received properly - just slowly.
I don't mean slow UART speed (it's 57600 in both cases) but sending commands (most of the are command 08 - firmware data block) are sent one by one with quite large delays.
Delays may be random. Still - everything is sent properly which is confirmed.
The problem is that now nRF bootloader resets so often that you have to be lucky to succeed to update firmware. Say one per 5 attempts works.
What is a reason of these resets?