Lost USB port (not the cable or Chinese)


I have been programming an Arduino Nano 33 BLE Sense that I received yesterday. I have uploaded the program several times and the cable is correct. Today, after uploading several times, the computer suddenly stopped recognizing the Nano. I have unplugged and re-plugged it several times and have tried swapping the cable with another good cable that I was using to program another Nano and tried different USB jacks on the computer...it refuses to recognize the port, both on the Arduino IDE and Device Manager.

I bought the board at full price from Digi-Key, so I doubt if it's a Chinese knock-off. When I plug it in and unplug it I get the standard sounds and the board lights come on, but nothing connects. Also the program that was previously uploaded doesn't run anymore. After a minute or so I get this error popup:

"The last USB device you connected to this computer malfunctioned and Windows does not recognize it."

My computer is a Lenovo Thinkpad P52 running on Windows 10. My Arduino software is up to date.

Is there a way to fix this, or do I need to return the board for a refund? This is very annoying.


The tricky thing about the boards with native USB functionality like your board 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.

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.

That was it! You saved the day, Pert. Thanks for your help.


You're welcome. I'm glad to hear it's working now. Enjoy!