Upgrading firmware over serial to a Nordic Thingy:53

nRF Util

tags
nRF Util

The following guide describes how to use the nrfutil mcu-manager command to update firmware on the Nordic Thingy:53 prototyping platform through a USB cable using MCUboot. MCUboot is a secure bootloader that is used to update applications if you do not have an external debugger.

Compared to a similar process that can be performed with nrfutil device, the mcu-manager command is more granular and allows for more control over the firmware update process.

Tip

You can download example firmware from the Nordic Thingy:53 Downloads page. Unpack the ZIP package, navigate to the desired application directory, and find the firmware file. The firmware file for the upgrade performed below is the one for Matter_Weather_Station.

The guide assumes that you are using a Windows computer.

Complete the following steps:

  1. Make sure the Thingy:53 is connected to the computer with a USB cable.
  2. Start the Thingy:53 in the bootloader mode:

    1. Take of the Thingy:53 top cover.
    2. Locate the SW1 power on switch.
    3. Locate the SW2 button, located next to the SW3 main button.

      SW1 power on switch and SW2 button

    4. Press and hold the SW2 button.

    5. While holding the SW2 button pressed, move the SW1 switch to ON to power the Thingy:53.
      The device turns on in the bootloader mode.
  3. Discover available devices by running the following command to list the available COM serial ports:

    nrfutil device list
    

    The output will look similar to the following one:

    E6CBECFBCEEE24BC
    Product         Bootloader Thingy:53
    Ports           COM13
    Traits          mcuBoot, serialPorts, nordicUsb, usb
    
    If the product name does not mention Bootloader, you need to try again to put the device in the bootloader mode.
  4. Check the images on the device by running the following command:

    nrfutil mcu-manager serial image-list --serial-port COM13
    
    The output will look similar to the following one:
    Image
        image number: 1
        slot: 0
        version: 0.0.0.0
    
  5. Upload the firmware by running the following command:

    nrfutil mcu-manager serial image-upload --firmware <firmware_path> --serial-port <serial_port>
    

    For example:

    nrfutil mcu-manager serial image-upload --firmware dfu_application_matter_weather_station_2.7.0_thingy53.zip --serial-port COM13
    

    The upload progress is displayed:

    Uploading multi-image file dfu_application_matter_weather_station_2.7.0_thingy53.zip
    [00:00:50] ###### 100% [COM13] Uploading matter_weather_station.bin
    [00:00:10] ######  96% [COM13] Uploading ipc_radio.bin
    
  6. Wait for around 40 seconds for the device to upload the second image and be ready to receive the next command.

  7. Reset the device with the following command:

    nrfutil mcu-manager serial reset --serial-port <serial_port>
    

    For example:

    nrfutil mcu-manager serial reset --serial-port COM13
    

    A confirmation message appears when the reset is applied:

    ✔️ Reset was applied for COM13
    
  8. Start the Thingy:53 again in the bootloader mode.
    See steps above.

  9. Check the images again on the device by running the following command:

    nrfutil mcu-manager serial image-list --serial-port COM13
    
    The output now shows the new image:
    Image
        image number: 0
        slot: 0
        version: 2.7.0
        hash: 53fd50d6e9f94a21d91d3f8638b4753cf466f93cc4d631e865f38551bb91e279
    Image
        image number: 1
        slot: 0
        version: 0.0.0