Problems with updating firmware

I have installed Version 0.6.0 of the Firmware for Arduino Uno R4 WiFi using the procedure described in
https://support.arduino.cc/hc/en-us/articles/9670986058780-Update-the-connectivity-module-firmware-on-UNO-R4-WiFi

and subsequently verified the installation using a specific sketch. However, the firmware tool does not recognise this installation and starts an endless attempt to install 0.6.0 anew. In the Arduino Cloud the procedure for initialising a new device does not terminate either. Is this a hardware or a software issue?

This link seems to have a link to a solution for failed firmware update... Uno R4 WiFi -endless Skecht uploading & Firmware Update fail

Hi @mresearch.

I think you misinterpreted your observations. The "Firmware Updater" feature of Arduino IDE doesn't have any mechanism for checking the installation of the firmware on the UNO R4 WiFi board. It only has the capability to install the firmware version you select. As long as that operation completes successfully, then you will know that you have installed the firmware:

In case you want to verify this, I'll provide instructions you can follow to upload a sketch that prints the installed firmware version in the Serial Monitor:

  1. Start Arduino IDE.
  2. Select File > New Sketch from the Arduino IDE menus.
    A new sketch will open in an Arduino IDE window.
  3. Replace the content of the sketch with the following code:
    #include <WiFiS3.h>
    
    void setup() {
      Serial.begin(9600);
      delay(1000);
      Serial.print("Firmware version: ");
      Serial.println(WiFi.firmwareVersion());
    }
    void loop() {}
    
  4. Connect the UNO R4 WiFi board to your computer with a USB cable.
  5. Select Tools > Board > Arduino UNO R4 Boards from the Arduino IDE menus.
  6. Select the port of the board from Arduino IDE's Tools > Port menu.
  7. Select Sketch > Upload from the Arduino IDE menus.
  8. Wait for the upload to finish successfully.
  9. Select Tools > Serial Monitor from the Arduino IDE menus to open the Serial Monitor view if it is not already open.
  10. Select "9600" from the baud rate menu at the right side of the Serial Monitor view's toolbard.
  11. Press and release the reset button on the board.

You should now see the version number of the firmware that is installed on the "bridge" module of your UNO R4 WiFi board printed in the Serial Monitor view's output field.

Thank you, ptillisch, for your reply and the clarification regarding the functionality of the Firmware updater. I should have been a little bit more specific in my original question:

  1. I could not install v 0.6.0 using the Firmware Updater (it did not terminate) but I could install v 0.5.2.
  2. I successfully installed v 0.6.0 using "Restore the USB connectivity firmware on UNO R4 WiFi with espflash" and checked it actually with the sketch described in your reply.
  3. I understand from your reply that the Firmware Updater is not designed to note if the version to be installed is actually already installed. In my case the Updater started but did not terminate.
  4. Alternatively, I tried to set up my UNO as a new device in the Arduino Cloud using the Automatic Setup procedure. The procedure did not terminate.

I still wish to understand what the problem is and finally use the UNO in the Arduino Cloud.

Thanks, xfdp. Indeed, I have used the "Restore the USB connectivity firmware on UNO R4 WiFi with espflash" procedure to sucessfully install v 0.6.0 on my UNO. The remaining issues are not being addressed in the thread.

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


:red_exclamation_mark: 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.
  2. Click on the Arduino Cloud Agent icon (looks like an Arduino logo).
    If you are using Windows, the icon will be in the "notification area". If you are using macOS, it will be in the "menu bar".
    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, make another attempt at setting up the Arduino Cloud IoT Device, just as you did before when you encountered the "procedure did not terminate" problem.
  8. Once you are certain that the procedure has hung/failed, 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 (Command+A for macOS users) to select all the text.
  12. Press the Ctrl+C keyboard shortcut (Command+C for macOS users).
    This will copy the selected text to the clipboard.
  13. Open a reply here on this forum topic 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.
  15. Press the Ctrl+V keyboard shortcut (Command+V for macOS users). 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 publish the post.

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

Thank you, ptillisch, for the follow-up. Please find below the requested data:

downloadtool windows-drivers latest arduino keep

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

downloadtool bossac 1.7.0 arduino keep

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

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

{
  "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 /Users/berndschomburg/.arduino-create/arduino/arduino-fwuploader/latest"
}

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

downloadtool rp2040tools latest arduino keep

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

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

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

open /dev/cu.usbmodem34B7DA63C7282 9600 timedraw

{
  "Cmd": "Open",
  "Desc": "Got register/open on port.",
  "Port": "/dev/cu.usbmodem34B7DA63C7282",
  "Baud": 9600,
  "BufferType": "timedraw"
}

sendraw /dev/cu.usbmodem34B7DA63C7282 VaoCAAraAAEgA4EYZDn/qlU=

sendraw /dev/cu.usbmodem34B7DA63C7282 VaoDAAMB4fGqVQ==

close /dev/cu.usbmodem34B7DA63C7282

Closing serial port /dev/cu.usbmodem34B7DA63C7282

Shutting down reader on /dev/cu.usbmodem34B7DA63C7282

{
  "Cmd": "Close",
  "Desc": "Got unregister/close on port.",
  "Port": "/dev/cu.usbmodem34B7DA63C7282",
  "Baud": 9600
}

Shutting down writer on /dev/cu.usbmodem34B7DA63C7282

writerBuffered just got closed. make sure you make a new one. port:/dev/cu.usbmodem34B7DA63C7282

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

{
  "Msg": "Flashing with command:/Users/berndschomburg/.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": "Arduino UNO R4 WiFi arduino:renesas_uno:unor4wifi ESP32-S3   0.5.2  ",
  "ProgrammerStatus": "Busy"
}

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

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

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

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

{
  "Msg": "Flashing with command:/Users/berndschomburg/.arduino-create/arduino/arduino-fwuploader/2.4.1/arduino-fwuploader firmware get-version -a /dev/cu.usbmodem34B7DA63C7282 -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.934 seconds",
  "ProgrammerStatus": "Busy"
}