I recently started playing with Arduino Nano 33 BLE, and for some reason I cannot any more upload any new sketch on the device. When I connect the Arduino and open the serial monitor I do see the output of the last sketch I managed to upload, but when I try uploading a new, it says "Uploading..." for a very long time and then displays:
No device found on cu.usbmodem14201
An error occurred while uploading the sketch
I am using Mac OS X on my MacBook Pro laptop, but I have tried with a different computer running Windows and the problem remains the same.
Could have I done something bad with the last uploaded sketch so that the device is now stuck? Is there any way to reset the device?
The Arduino IDE (or the upload tool used by the Arduino IDE) sends a signal for the microcontroller to reset.
The microcontroller resets.
The bootloader runs and waits (normally only for a short time) for an upload to start.
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 in the background on the microcontroller that does the reset when it detects that 1200 baud connection.
In some cases, the reset code that's supposed to be on the microcontroller could 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:
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 will 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 something in your sketch's code. You can verify this by uploading a simple sketch like File > Examples > 01.Basics > BareMinimum.
@pert -- I have to add my thanks also. I spent 2 hours last night troubleshooting this exact issue. I even swapped in a brand-new Nano 33 BLE, assuming that I had fried the first one. Your post was the missing piece of information that solved the problem. Thanks!
I am having the exact same problem with my brand new Nano BLE 33 using Arduino 1.8.12. I tried everything above including the BareMinimum app. Nothing uploads. If I go to tools/get-board-info, I see my board responding. I tried the double-reset into bootloader mode, and it still fails. All I get is something like this:
PORTS {COM1, COM3, COM4, } / {COM1, COM3, COM4, } => {}
PORTS {COM1, COM3, COM4, } / {COM1, COM3, COM4, } => {}
PORTS {COM1, COM3, COM4, } / {COM1, COM3, COM4, } => {}
PORTS {COM1, COM3, COM4, } / {COM1, COM3, COM4, } => {}
Uploading using selected port: COM4
C:\Users\robin\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\robin\AppData\Local\Temp\arduino_build_836750/BatteryMonitor.ino.bin -R
Set binary mode
No device found on COM4
An error occurred while uploading the sketch
Send auto-baud
Set binary mode
Any more ideas?
Forgot: I am using Windows 10 and have used Arduino for years. My other Arduino projects build and load, just not this Nano BLE 33.