Arduino Nano 33 IoT only Upload in Bootloader

I am having issues with uploading sketches and using the serial monitor on my Arduino Nano 33 IoT. When I reset the board by double-clicking the reset button, I am able to upload a sketch and the serial monitor connects successfully. However, after uploading a sketch, the COM port changes. When I select the new COM port, I am unable to upload new sketches (error: No device found on COMX, exit status 1) and the serial monitor is not connected (Not connected. Select a board and a port to connect automatically). Despite this, the correct board and port are detected and selected under Tools > Board and Port .

Welcome to the forum.

That is the expected behavior. The Nano 33 IoT uses native USB and has two different USB endpoint configurations. One for boot-loader mode and one for normal mode. Windows recognizes that and assigns a different COM port when the USB endpoint changes.

Does this happend when you use a simple blink sketch or only with your own. Because the Arduino uses native USB (the code runs on the same processor as your sketch) you can interfere with the code. This should not happen in most cases when you use the standard libraries. Do you do anything sophisticated e.g. modifying interrupt priorities, changing I/O pin assignments ... ?

Thank you for letting me know about the different endpoint configurations. I didn't know that and the problem also exists with the basic blink example too.
Also, the reason I chose the Arduino Nano 33 IoT is Arduino IoT Cloud. There I have the same problem when I try to add the Arduino as a new device. In most cases it stays stuck at the first step "We were not able to configure your device. Executing command: exit status 1", rarely it works on the first and second step, but every time on the third step the same error message appears, as in the Arduino IDE: "error: No device found on COMX, exit status 1", even though the Arduino was recognized in the first step as a Arduino Nano 33 IoT.

This is the log from the Debug Console of the Arduino Create Agent, in case it helps. (The blink example was on the Arduino when I tried to add it as a new device)

{
  "Version": "1.2.7"
}

{
  "Commands": [
    "list",
    "open <portName> <baud> [bufferAlgorithm: ({default}, timed, timedraw)]",
    "(send, sendnobuf, sendraw) <portName> <cmd>",
    "close <portName>",
    "restart",
    "exit",
    "killupload",
    "downloadtool <tool> <toolVersion: {latest}> <pack: {arduino}> <behaviour: {keep}>",
    "log",
    "memorystats",
    "gc",
    "hostname",
    "version"
  ]
}

{
  "Hostname": "DESKTOP-0UM7F7D"
}

{
  "OS": "windows"
}

list

Network Ports:
[]

Serial Ports:
[
  {
    "Name": "COM10",
    "SerialNumber": "0BB82E825154384153202020FF102125",
    "IsOpen": false,
    "VendorID": "0x2341",
    "ProductID": "0x8057"
  }
]

{
  "Error": "We could not find the serial port COM10 that you were trying to close."
}

{
  "DownloadStatus": "Pending",
  "Msg": "The tool is already present on the system"
}

{
  "DownloadStatus": "Success",
  "Msg": "Map Updated"
}

{
  "DownloadStatus": "Pending",
  "Msg": "The tool is already present on the system"
}

{
  "DownloadStatus": "Success",
  "Msg": "Map Updated"
}

{
  "DownloadStatus": "Pending",
  "Msg": "The tool is already present on the system"
}

{
  "DownloadStatus": "Success",
  "Msg": "Map Updated"
}

{
  "DownloadStatus": "Pending",
  "Msg": "The tool is already present on the system"
}

{
  "DownloadStatus": "Success",
  "Msg": "Map Updated"
}

downloadtool windows-drivers latest arduino keep

downloadtool bossac 1.7.0 arduino keep

downloadtool fwupdater latest arduino keep

downloadtool rp2040tools latest arduino keep

{
  "DownloadStatus": "Pending",
  "Msg": "The tool is already present on the system"
}

{
  "DownloadStatus": "Success",
  "Msg": "Map Updated"
}

{
  "DownloadStatus": "Pending",
  "Msg": "The tool is already present on the system"
}

{
  "DownloadStatus": "Success",
  "Msg": "Map Updated"
}

{
  "DownloadStatus": "Pending",
  "Msg": "The tool is already present on the system"
}

{
  "DownloadStatus": "Success",
  "Msg": "Map Updated"
}

{
  "DownloadStatus": "Pending",
  "Msg": "The tool is already present on the system"
}

{
  "DownloadStatus": "Success",
  "Msg": "Map Updated"
}

{
  "Cmd": "Serial",
  "ProgrammerStatus": "Starting"
}

{
  "Msg": "Restarting in bootloader mode",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "Flashing with command:C:/Users/twyco/.arduino-create/arduino/bossac/1.7.0-arduino3/bossac.exe -i -d --port=COM10 -U true -i -e -w -v C:/Users/twyco/AppData/Local/Temp/arduino-create-agent765186915/provisioning.bin -R",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "No device found on COM10",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "Executing command: exit status 1",
  "ProgrammerStatus": "Error"
}

I have not worked with the cloud tools. Did you have a look in the cloud section of the forum? Maybe there are some people that can help you better.

I am not sure if it is relevant for your use case, I would check whether you have the correct driver installed. Also sometimes people have issues with the USB cable. Try another one preferably a short cable.

Did you also try the standard Arduino IDE with the correct driver and board support installed?

Hi!

I encountered the same issue while configuring my (lovely) 33 IOT to cloud.
When plugged to your PC via USB, double click the reset button to put the board in boot mode. You should see the COM port changes.
There, start the configuration with IOT cloud (and cross fingers)

Hope it will help!

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.