Your version of bootloader hangs for me now after DFU update (possibly happily jumping to missing application?)
Oh, looks like it is not the bootloader itself. Looks like original Desay bootloader does not handle DFU package with softdevice and bootloader combined correctly. Funny thing but it does overwrite itself correctly with new bootloader but for some reason it does not update softdevice 3.0 or 3.1 correctly. It almost does, all data between addresses 0 - 0x1f000 is almost fine except one part between 0xE000-0xE7FF where after DFU update is just 0xFF. Which is pretty strange because it does handle softdevice update 2.0.0->2.0.1 where same locations are updated correctly. I tried it many times with different packages and the location is always cleared like that despite the package having something else inside. So after such DFU update it does not boot but it is enough to load softdevice hex again via SWD debugger and this area gets filled with correct data (which is the only difference) and then it boots into DFUTarg correctly. Also just softdevice or just bootloader update does not work, both combinations crash as they are not compatible. So my only idea is to make my own intermediate bootloader from SDK11 Nordic sources (so it works with same soft device), flash just that and then try again with combined package to go to SDK12/softdevice3.x.
Espruino is a JavaScript interpreter for low-power Microcontrollers. This site is both a support community for Espruino and a place to share what you are working on.
Oh, looks like it is not the bootloader itself. Looks like original Desay bootloader does not handle DFU package with softdevice and bootloader combined correctly. Funny thing but it does overwrite itself correctly with new bootloader but for some reason it does not update softdevice 3.0 or 3.1 correctly. It almost does, all data between addresses 0 - 0x1f000 is almost fine except one part between 0xE000-0xE7FF where after DFU update is just 0xFF. Which is pretty strange because it does handle softdevice update 2.0.0->2.0.1 where same locations are updated correctly. I tried it many times with different packages and the location is always cleared like that despite the package having something else inside. So after such DFU update it does not boot but it is enough to load softdevice hex again via SWD debugger and this area gets filled with correct data (which is the only difference) and then it boots into DFUTarg correctly. Also just softdevice or just bootloader update does not work, both combinations crash as they are not compatible. So my only idea is to make my own intermediate bootloader from SDK11 Nordic sources (so it works with same soft device), flash just that and then try again with combined package to go to SDK12/softdevice3.x.