Skip to content

Firmware update fails if Serial Monitor is open #684

Closed
@per1234

Description

@per1234

Describe the bug

The Arduino IDE includes a "WiFi101 / WiFiNINA Firmware Updater"" tool that can be used to update the firmware on the WiFi radio module of Arduino boards such as the MKR WiFi 1010 and Nano 33 IoT.

If the Serial Monitor is open when a firmware update is attempted, it fails.

To Reproduce

  1. Connect an Arduino board that has a u-blox NINA-W102 module to your computer via the USB cable.
  2. Select the board and port in the IDE.
  3. Open the Arduino IDE Serial Monitor (Tools > Serial Monitor).
  4. Select Tools > WiFi101 / WiFiNINA Firmware Updater from the Arduino IDE menus.
  5. Select the board in the Firmware Updater dialog.
  6. Click the Check Updates button.
  7. Click the Install button
    (it doesn’t matter which firmware version you flash).
  8. Wait for the update process to finish.

The process fails without any indication of the cause

⚠️ Installation failed. Please try again.

Expected behavior

Ideally, the IDE's Firmware Updater tool would automatically close the serial port as needed, reopening it in Serial Monitor once done, similar to how it is handled during the Upload process.

If that is not feasible, it should check for open Serial Monitor at the start of the firmware update process and clearly communicate to the user that they must close it. This is the approach taken by the classic IDE's firmware updater tool:

Clipboard01

Desktop

  • OS: Windows 10
  • Version: 2.0.0-rc2
    Date: 2021-12-13T10:09:39.122Z
    CLI Version: 0.20.2 [13783819]

Additional context

I think it could be a common occurrence because most often people are motivated to update their firmware after seeing the outdated firmware message that is printed to Serial Monitor by the "CheckFirmwareVersion" example of the WiFiNINA library or by the ArduinoIoTCloud library.

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions