Is my WiFi1010 Dead?

I've had a WiFi1010 with a 1.8" TFT Display(ST7735) running as a clock on my desk for last couple months. Today I thought I would add the ability to display weather info from Open Weather Map. This is where my issue began.

I had been working on it for a bit and had done several successful uploads already when on the last upload it freaked, threw a bunch of errors and failed to upload. Wish I would of payed more attention to what those errors were because I never saw them again.

After that first failed upload when I try to upload to it, it just freezes here:

Linking everything together...
"C:\\Users\\HuhDO\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-g++" "-LC:\\Users\\HuhDO\\AppData\\Local\\Temp\\arduino_build_433009" -Os -Wl,--gc-sections -save-temps "-TC:\\Users\\HuhDO\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\samd\\1.8.12\\variants\\mkrwifi1010/linker_scripts/gcc/flash_with_bootloader.ld" "-Wl,-Map,C:\\Users\\HuhDO\\AppData\\Local\\Temp\\arduino_build_433009/Blink.ino.map" --specs=nano.specs --specs=nosys.specs -mcpu=cortex-m0plus -mthumb -Wl,--cref -Wl,--check-sections -Wl,--gc-sections -Wl,--unresolved-symbols=report-all -Wl,--warn-common -Wl,--warn-section-align -o "C:\\Users\\HuhDO\\AppData\\Local\\Temp\\arduino_build_433009/Blink.ino.elf" "C:\\Users\\HuhDO\\AppData\\Local\\Temp\\arduino_build_433009\\sketch\\Blink.ino.cpp.o" "C:\\Users\\HuhDO\\AppData\\Local\\Temp\\arduino_build_433009\\core\\variant.cpp.o" -Wl,--start-group "-LC:\\Users\\HuhDO\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\CMSIS\\4.5.0/CMSIS/Lib/GCC/" -larm_cortexM0l_math -lm "C:\\Users\\HuhDO\\AppData\\Local\\Temp\\arduino_build_433009/..\\arduino_cache_734026\\core\\core_arduino_samd_mkrwifi1010_53d0a7517f33b85c1aedd7227a541402.a" -Wl,--end-group
"C:\\Users\\HuhDO\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-objcopy" -O binary "C:\\Users\\HuhDO\\AppData\\Local\\Temp\\arduino_build_433009/Blink.ino.elf" "C:\\Users\\HuhDO\\AppData\\Local\\Temp\\arduino_build_433009/Blink.ino.bin"
"C:\\Users\\HuhDO\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-objcopy" -O ihex -R .eeprom "C:\\Users\\HuhDO\\AppData\\Local\\Temp\\arduino_build_433009/Blink.ino.elf" "C:\\Users\\HuhDO\\AppData\\Local\\Temp\\arduino_build_433009/Blink.ino.hex"
"C:\\Users\\HuhDO\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-size" -A "C:\\Users\\HuhDO\\AppData\\Local\\Temp\\arduino_build_433009/Blink.ino.elf"
Sketch uses 12200 bytes (4%) of program storage space. Maximum is 262144 bytes.
Global variables use 2996 bytes (9%) of dynamic memory, leaving 29772 bytes for local variables. Maximum is 32768 bytes.
Forcing reset using 1200bps open/close on port COM4

Which is where it is finished compiling and starts looking for a port to upload to. In the IDE in the tools tab the port shows as "COM4(Arduino MKR WiFi1010)" (as does device manager) which is correct for this board. clicking the compile button is the only way to unfreeze it.

If I restart the IDE after a failed upload it will take a much longer time to open back up. If I restart windows 10 with the board plugged in it will tell me that the USB device failed and it will not show up in Device Manager until I unplug it and plug it back in.

New Info:
While writing this post I left the IDE frozen still trying to upload, after about 20 minutes it did finish with this error:

Forcing reset using 1200bps open/close on port COM4
PORTS {COM1, COM4, } / {COM1, COM4, } => {}
PORTS {COM1, COM4, } / {COM1, COM4, } => {}
PORTS {COM1, COM4, } / {COM1, COM4, } => {}
PORTS {COM1, COM4, } / {COM1, COM4, } => {}
PORTS {COM1, COM4, } / {COM1, COM4, } => {}
PORTS {COM1, COM4, } / {COM1, COM4, } => {}
PORTS {COM1, COM4, } / {COM1, COM4, } => {}
PORTS {COM1, COM4, } / {COM1, COM4, } => {}
PORTS {COM1, COM4, } / {COM1, COM4, } => {}
PORTS {COM1, COM4, } / {COM1, COM4, } => {}
PORTS {COM1, COM4, } / {COM1, COM4, } => {}
PORTS {COM1, COM4, } / {COM1, COM4, } => {}
PORTS {COM1, COM4, } / {COM1, COM4, } => {}
PORTS {COM1, COM4, } / {COM1, COM4, } => {}
PORTS {COM1, COM4, } / {COM1, COM4, } => {}
PORTS {COM1, COM4, } / {COM1, COM4, } => {}
PORTS {COM1, COM4, } / {COM1, COM4, } => {}
PORTS {COM1, COM4, } / {COM1, COM4, } => {}
PORTS {COM1, COM4, } / {COM1, COM4, } => {}
PORTS {COM1, COM4, } / {COM1, COM4, } => {}
Uploading using selected port: COM4
C:\Users\HuhDO\AppData\Local\Arduino15\packages\arduino\tools\bossac\1.7.0-arduino3/bossac.exe -i -d --port=COM4 -U true -i -e -w -v C:\Users\HuhDO\AppData\Local\Temp\arduino_build_433009/Blink.ino.bin -R 
An error occurred while uploading the sketch

So no indication what the error is.
One more thing, I have a second Wifi1010 that still uploads perfectly.

EDIT: I just remembered that these boards switch to COM6 during the upload(confirmed using second WiFi1010) which this board is not doing now.

The way uploads work is:

  1. The Arduino IDE (or the upload tool used by the Arduino IDE) sends a signal for the microcontroller to reset.
  2. The microcontroller resets.
  3. The bootloader runs and waits (normally only for a short time) for an upload to start.
  4. The upload tool sends the program to the microcontroller, where the bootloader writes it to flash memory.

On the boards with native USB (like the one you're using), the way the IDE signals the microcontroller to reset is by opening a serial connection at 1200 baud. There is some special code running on the microcontroller in the background of your sketch that does the reset when it detects that 1200 baud connection.

In some cases, your sketch code might cause that reset code to be missing or not working correctly, which will mean the bootloader never runs and the upload fails with the error you're seeing.

The fix is to manually reset the board.

Try this:

  1. Press and release the reset button on your board quickly twice.
    You should now see the LED on the board pulsing, which means the bootloader is running.
    The double reset causes the bootloader to run until the board is reset normally, powered off, or an upload is done.
  2. Select the port of your board from the Tools > Port menu.
    The port will be different when the bootloader is running so don't assume you already have the correct port selected.
  3. Start an upload in the Arduino IDE.

The upload should now finish successfully.

After this, you should be able to go back to doing normal uploads without needing to press the reset button. If you still need to do the reset trick to do uploads after this, the problem may be caused by your code. You can verify this by uploading a simple sketch like File > Examples > 01.Basics > BareMinimum.

That worked!
Thank You

You're welcome. I'm glad your MKR WiFi 1010 is back to a usable state.