MCUBOOT serial recovery mode usb not recognised by windows 11 device manager

Hi,

I am using nrf connect sdk 2.3.0 and have configured mcuboot for serial recovery triggered via pin so my users can update firmware via usb and a windows machine.


When powering on with the pin held low DFU mode is entered as expected.

However, in windows device manager a failed usb device "MCUBOOT" shows up with windows saying there are no drivers for this.

In addition a com port is also added, that appears to be fine. 

When using nrfutil to list devices the trait mcuboot does not appear (device is E60EF9D290C74E49 and shows its serialPorts trait but no mcuboot)

nrfutil device list {00000000-0000-0000-FFFF-FFFFFFFFFFFF}
ports COM7, vcom: 0
COM16, vcom: 1
COM13, vcom: 2
traits serialPorts, usb

E60EF9D290C74E49
ports COM18
traits serialPorts, usb

id:4
ports COM14
traits serialPorts

id:5
ports COM17
traits serialPorts

id:6
ports COM4
traits serialPorts

Any attempt to program the device via nrfutil says programming not supported.

Here is my mcuboot.conf file

CONFIG_BOOT_USB_DFU_GPIO=y
CONFIG_BOOT_USB_DFU_DETECT_PORT="GPIO_0"
CONFIG_BOOT_USB_DFU_DETECT_PIN=23
CONFIG_BOOT_SERIAL_DETECT_PIN_VAL=0
CONFIG_SINGLE_APPLICATION_SLOT=y
CONFIG_BOOT_SIGNATURE_TYPE_NONE=y
CONFIG_BOOT_SIGNATURE_KEY_FILE="root-ec-p256.pem"

CONFIG_USB_COMPOSITE_DEVICE=n

CONFIG_USB_DEVICE_PID=0x0101
CONFIG_USB_DEVICE_DFU_PID=0x0102

##CONFIG_SIZE_OPTIMIZATIONS=y

# Enable MCUboot Serial Recovery
CONFIG_MCUBOOT_SERIAL=y
##CONFIG_UART_CONSOLE=n

# Point Serial Recovery to CDC_ACM
CONFIG_BOOT_SERIAL_CDC_ACM=y
I have tried with and without specifying the PID.

I am doing the right things here? 
Is the fact that a cdc serial port is open mean that serial recovery is possible and I am using the wrong approach with nrfutil?

Any help appreciated. 


Thanks
Parents Reply
  • Hi Amanda,

    I already had nRF Connect for Desktop installed. But I updated it to the latest version just to check.

    Same result. I just don't think there is a usb dfu device class driver on the system.

    So then I followed the advice in this support thread https://devzone.nordicsemi.com/f/nordic-q-a/77824/usb-dfu-class  

    and installed winusb. 

    And now nrfutil can see the mcuboot trait 

    E60EF9D290C74E49
    ports COM19
    traits mcuBoot, nordicUsb, serialPorts, usb

    and I just tried a firmware update and it worked!! I am guessing that if winusb is installed on the system already then this will work. But that is not a standard windows configuration.

    I do think that a note in the sample or the build script mentioning this for windows would save a lot of trouble.

    Thank you for all your help though,

    Justin

Children
Related