Xiao bricked and not responding anymore

Connect the 5V from the Segger J-Link to the 5V of the Xiao and the VTref of the Segger J-Link to the 3V3 of the Xiao.

VTref is very important to ensure correct voltage of the signals.

This is the target reference voltage.
It is used to check if the target has power, to create the logic-level reference for the input comparators and to control the output logic levels to the target. It is normally fed from Vdd of the target board and must not have a series resistor.

In the picture on my previous post: red=5V, orange=3V3, black=GND, etc.

I’m having problems with my XIAO and My Wio Lite. I don’t think they are bricked but I can’t get a clear direction from anyone. There’s also a high barrier to entry and lack of beginner documentation as far as how to even use a programmer. I don’t know where people learn this shit.

Hi @Criticalpoint
Here are the beginner documents for Wio Lite W600, Wio Lite MG126 and Seeeduino XIAO.

Thank you for all your responses. I really like the your products and more importantly the support Seeed provides.

I understand that you have no way of knowing what level of experience any random forum user may have. Some people overestimate their own experience but I try to be realistic. There’s more that I don’t know than I do know.

Having said that I am familiar with the product pages and wiki’s.

The problem people are having is that across different platforms (at least windows/macos) the USB host controller seems to get confused as to what mode the device is in whereas uploading is concerned.

Whatever the real issue is the solution I seem to keep running into is using a programmer to upload.

I’m muddling my way through setting up the Jeff Probe (Blackmagic Probe Clone) using PlatformIO on windows 10. I was able to make a connection to the Wio MG126 last night but the CLI still hangs when uploading the program.

What I am hoping someone could help me out with is understanding what the “bootloader” and “firmware” are. Are they the same? Is it easier on these SAM chips for one to get corrupted? How is using SWD to upload the project/bootloader/firmware (again I don’t know the difference) better than using native USB? Is there any way to avoid issues with uploading.

Hi @Criticalpoint
BootLoader is a small program that runs before the operating system runs. Through this small program, you can initialize the hardware device, thereby bringing the system’s software and hardware environment to a proper state, so as to prepare for the final call to the operating system.
Firmware is generally stored in the electrically erasable read-only memory EEPROM or FLASH chip in the device and is generally a program that can be upgraded by the user through a specific refresh program. A bit similar to PC bios. For independently operable electronic products, firmware generally refers to its operating system.
Sometimes, there are maybe wrong when you upload code which will cause the bootloader to corrupted.
Because XIAO uses ARM® Cortex®-M0+ CPU, there are only two ways to debug the Interface of the ARM cortex, SW-DP or JTAG-DP.
I am not clear how to avoid issues with uploading.

Had similar situation. It was caused by a pointer overrun [ran off the edge of an array!]. That bricked it, I guess because it messed up the USB internals such that the XIAO couldn’t connect/communicate with my desktop PC [running Arduino IDE].

So, what I did was [and I tried this over and over around 5 times], I disconnected the the USB cable, then I did a Ctrl-U to get the compiler going, then I hurriedly reconnected USB to the XIAO. I tried changing the timing slightly each time, until finally I got it to upload!

My working theory was, based on the USB connect/disconnect musical tones that Windows issues to indicate USB connection status, It sounded like, after connecting the USB cable, a connection was happening, then moments later, it disconnected – probably because of the code crash. When I managed to get the timing such that the upload started BEFORE the code crash, it could happen, because having a good connection, the Arduino IDE was able to issue a reset, preventing the crash incident, so the upload could start!!

Don’t know if that’s true, or not, but by golly it worked!! Which is good, in my case, because the XIAO is sealed inside a selenite tower!!! Whew!!!

UPDATE: This also works [for me at least]: Ctrl-U, unplug USB and wait for Dee-Doo-Dum, plug back in!
Also, it helps to place a long delay – like 5 seconds – in the Setup() function.

void Setup()

[“indent preformatted text by 4 spaces” … NOT!]

Mine too got bricked it seems. It will not show up as a usb device even briefly. This was after a flash and successful using of the device. Green LED is on. Reset pins do nothing. I do not have a programmer, but nothing out of the ordinary was done. What can cause this?

