Arduino UNO R4 wifi Firmware Update Failure

I have tried to add Arduino UNO R4 wifi as a device in the cloud. After successfully installing the Arduino create agent, the device Firmware is Checked and the process doesn't continue from there on. Eventually shows a message "We were not able to update the Firmware, something went Wrong"

Which browser and OS version are you using?
Is this the first time you use the board with the Arduino Cloud?
Can you share a screenshot of the error with us?

im still facing the same issue. I updated the firmware using the Arduino IDE and when i connect to the arduino cloud The same error is there. "Not able to update firmware"

Hi @vanessa6601hanna. I'm sorry about the problem with Arduino Cloud.

Does the problem still occur if you try it again now? I just gave it a try and Arduino Cloud is working fine for me with my UNO R4 WiFi. It might have been a temporary problem that has been fixed since the time you encountered it.

Its still happening with me and im using an UNO R4 Wi-Fi im on windows 11

Hi @mrtx321. I'm going to ask you to provide some additional information that might help us to identify the problem.


:exclamation: This procedure is not intended to solve the problem. The purpose is to gather more information.


Please do this:

  1. Start Arduino Cloud Agent if it is not already running.
    An icon that looks like an Arduino logo will appear in the Windows "notification area".
  2. Click on the icon in the Windows notification area.
    A menu will open.
  3. Select "Open Debug Console" from the menu.
    The "Arduino Cloud Agent Debug Console" page will open in your browser.
  4. Click the third button from the right in the toolbar at the bottom of the "Arduino Cloud Agent Debug Console" page.
    A menu will open.
  5. Select "HIDE 'LIST' COMMANDS" from the menu.
  6. Click the "CLEAR LOG" button that is located near the bottom right corner of the "Arduino Cloud Agent Debug Console" window.
  7. Leaving the "Arduino Cloud Agent Debug Console" browser tab open, attempt to set up a new Arduino Cloud IoT Device for your UNO R4 WiFi board via Arduino Cloud, just as you did before.
  8. Once the process fails, switch to the "Arduino Cloud Agent Debug Console" browser tab.
  9. Click the "EXPORT LOG" button in the bottom right corner of the "Arduino Cloud Agent Debug Console" window.
    A download of a file named agent-log.txt will start.
  10. Open the downloaded "agent-log.txt" file in any text editor.
  11. Press the Ctrl+A keyboard shortcut to select all the text.
  12. Press the Ctrl+C keyboard shortcut.
    This will copy the selected text to the clipboard.
  13. Open a forum reply here by clicking the "Reply" button.
  14. Click the <CODE/> icon on the post composer toolbar. This will add the forum's code block markup (```) to your reply to make sure the output is correctly formatted.
    Code block icon on toolbar
  15. Press the Ctrl+V keyboard shortcut. This will paste the output into the code block.
  16. Move the cursor outside of the code block markup before you add any additional text to your reply.
  17. Click the "Reply" button to post the output.

Please let me know if you have any questions or problems while following those instructions.

1 Like

Hi!

