Xiao bricked and not responding anymore

Thanks, just ordered an J-Link programmer and waiting for arrival.

Just received my J-Link Programmer and downloaded SEGGER JFlash

But when trying Target->connect I get following error:

  • InitTarget() end
  • RESET (pin 15) high, but should be low. Please check target hardware.

Target->Programming gives following error:

Auto programming target (8192 bytes, 1 range) …

  • Connecting …
  • ERROR: Failed to connect.
    Could not establish a connection to target.
  • ERROR: Could not auto program target, not connected

I connected from JTAG
pin 7 -> XIAO SWDIO
pin 9 -> XIAO SWDCLK
pin 15 -> XIAO RESET
pin 4 -> XIAO GND

Plugged XIAO into USB for power

I checked continuity on reset of the XIAO board pins, they aren’t closed. Why does the JFLASH think, the reset pin is high?

XIAO has a dedicated SWD interface, which is not attached to a nearby pin.

hi, any update on this? Were you able to flash xiao using j-link?

I bricked my xiao as well, same behaviour as yours :frowning:

hi, i was able to unbrick a dead xiao… the steps are mentioned here:

1 Like

See how to use a Segger Edu with the Xiao at https://embeddedcomputing.weebly.com/seeeduino-xiao-m0.html

1 Like

where is the 3.3v connected to? The segger j-link only provides 5v.
https://www.segger.com/products/debug-probes/j-link/technology/interface-description/

I connected from JTAG
pin 7 -> XIAO SWDIO (underneath the board)
pin 9 -> XIAO SWDCLK (underneath the board)
pin 15 -> XIAO RESET (underneath the board)
pin 4 -> XIAO GND
pin 1 -> XIAO +5v

My XIAO looks different from the bottom. It has SWDIO, SWDCLCK, RESET, GND on the left and VIN, GND on the right.

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.

Like:
void Setup()
{
#if MODE_DEVELOPMENT
delay(5000);
#endif
}

[“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?

2 Likes