I received an Arduino MKR1500 around a month ago, I managed to connect it to an LTE network and everything was working perfectly. This week, I decided to work on my project again but when I plugged the board in, it was nowhere to be found in my COM ports. Here's what I tried:
I went into the "Device Manager" on Windows, checked the "View hidden devices" option and uninstalled all the previous drivers. I then tried plugging the MKR1500 back in but nothing happened.
I used different USB cables, different USB ports and even different computers, none of which worked. The board seems to no longer be recognizable.
I used the same USB cable and USB port as with the MKR1500, but with my other board, the MKR1000. My PC immediately recognized the MKR1000.
These tests lead me to believe that it's actually a problem with the MKR1500 board, could it be faulty? When I plug it in, the POWER LED and CHRG LED light up (the charge LED is blinking very fast) like usual. Is there something else I can try?
The tricky thing about the boards with native USB functionality like your MKR NB 1500 is that the USB code that creates the CDC serial port is running on the same microcontroller as your sketch. This means your sketch code can break the USB code, or stop it from running. When that happens, it no longer presents a port.
That makes it so you can't upload normally any more. However, the situation is really not so bad because there is an independent program called the bootloader in a separate section of memory from your sketch, and that program has its own USB CDC code. So even if the sketch is completely broken, you only need to activate the bootloader and you will get a port back and be able to upload.
Fortunately, there is an easy way to recover from this situation:
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 press causes the bootloader to run indefinitely (until the board is reset, powered off, or an upload is done), which means you don't need to get the timing of the reset just right.
Select the port of your board from the Tools > Port menu. The port number may be different when the bootloader is running so don't assume you already have the correct port selected.
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.
I just finished an efficient exchange with Arduino Support. The MKR1500 arrived in a beaten up box, but it still worked at first. I'm guessing I must have bricked the board somehow. They've sent me a replacement MKR1500 and it works much better. The on-board modem responds faster than the old one and I've even managed to update the U-blox firmware on it, which I was unable to do with the old one.
I will keep testing the old board to see if I can revive it, until then I've came to the conclusion that the board was just faulty.