'Unable to upgrade the firmware of a Micro Bit

I have a Micro bit v1. Days before, I was unable to search the Bluetooth signal of it, so I followed the instruction on microbit.org to upgrade its firmware. But after I copied the firmware file into it, a FAIL.TXT file showed up in the disk MAINTENANCE. What's more, since then on, every time I connect the Micro bit to my computer, it enters this MAINTENANCE disk, no matter I press the Reset or not during the connection. I've tried different versions of firmwares of the Micro bit v1, but none of them succeed.

The details about this Micro bit are shown as below.

# DAPLink Firmware - see https://mbed.com/daplink
Unique ID: 00000000066aff565357825187123855a5a5a5a597969908
HIC ID: 97969908
Auto Reset: 0
Automation allowed: 1
Overflow detection: 0
Daplink Mode: Bootloader
Bootloader Version: 0254
Git SHA: db711ec68a861b9d9b0d7a7a82071796ec117687
Local Mods: 1
USB Interfaces: MSD
Bootloader CRC: 0x0697f838
Interface CRC: 0x4915d882
Remount count: 1
URL: https://mbed.com/daplink

The contents of FAIL.TXT are shown as below.

error: In application programming aborted due to an out of bounds address.
type: interface

So, I am wondering that, what possibly has occured this upgrade failure ? And how can I fix my Micro bit ?



Solution 1:[1]

I am 7 months late, I know, and I made an account just ot answer here. I see some strange things I haven't seen before in your details;

  • You're missing the part of the UID that specifies the version of the Micro:Bit (4 first numbers are supposed to be 9900 for 1.3 and 9901 for 1.5, not sure if it's different if you have 1.0).
  • Interface version is missing from the details.
  • Local mods being set to 1 means you have unsaved local changes to the Micro:Bit.
  • Remount count being set to 1 means it has failed to flash the previous hex you tried to flash to it. Not a good sign, but it means you only tried (or it only counted) once to reflash the firmware.

Try flashing an erase hex to the Micro:Bit, then an up-to-date firmware hex, and lastly the OOB hex. This worked for me when I experienced a similar issue.

I hope any of this can help you, or any others that stumble upon this post in the future.

Please reach out if you still need help!

Solution 2:[2]

This micro:bit has wrong HIC ID (97969908 instead of 97969901). It doesn't have original bootloader that's why you are not able to flash original interface firmware. According to DAPLink 97969908 is STM32F103XB bootloader. I think there are 2 possible solutions: 1st is to flash original bootloader and original interface firmware then, 2nd is to make some with DAPLink source files to compile a new interface firmware that would work with 97969908 bootloader. See here https://github.com/ARMmbed/DAPLink/discussions/956

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1
Solution 2 Prof. Fortran