mcuboot missing trait mcuBoot in nrfutil

The board is nrf52840 based using mcuboot via usb, mcuboot can be activated using a switch, and is indicated via a led, all setup via device-tree, so no legacy here. Software is quite up to date using zephyr-2.4.99/ncs-2.5.0. Updating works fine using mcumgr, but as I understand it, this tool is deprecated and nrfutil is the new swiss-army-knive (devzone.nordicsemi.com/.../nrf-util-unified-command-line-utility).

But: Updating using nrfutil does not work, presumably because there is no mcuBoot trait listed for MCUBOOT. My question: How do I achieve that mcuboot shows this trait in nrfutil?

# nrfutil --version
nrfutil 7.6.0 (92ce3a0 2023-08-15)
commit-hash: 92ce3a0c1cc7e203326d85919d826009510dc631
commit-date: 2023-08-15
host: x86_64-apple-darwin
build-timestamp: 2023-08-23T08:22:30.0306Z
classification: nrf-external

# nrfutil device list
6XXXXXXXXXXXXXXB
product MCUBOOT
ports /dev/tty.usbmodem14301, vcom: 0
/dev/tty.usbmodem14303, vcom: 1
traits serialPorts, usb

Parents
  • Hi mdell,

    It seems that custom devices are not officially supported by nRF Util yet. The documentation says:

    nRF Util supports Nordic Semiconductor Development Kit (DK)s, prototyping platforms, and dongles.

    You could try adding --override-traits mcuBoot to the command and see if it helps?

    Hieu

  • I could not find any documentation about the --override-traits flag. If I try to use it, I get an error:

    nrfutil device program --firmware app_signed.hex --traits mcuBoot --override-traits mcuBoot 

    error: unexpected argument '--override-traits' found

    # nrfutil --version
    nrfutil 7.6.0 (92ce3a0 2023-08-15)
    commit-hash: 92ce3a0c1cc7e203326d85919d826009510dc631
    commit-date: 2023-08-15
    host: x86_64-apple-darwin
    build-timestamp: 2023-08-23T08:22:30.0306Z
    classification: nrf-external

    # nrfutil upgrade
    nrfutil-device is already the newest version (2.0.3)
    nrfutil-nrf5sdk-tools is already the newest version (1.0.1)

  • Sorry about that. I was using the experimental command and thought that the options are available on the main command as well.

    You could use --override-traits with the experimental command. Here is a full command that I used:

    nrfutil device x-execute -o program --args 'firmware[file]=./dfu_application.zip' --device-filter 'serialNumber=1234567890' --override-traits mcuBoot

    Please note that this command is experimental, so the available parameters might change in the future.

Reply
  • Sorry about that. I was using the experimental command and thought that the options are available on the main command as well.

    You could use --override-traits with the experimental command. Here is a full command that I used:

    nrfutil device x-execute -o program --args 'firmware[file]=./dfu_application.zip' --device-filter 'serialNumber=1234567890' --override-traits mcuBoot

    Please note that this command is experimental, so the available parameters might change in the future.

Children
  • Hello 

    One year after the issue is still here. Do you have any update ?

    Regards

    Thibaud HABRAND

  • Hello Thibaud,

    Are you looking to use nrfutil with MCUboot or SMP Server?

    We are working on a feature to work with MCUboot/MCUmgr/SMP server. Unfortunately, I cannot comment on the timeline for this.

    Our apologies for the inconvenience.

    Regards,

    Hieu

  • Hello Hieu,

    Are you talking about the experimental option in nrfutil device command x-boot-mode-get/set ?

    nrfutil can work with smpserver ? I used it long time ago with mcumgr but now I am moving to nrfutil because it is faster in USB and I am looking for a way to starts my update sequence from application . For now I am able to do update with nrfutil but I need to have my product in bootloader.

    Firstly I was replying to this post because mcuboot traits was missing in nrfutil device list but since my comment I found that I needed to change VID/PID of my product.

    Regards

    Thibaud

  • Hello Thibaud,

    Thibaud said:

    Are you talking about the experimental option in nrfutil device command x-boot-mode-get/set ?

    nrfutil can work with smpserver ?

    No, the feature isn't available right now. However, there will be a new feature to communicate with devices using the SMP Protocol.

    Thibaud said:

    I used it long time ago with mcumgr but now I am moving to nrfutil because it is faster in USB and I am looking for a way to starts my update sequence from application . For now I am able to do update with nrfutil but I need to have my product in bootloader.

    Firstly I was replying to this post because mcuboot traits was missing in nrfutil device list but since my comment I found that I needed to change VID/PID of my product.

    I am a little confused here. Do you communicate with your device using SMP Protocol over USB? What commands are you using?

    Regards,

    Hieu

  • Helo Hieu,

    For now I ddin't implemented SMP server in my app.

    I just flashed mcuBoot and using nrfUtil with mcuBoot. 

    Now I am looking for a way to go in bootloader from app via nrfUtil command.

    Regards

    Thibaud

Related