Other than that (and the inconvenient and difficult to access reset pins) the board was something I was proud of and I think you guys did a great job.

If you have some more insight into this I’d love to hear from you.

Have you tried using a Xiao as programmer-debugger?

See The $5 programmer-debugger.

1 Like

Please try the above method as mentioned in a previous post

1 Like

Hi Lakshantha
Thank you very much I followed your post and it worked the first time.
I was already setting up my Raspberry when I came across your post its simple to follow and easy to implement you saved 2 of my XIAO’s .

1 Like

I’m using Win10x64 and have 3 XIAOS and 3 WIO Lite MG126s that are completely useless to me.

Yes I put these in the drawer in the fall because every SAMD21 based board I had eventually became completely unprogrammable. I want to like them but I hate them. I dug them out to see if there are any updates and I’m still wondering if I should toss them.

What’s the actual deal with accessing the XIAO in DFU mode or whatever it is so you can see the drive letter that everyone takes for granted? When I double tap the reset all I get is an incremented com port.

I’ve done all kinds of things including enabling test mode and disabling driver signing, I use a usbview utility to delete the drivers by vid/pid and then restart and then MAYBE i can program to the damn thing once.

So… I want to try circuitpython for the XIAO and none of these things create a drive letter.

I started with using the Arduino IDE then I learned Atmel Studio then I went to PlatformIO just trying to find any GDMF thing that could talk to these MF things.

Micropython started looking mighty tempting but I can’t ever see the drive letter. That’s when I found out that I probably needed to use a hardware programmer… which is an entirely different area of specialization with all kinds of options and choices and rabbit holes to trip on and get kicked around by forum members making assumptions about how far I’m willing to go to learn this skill.

I didn’t want to spring for the ST link because that would just be throwing money away so I got a Black Magic Probe and tried to compile and use OpenOCD along with the UART pins and GDB with the Probe and JFC does the BS ever end? There isn’t a straight up humane way to do any of this is there. The “how to use openocd and a debugger tutorials” also take way too much for granted and the documentation is ambiguous to someone not already initiated.

Also. search engines suck.

Don’t let my tone seem like I’m frustrated at you… dear fellow seeed enthusiast! This isn’t personal to you or to Seeed and I’m not looking for a scapegoat for my shortcomings. It’s just like every GDMF thing I try to do on a SAMD21 board turns into a MF study in anger management.

So if buy more XIAO’s and Wio’s how do I prevent this nightmare from recurring?


It is a little sad that this can happen and @Seeed is not solving the problem.

Can we return all the bricked Xiao’s so they can unbrick them??? Would be a very nice service…


I don’t see much support coming from @Seeed to solve the problem. What I see is a very loud eerie silence and nothing more than that… They should solve the problem and issue a program in where we could return our bricked Xiao’s and re-issue a new one, free of charge. That to me would sound like a manufacturer that would take itself seriously, how otherwise could we take them seriously again…

1 Like

Yup. Just had 2 of mine stop responding… I guess this should tell me to never buy a seeed product again…

For some reason it only responds when I set it to bootloader mode, but what am I supposed to do with that? Nowhere explains this.

This product is aimed to be for beginners to. I don’t have fancy programmers lying around nor do I want to have to program the chip. Hardly an arduino replacement experience.

In my humble opinion they have delivered an bad product. I was choosing between the Xiao and the Adafruit QT Py, which has the same form factor and is pin compatible. It seems I choose wrong. At least Adafruit is taking it’s role as a manufacturer seriously. My experience with @Seeed is the complete opposite… :frowning: :frowning: :frowning:

1 Like

I actually just ordered 2 QT Pys because this is so frustrating.

Luckily they are similar enough in price and pin compatible so I guess I can tell you if they work out

1 Like

@XiaoSeemedGood please do tell us, and good luck with them. :slight_smile:

So I actually found a solution to my problem, which was that the bootloader mode worked but I could not upload sketches. What I did was install Circuit python then uninstall it… It worked.

@XiaoSeemedGood can you refer me to the text to do this? I want to do so tomorrow evening…

Not sure it will work for you as my problem might be different than whats described but