https://github.com/lancaster-university/microbit-dal/blob/master/source/bluetooth/MicroBitDFUService.cpp#L105 printf(" ACTIVATING BOOTLOADER.\n"); This causes an out-of-memory panic if doing DFU with debug enabled. I added a SERIAL_DEBUG->printf each side of it - only the first gets sent before the panic.