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
  • Hi, 

    Try to add the following configs into child_image/mcuboot.conf:

    CONFIG_USB_DEVICE_VID=0x1915
    CONFIG_USB_DEVICE_PID=0x5300

    Regards,
    Amanda H.

  • Hi,

    Thanks for the quick response.

    I have just tried this and the result is the same. Device manager reports "The drivers for this device are not installed. (Code 28)"

    I have also checked the device properties and confirmed the VID and PID were picked up correctly.

    Looking at the usb compatible ids property device manager reports:

    USB\COMPAT_VID_1915&Class_fe&SubClass_01&Prot_01
    USB\COMPAT_VID_1915&Class_fe&SubClass_01
    USB\COMPAT_VID_1915&Class_fe
    USB\Class_fe&SubClass_01&Prot_01
    USB\Class_fe&SubClass_01
    USB\Class_fe

    If that helps. 

     Thanks,

    Justin

  • Hi, 

    JustinL said:
    Device manager reports "The drivers for this device are not installed. (Code 28)"

    Not sure how to handle this error on Window11, but I think you can search for solutions on the internet.

    I am using Windows 10, and here are the device properties and driver information. FYI.

      

    -Amanda H.

  • Hi Amanda,

    Thanks for this.

    To clarify - the cdc com port is correctly recognised. However, windows device manager is also reporting a failed usb device mcuboot which has no driver. I am guessing mcuboot is trying to register as a composite device.

    I can do firmware updates over the com port using mcumgr but I can't seem to do anything via nrfutil. I believe this is because there is no mcuboot trait because of the failed device.

    I was hoping nrfutil would be faster as it takes well over 2 minutes for 150k firmware update via the cdc port.

    Also I seem to have to install go in order to use the mcumgr cli and I would rather be using nrfutil.

    Thanks,
    Justin

  • Hi,

    JustinL said:
    However, windows device manager is also reporting a failed usb device mcuboot which has no driver. I am guessing mcuboot is trying to register as a composite device.

    Yes, it did, but I don't install any special driver for that. Seems Windows 10 handles that. 

    JustinL said:
    I believe this is because there is no mcuboot trait because of the failed device.

    I agree. 

    JustinL said:
    Also I seem to have to install go in order to use the mcumgr cli and I would rather be using nrfutil.

    Is it possible to try on a Windows 10 pc?

    -Amanda H.

Related