I am facing a similar problem where the cloud service fails at the "update firmware" step with my R4 wifi (for me this is actually a side-problem from the wire library not wanting to work on my desktop version with the R4, but that's another story). I followed the steps you detailed above. The logs follow below. Note that I'm using a Kubuntu, not Windows.

downloadtool windows-drivers latest arduino keep

downloadtool bossac 1.7.0 arduino keep

downloadtool arduino-fwuploader latest arduino keep

downloadtool rp2040tools latest arduino keep

{
  "DownloadStatus": "Error",
  "Msg": "Get \"\": unsupported protocol scheme \"\""
}

{
  "DownloadStatus": "Pending",
  "Msg": "Ensure that the files are executable"
}

{
  "DownloadStatus": "Pending",
  "Msg": "Updating map with location /home/hflavio/.arduino-create/arduino/bossac/1.7.0"
}

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

{
  "DownloadStatus": "Pending",
  "Msg": "Ensure that the files are executable"
}

{
  "DownloadStatus": "Pending",
  "Msg": "Updating map with location /home/hflavio/.arduino-create/arduino/arduino-fwuploader/latest"
}

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

{
  "DownloadStatus": "Pending",
  "Msg": "Ensure that the files are executable"
}

{
  "DownloadStatus": "Pending",
  "Msg": "Updating map with location /home/hflavio/.arduino-create/arduino/rp2040tools/latest"
}

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

close /dev/ttyACM0

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

close /dev/ttyACM1

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

downloadtool arduino-fwuploader latest arduino keep

downloadtool arduino-fwuploader latest arduino keep

downloadtool arduino-fwuploader latest arduino keep

{
  "DownloadStatus": "Pending",
  "Msg": "Ensure that the files are executable"
}

{
  "DownloadStatus": "Pending",
  "Msg": "Updating map with location /home/hflavio/.arduino-create/arduino/arduino-fwuploader/latest"
}

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

downloadtool arduino-fwuploader latest arduino keep

{
  "DownloadStatus": "Pending",
  "Msg": "Ensure that the files are executable"
}

{
  "DownloadStatus": "Pending",
  "Msg": "Updating map with location /home/hflavio/.arduino-create/arduino/arduino-fwuploader/latest"
}

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

{
  "DownloadStatus": "Pending",
  "Msg": "Ensure that the files are executable"
}

{
  "DownloadStatus": "Pending",
  "Msg": "Updating map with location /home/hflavio/.arduino-create/arduino/arduino-fwuploader/latest"
}

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

{
  "DownloadStatus": "Pending",
  "Msg": "Ensure that the files are executable"
}

{
  "DownloadStatus": "Pending",
  "Msg": "Updating map with location /home/hflavio/.arduino-create/arduino/arduino-fwuploader/latest"
}

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

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

{
  "Msg": "Flashing with command:/home/hflavio/.arduino-create/arduino/arduino-fwuploader/2.4.1/arduino-fwuploader firmware list -b arduino:renesas_uno:unor4wifi",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "Board               FQBN                          Module     Version",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "Arduino UNO R4 WiFi arduino:renesas_uno:unor4wifi ESP32-S3   0.1.0  ",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "Arduino UNO R4 WiFi arduino:renesas_uno:unor4wifi ESP32-S3   0.2.0  ",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "Arduino UNO R4 WiFi arduino:renesas_uno:unor4wifi ESP32-S3   0.2.1  ",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "Arduino UNO R4 WiFi arduino:renesas_uno:unor4wifi ESP32-S3   0.3.0  ",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "Arduino UNO R4 WiFi arduino:renesas_uno:unor4wifi ESP32-S3 ✔ 0.4.1  ",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "",
  "ProgrammerStatus": "Busy"
}

{
  "Flash": "Ok",
  "ProgrammerStatus": "Done"
}

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

{
  "Msg": "Flashing with command:/home/hflavio/.arduino-create/arduino/arduino-fwuploader/2.4.1/arduino-fwuploader firmware get-version -a /dev/ttyACM1 -b arduino:renesas_uno:unor4wifi",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "Erase flash",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "Done in 0.001 seconds",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "Write 46588 bytes to flash (12 pages)",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "\r[                              ] 0% (0/12 pages)\r[==                            ] 8% (1/12 pages)\r[=====                         ] 16% (2/12 pages)\r[=======                       ] 25% (3/12 pages)\r[==========                    ] 33% (4/12 pages)\r[============                  ] 41% (5/12 pages)\r[===============               ] 50% (6/12 pages)\r[=================             ] 58% (7/12 pages)\r[====================          ] 66% (8/12 pages)\r[======================        ] 75% (9/12 pages)\r[=========================     ] 83% (10/12 pages)\r[===========================   ] 91% (11/12 pages)\r[==============================] 100% (12/12 pages)",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "Done in 2.982 seconds",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "FIRMWARE-VERSION: 0.2.1",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "Firmware version installed: 0.2.1",
  "ProgrammerStatus": "Busy"
}

{
  "Flash": "Ok",
  "ProgrammerStatus": "Done"
}

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

{
  "Msg": "Flashing with command:/home/hflavio/.arduino-create/arduino/arduino-fwuploader/2.4.1/arduino-fwuploader firmware flash -a /dev/ttyACM1 -b arduino:renesas_uno:unor4wifi -v --retries 5",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "\u001b[36mINFO\u001b[0m[0000] arduino-fwuploader Version: 2.4.1 Commit: d945078 Date: 2023-08-31T07:42:57Z ",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "\u001b[36mINFO\u001b[0m[0000] Checking signature                            \u001b[36mindex\u001b[0m=/tmp/55770067919477794103023874271/index.json \u001b[36msignatureFile\u001b[0m=/tmp/55770067919477794103023874271/index.json.sig \u001b[36mtrusted\u001b[0m=true",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "\u001b[36mINFO\u001b[0m[0000] Checking signature                            \u001b[36mindex\u001b[0m=/tmp/fwuploader/package_index.json \u001b[36msignatureFile\u001b[0m=/tmp/fwuploader/package_index.json.sig \u001b[36mtrusted\u001b[0m=true",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "\u001b[36mINFO\u001b[0m[0000] Checking signature                            \u001b[36mindex\u001b[0m=/tmp/fwuploader/plugin_firmware_index.json \u001b[36msignatureFile\u001b[0m=/tmp/fwuploader/plugin_firmware_index.json.sig \u001b[36mtrusted\u001b[0m=true",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "\u001b[36mINFO\u001b[0m[0001] Uploading firmware (try 1 of 5)              ",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "time=2024-08-25T21:44:58.362-04:00 level=INFO msg=upload_command_sketch",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "time=2024-08-25T21:44:58.362-04:00 level=INFO msg=\"sending serial reset\"",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "time=2024-08-25T21:44:58.865-04:00 level=INFO msg=\"uploading command sketch with bossac\"",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "Erase flash",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "Done in 0.001 seconds",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "Write 46588 bytes to flash (12 pages)",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "\r[                              ] 0% (0/12 pages)\r[==                            ] 8% (1/12 pages)\r[=====                         ] 16% (2/12 pages)\r[=======                       ] 25% (3/12 pages)\r[==========                    ] 33% (4/12 pages)\r[============                  ] 41% (5/12 pages)\r[===============               ] 50% (6/12 pages)\r[=================             ] 58% (7/12 pages)\r[====================          ] 66% (8/12 pages)\r[======================        ] 75% (9/12 pages)\r[=========================     ] 83% (10/12 pages)\r[===========================   ] 91% (11/12 pages)\r[==============================] 100% (12/12 pages)",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "Done in 2.924 seconds",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "Waiting to flash the binary...",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "time=2024-08-25T21:45:03.137-04:00 level=INFO msg=\"getting firmware version\"",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "time=2024-08-25T21:45:03.155-04:00 level=INFO msg=\"firmware version is > 0.1.0 using sketch\"",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "time=2024-08-25T21:45:03.157-04:00 level=INFO msg=\"check if serial port has changed\"",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "[2024-08-26T01:45:13Z INFO ] 🚀 A new version of espflash is available: v3.1.1",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "[2024-08-26T01:45:13Z INFO ] Serial port: '/dev/ttyACM1'",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "[2024-08-26T01:45:13Z INFO ] Connecting...",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "[2024-08-26T01:45:13Z INFO ] Unable to connect, retrying with extra delay...",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "[2024-08-26T01:45:13Z INFO ] Unable to connect, retrying with default delay...",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "[2024-08-26T01:45:13Z INFO ] Unable to connect, retrying with extra delay...",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "[2024-08-26T01:45:13Z INFO ] Unable to connect, retrying with default delay...",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "[2024-08-26T01:45:13Z INFO ] Unable to connect, retrying with extra delay...",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "[2024-08-26T01:45:13Z INFO ] Unable to connect, retrying with default delay...",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "[2024-08-26T01:45:13Z INFO ] Unable to connect, retrying with extra delay...",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "Error: espflash::connection_failed",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "  × Error while connecting to device",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "  ╰─▶ Failed to connect to the device",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "  help: Ensure that the device is connected and the reset and boot pins are",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "        not being held down",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "Error: exit status 1",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "\u001b[31mERRO\u001b[0m[0016] couldn't update firmware: exit status 3      ",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "\u001b[36mINFO\u001b[0m[0016] Waiting 1 second before retrying...          ",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "\u001b[36mINFO\u001b[0m[0017] Uploading firmware (try 2 of 5)              ",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "time=2024-08-25T21:45:14.949-04:00 level=INFO msg=upload_command_sketch",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "time=2024-08-25T21:45:14.950-04:00 level=INFO msg=\"sending serial reset\"",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "Error: reboot mode: upload commands sketch: setting DTR to OFF",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "\u001b[31mERRO\u001b[0m[0017] couldn't update firmware: exit status 3      ",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "\u001b[36mINFO\u001b[0m[0017] Waiting 1 second before retrying...          ",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "\u001b[36mINFO\u001b[0m[0018] Uploading firmware (try 3 of 5)              ",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "time=2024-08-25T21:45:15.961-04:00 level=INFO msg=upload_command_sketch",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "time=2024-08-25T21:45:15.961-04:00 level=INFO msg=\"sending serial reset\"",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "Error: reboot mode: upload commands sketch: setting DTR to OFF",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "\u001b[31mERRO\u001b[0m[0018] couldn't update firmware: exit status 3      ",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "\u001b[36mINFO\u001b[0m[0018] Waiting 1 second before retrying...          ",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "\u001b[36mINFO\u001b[0m[0019] Uploading firmware (try 4 of 5)              ",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "time=2024-08-25T21:45:16.968-04:00 level=INFO msg=upload_command_sketch",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "time=2024-08-25T21:45:16.968-04:00 level=INFO msg=\"sending serial reset\"",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "Error: reboot mode: upload commands sketch: setting DTR to OFF",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "\u001b[31mERRO\u001b[0m[0019] couldn't update firmware: exit status 3      ",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "\u001b[36mINFO\u001b[0m[0019] Waiting 1 second before retrying...          ",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "\u001b[36mINFO\u001b[0m[0020] Uploading firmware (try 5 of 5)              ",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "time=2024-08-25T21:45:17.978-04:00 level=INFO msg=upload_command_sketch",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "time=2024-08-25T21:45:17.978-04:00 level=INFO msg=\"sending serial reset\"",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "Error: reboot mode: upload commands sketch: setting DTR to OFF",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "\u001b[31mERRO\u001b[0m[0020] couldn't update firmware: exit status 3      ",
  "ProgrammerStatus": "Busy"
}

{
  "Msg": "\u001b[31mFATA\u001b[0m[0020] Operation failed. :-(                        ",
  "ProgrammerStatus": "Busy"
}

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

{
  "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-TTQCI59"
}

{
  "OS": "windows"
}

R4 firmware update with the cloud is in my experience completely hopeless. Load the IDE and connect the R4 directly to a COM Port and the upgrade firmware. This works if the PC does not already have to many devices using the USB. I think its about time OTA firmware upgrades just became and option when you OTA a script to the device. Cloud also seems very poor at telling you when there is new firmware available, and the devices page currently only ever shows the firmware that was loaded on that device when you connected it. This spoils a great product, I've wasted so much time hoping each cloud update would improve this deployment. I have a special PC with almost nothing else on for direct COM port firmware updates and when OTA scripts wont deploy. Use the IDE. Pretty poor if you've deployed your hardware to the field but it seems to be the only reliable way. Come on guys this is important!