Is the XIAO bootloader fuse protected?

Hi, i have a bricked XIAO which im trying to fix by flashing the bootloader again.
While researching on google, i read that there is a fuse, which when set protects the bootloader from being overwritten. (BOOTPROT fuse if i recall the name correctly).

Is this fuse set in the XIAO? If not, bootloader is not protected and can cause the XIAO to be bricked.

Can you guys check whats the value?

@ansonhe97 @Baozhu @jiachenglu … pls help

@John_Doe How to unbrick a dead xiao using raspberry pi [ GUIDE ][openocd] Thank you for sharing.

Hi @Baozhu, are there any updates on this topic?

@Szaja I don’t quite understand what you mean. What else do I need to update?

@Baozhu As I see it, @John_Doe asked a question about potential cause of the bootloader problems, which was not answered by you or your colleagues. I know that there is a method to revive bricked board (also proposed by @John_Doe), but I would expect that you will try to find and solve the cause of the problem. You can’t just expect that all your customers will have a Raspberry Pi to unbrick the XIAO.

XIAO’s Bootloader does not have FUSE protection.You can re-burn with openOCD on any platform. @Szaja

Is the XIAO fragile, i.e. could it be damaged ? or is it allways a bootloader issue.
Could you plse recommend a programmer (other than raspberyy not really practical) and an aplication ? Thks.

I have used ST-LINK and OpenOCD to check the contents of the flash memory of three “NEW” XIAOs. The bootloader was written at addresses 0x0000 to 0x2000 and the Blink code was written from 0x2000. In addition, 0x804000 [2: 0] was 0x7. This means that the bootloader is not protected.
Maybe the Arduino IDE will start uploading binary code from 0x2000, so I don’t think the bootloader will be destroyed right away, but it’s safer to protect it if possible. You can protect the bootloader area by setting BOOTPROT [2: 0] to 0x2 with the OpenOCD command “at91samd bootloader 8192”.

1 Like

Here is a tutorial from the Adafruit on how to setup OpenOCD on the Raspberry Pi and program bootloader: https://learn.adafruit.com/programming-microcontrollers-using-openocd-on-raspberry-pi?view=all
By modifying the setup file (near the bottom of the page) it will be possible to only turn on the bootloader protection as @msfujino wrote.
I don’t quite understand why this line is commented out in the tutorial on how to unbrick the Xiao showed by @Baozhu above.

I checked the bootloader on some SAMD21 boards. Of course, the bootloader binary code was different. While Seeed’s XIAO bootloader isn’t protected, Adafuit’s Feather M0 is protected. I think it’s better to protect, but I don’t know why not. Does protection cause another problems?
I would like to hear the views of Seeed.