The highest version that the firmware updater tool will let me install to Uno WiFi v2 is 1.3.0
However the changelogs on github seem to show some important bugfixes (eg. packet corruption, dropped connections) since then. Can I update this board to firmware 1.4.7 somehow?
As you discovered, the NINA firmware version 1.4.7 is not available from the Arduino IDE's firmware updater tool.
The easiest way to update the firmware is by uploading a sketch to your board via the Arduino IoT Cloud sketch uploader: https://create.arduino.cc/iot
Make sure you the Arduino IoT Cloud interface of the Arduino Cloud website for the upload, rather than going to the "Full Editor" (Arduino Web Editor) because Arduino Web Editor does not do the firmware update.
Another option is the arduino-fwupload command line tool:
But I can't get it to program. Maybe I have the command line wrong but the --help suggests the command line for this win64 version is pretty different to the instruction on the github page
C:_SVN\Code\Arduino\NinaFirmwareUploader>firmwareuploader -model NINA -firmware firmwares\NINA\1.4.7\NINA_W102-Uno_WiFi_Rev2.bin -port com30
2021/06/27 17:00:20 Connecting to programmer
2021/06/27 17:00:20 Opened the serial port with baud rate 115200
2021/06/27 17:00:22 Sync with programmer
2021/06/27 17:00:52 Error: Programmer is not responding
2021/06/27 17:00:52 Waiting 1 second before retrying...
2021/06/27 17:00:53 Retrying upload (1 of 9)
2021/06/27 17:00:53 Connecting to programmer
C:_SVN\Code\Arduino\NinaFirmwareUploader>firmwareuploader --help
Usage of firmwareuploader:
-address value
address (host:port) to fetch and flash root certificate for, multiple values allowed
-certs string
root certificate directory
-firmware string
firmware file to flash
-flasher string
firmware upload binary (precompiled for the right target)
-get_available_for string
Ask for available firmwares matching a given board
-model string
module model (winc, nina or sara)
-port string
serial port to use for flashing
-programmer string
path of programmer in use (avrdude/bossac)
-read
read all firmware and output to stdout
-restore_binary string
binary to restore after the firmware upload (precompiled for the right target)
-retries int
Number of retries in case of upload failure (default 9)
System wide configuration file is "..\etc\avrdude.conf"
avrdude: can't open config file "..\etc\avrdude.conf": No such file or directory
avrdude: error reading system wide configuration file "..\etc\avrdude.conf"
AH - NOW I GET IT. I have to give it full path to avrdude.exe
Full command line for Windows (Win10 x64) that seems to work for me was
Yeah, there has been a major reworking of the command line interface since the 0.1.10 release came out. The readme you see at the home page is for the development version of the tool, so it reflects the new interface. You can see the readme for the release version of the tool here:
I can't get this to work with Arduino NANO 33 IoT.
It looks tome like the board does not enter bootloader mode. I can tell because if I upload the standard "Blink" sketch first, then it stays running. The uploader hangs when it tries to upload FirmwareUpdater.nano_33_iot.ino.bin and the BLINK LED is still blinking.
I tried putting it into bootloader mode manually first (ie. dbl-press reset button) with the new COM port but then it fails with "Flash erase failed".
Note: I'm pretty sure the board is OK as I was able to update with the Arduino IDE firmware updater, but of course that can only get me to 1.3.0
C:_SVN\Code\Arduino\NinaFirmwareUploader>firmwareuploader -programmer "C:\Users\andy\AppData\Local\Arduino15\packages\arduino\tools\bossac\1.9.1-arduino2\bossac.exe" -flasher firmwares\NINA\FirmwareUpdater.nano_33_iot.ino.bin -model NINA -firmware firmwares\NINA\1.4.7\NINA_W102.bin -port com31
2021/07/01 14:45:48 Flashing firmware uploader nina
2021/07/01 14:45:48 Entering board into bootloader mode
2021/07/01 14:45:58 Flashing firmwares\NINA\FirmwareUpdater.nano_33_iot.ino.bin
*** IT JUST HANGS INDEFINITELY HERE
*** THIS TIME WITH BOARD MANUALLY SET TO BOOTLOADER MODE...
C:_SVN\Code\Arduino\NinaFirmwareUploader>firmwareuploader -programmer "C:\Users\andy\AppData\Local\Arduino15\packages\arduino\tools\bossac\1.9.1-arduino2\bossac.exe" -flasher firmwares\NINA\FirmwareUpdater.nano_33_iot.ino.bin -model NINA -firmware firmwares\NINA\1.4.7\NINA_W102.bin -port com32
2021/07/01 14:51:55 Flashing firmware uploader nina
2021/07/01 14:51:55 Entering board into bootloader mode
2021/07/01 14:52:05 Flashing firmwares\NINA\FirmwareUpdater.nano_33_iot.ino.bin
Erase flash
I thought maybe I was missing something much simpler so I tried the IOT method suggested.
However, I cannot get the Arduino IOT Cloud Create interface to update this board either. After I create a new "thing" and go to "Select Device", it finds my NANO 33 IOT board and does the setup where it should update the firmware, however this hangs at stage 1 "Uploading sketch" for ages and then shows a "We were not able to configure your device" "Something went wrong!" dialog.
There's a very confusing thing, which is that there is a version of bossac for the Nano 33 BLE and another for the SAMD boards like your Nano 33 IoT. They are not interchangeable. This 1.9.1-arduino2 used in your command is the one for the Nano 33 BLE. The one for the Nano 33 IoT is 1.7.0-arduino3. If you already have Arduino SAMD Boards platform installed on your computer then you will have it at C:\Users\andy\AppData\Local\Arduino15\packages\arduino\tools\bossac\1.7.0-arduino3\bossac.exe
So just update that part of your command and it should work.
I can also now confirm, having tried a few other boards here, that by far the easiest way to update these boards with NINA modules is, just as you said, to just let the arduino cloud setup (at https://create.arduino.cc/iot ) do it. Once I had installed the "ArduinoIoTCloud" in arduino library manager (I think that is necessary - I had hangs until I did that, unless that was a USB3 vs USB2 thing as I also switched USB ports) and then created a project and picked my device the "Preparing your device" automation just took care of it. Thanks for the tip.
I've been struggling to understand how to use this tool--I'm not very well versed in programming, so it's all very confusing. If possible, is there somewhere you could point me with a more step-by-step walkthrough of how to run it? (Every time I try to run the application file, the thing runs for a moment then immediately crashes. Lol.)
Have you tried the IoT Cloud method?
I resisted at first because I'm not really very interested in cloud solutions generally but I have to say that just for the purpose of updating NINA firmware it was much simpler and mainly just worked (I did install the IoT Cloud libs first but I don't use them).
Whilst I did eventually manage to get the firmware upgrade tools working it was a lot more fiddly to mess with.
I agree with EvFm that uploading via Arduino IoT Cloud is a good option if you just want to get your firmware updated in a simple point and click fashion.
If you are still interested in using the Arduino Firmware Uploader tool, please tell me which Arduino board you're using and I'll provide instructions tailored to that board.
I've tried using the IoT Cloud, but I'm trying to update the Uno WiFi Rev2, which it says is incompatible with the service. . Apologies--I thought I'd mentioned the board type in my previous comment!
From the "assets" section of that page, find the version for your operating system. For example, if you are using Windows 64 bit, you want "arduino-fwuploader_1.0.0_Windows_64bit.zip". Click on it.
Wait for the download to finish.
Unzip the downloaded file.
Open the unzipped folder in a command line terminal (e.g., Windows cmd, PowerShell, Bash).
Connect your Uno WiFi Rev2 to your computer with the USB cable.
Start the Arduino IDE.
Open the Arduino IDE's Tools > Port menu. Take note of which port the Uno WiFi Rev2 is on. It will be identified "(Arduino Uno WiFi Rev2)".
Return to the command line terminal you opened previously.
Run the following command, replacing the "<port>" part at the end of the command with the port of your Uno WiFi Rev2.
Which solution. Several have been mentioned in this thread.
Please provide a detailed description of what you mean by "did not work", including the full and exact text of any errors or warnings you might have encountered.