Hi, The current bootloader that comes with XIAO is unreliable. It randomly stops working when trying to upload from arduino IDE. I love XIAO for its very small size and cost. Its a great product, except for this bootloader issue.
Anybodys knows if we can replace the current bootloader with a different stable one, like the bootloader used in arduino (optiboot) or adafruit M0 or something like that? A robust and reliable bootloader will make XIAO an awesome product.
Hi @John_Doe
You can have a try CircuitPython Bootloader for Seeeduino XIAO .
More info refers to here.
Hi, Iâve found another solution with someoneâs help actually. I had an issue that I couldnât upload anything at some point and port has changed from COM6 to COM7 and it looked like in bootloader mode.
The fix was to manually change COM7 to COM6 in Device Manager (right-click on the port, go to Properties->Port Settings->Advanced and then force change port). After that I reconnected XIAO and uploaded blank script with start and loop only. And it worked! Now I can do everything fine as previously.
@John_Doe any luck finding a new bootloader for the Xiao?
It seems that more and more people are running into the same problem: A bricked XiaoâŚ
Unfortunately it seems that @Seeed does nothing whatsoever to solve the problem. In my humble opinion they have an obligation to do so, as we paid for a working product, not a brickâŚ
If you have a spare ESP32 board, you could flash a VCON firmware on it which turns ESP32 into a remotely controlled programmer. Wire ESP32 to the XIAOâs SWD pins, and reflash XIAO - you could reflash any bootloader on it, or Arduino-compiled sketches.
If youâre uploading a bootloader, make sure it is in .hex format.
Wiring instructions are at https://vcon.io/docs/#seeeduino-xiao
ESP32 flashing instructions are at https://vcon.io/docs/#generic-esp32
If you keep ESP32 wired to XIAO, you could reflash your XIAO remotely at any time.
Disclaimer - I do represent VCON product. It is commercial, with freebie quota for first 10 devices, so reflashing XIAOs (and not just XIAOs) could be done absolutely for free.
I am still trying to bottom this issue out, because Iâm not sure its directly the Xiao. I have 6 pcâs onsite all running Arduino IDE V2.1.0. 2 program the Xiao without problems (no need to double-reset) the other 4 program just once then cannot see the usb port properly (USB not recognised from windows)
barnbrook, You should check the forum guides, You really Donât need to post the same thing in three different topics. We get it, Your having some issues?
Best to post your issue and wait until a reply. Lots of smart folks on here willing to help.
GL:-)
PJ
Hi all,
I just got caught completely off guard when I suddenly couldnât upload Arduino sketches anymore to my XIAO nrf52840 BLE Sense. I was happily testing code with the non-mbed enabled core, but then had to test something with the mbed-enabled core. So I switched the board selection and uploaded the code, which seemed successful. But after the upload, the board suddenly had another COM port (18 instead of 20), and no matter what I try, I canât upload anything anymore.
I was trying @przemek method but with no luck. I can enter the bootloader by clicking reset twice, but I donât actually know what this means. Unfortunately, Iâm quite lost here. I highly appreciate any help. Do I need to flash another/new bootloader? Or does this smell like something different? Can this happen randomly, or did I do something that caused this behavior?
Please let me know if you guys have some idea whatâs going on. Many thanks for your help!
Hi There,
Yes that is correct, its in bootloader mode , youll see a drive appear as well,disconnect and reboot your computer and try again.
It should upload normally, do wait and donât be impatient.
HTH
GL
PJ.
Hi PJ,
Thanks for the answer .
This is the weird part: my XIAO appears normally as a COM port, but doesnât accept uploads anymore. The output of the upload in the Arduino IDE first says âwaiting for upload portâŚâ and after about a minute it fails, saying âSerial port could not be opened on COM24. Reason: Cannot configure port, something went wrong. Original message: OSError(22, âThe semaphore timeout period has expired.â, None, 121)â. With putty I can neither open the COM port (with IDE closed). Right now Iâm just trying to upload a simple blink sketch, which works normally on another XIAO of the same type.
This behavior seems a bit strange to me. Do you know of anything else I could try to narrow down the issue?
Best,
One trick I have used successfully when this has happened, Was to Guess at the connection.
Hit Upload with nothing connected (xiao) get an idea of the timing from upload to âNo Port specifiedâ nag.
Now hit upload again but plug in Xiao at the right time and BINGO. it goes.
Takes a few tries but I usually get it after the second or third time.
HTH
GL
PJ
ps. you may want to treat it like itâs bricked and try the factory .hex and drop it on with Nrf Desktop programmer.
Now another of my XIAOs just bricked out! Yesterday I uploaded the example blink sketch that I wanted to use to unbrick my first XIAO, and it worked, and today it doesnât pop up as a COM port anymore⌠Does this happen often with these XIAOs? I mean to me everything looks fine, I uploaded a couple of times through the Arduino IDE without problems, and then it suddenly decides to not work anymore? I donât get it.
I wanted to try your suggestion with the Nrf Desktop, but the app says it doesnât recognize it as a Nordic device. Would you know if I need to configure the app to recognize the XIAO properly?
cheers,
Uff, I managed to unbrick both. Fortunately I found a blogpost, describing a very easy way:
Doubleclick the reset button to enter bootloader mode. In this mode, the XIAO will have a different COM port assigned than when connecting normally. So in the Arduino IDE, select the right board and this new COM port, and upload, and voilĂ ! Everything works again .
This might be a very obvious solution, but I wanted to share it nevertheless, maybe it can help somebody. The solution actually came from somebody that was flashing a CircuitPython bootloader and then wanted to go back to the Arduino bootloader, and it works the same way.
Now I still donât know how they bricked in the first place, maybe something I figure out another time.