I'm trying to perform USB DFU with nRF Connect SDK Ver2.4.2, but an error occurs with duf-util.

I'm trying to perform USB DFU with nRF Connect SDK Ver2.4.2, but an error occurs with duf-util.

Please consult in the following order.

1. The error itself
2. Environment
2-1 dfu source
2-2  Hello world source
3 Error Log.

1. The error itself

PS C:\L\ncs\v2.4.2\bootloader\mcuboot\samples\zephyr\hello-world\build_dfu_hello_world\mcuboot\zephyr> C:\L\tools\dfu-util-0.11-binaries\win64\dfu-util.exe -a 1 -D .\zephyr.bin
dfu-util 0.11

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2021 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to http://sourceforge.net/p/dfu-util/tickets/

Warning: Invalid DFU suffix signature
A valid DFU suffix will be required in a future dfu-util release
Failed to retrieve language identifiers
Failed to retrieve language identifiers
Opening DFU capable USB device...
Device ID 2fe3:ffff
Device DFU version 0110
Claiming USB DFU Interface...
Setting Alternate Interface #1 ...
Determining device status...
error get_status: LIBUSB_ERROR_TIMEOUT
PS C:\L\ncs\v2.4.2\bootloader\mcuboot\samples\zephyr\hello-world\build_dfu_hello_world\mcuboot\zephyr>

2.Environment

NCS : Connect SDK 2.4.2

Device : nRF52840

EVK : nRF52840DK

2-1 dfu source

<Folder>

PS C:\L\ncs\v2.4.2\zephyr\samples\subsys\usb\dfu>

<proj.conf>

CONFIG_STDOUT_CONSOLE=y
CONFIG_GPIO=y
CONFIG_USB_DEVICE_STACK=y
CONFIG_USB_DEVICE_PRODUCT="Zephyr DFU sample"
CONFIG_USB_DEVICE_PID=0x0005
CONFIG_USB_DFU_CLASS=y
CONFIG_USB_DFU_ENABLE_UPLOAD=y
CONFIG_FLASH=y
CONFIG_FLASH_MAP=y
CONFIG_STREAM_FLASH=y
CONFIG_IMG_MANAGER=y
CONFIG_FLASH_PAGE_LAYOUT=y
CONFIG_LOG=y
CONFIG_USB_DRIVER_LOG_LEVEL_ERR=y
CONFIG_USB_DEVICE_LOG_LEVEL_ERR=y
CONFIG_BOOTLOADER_MCUBOOT=y
CONFIG_USB_DEVICE_INITIALIZE_AT_BOOT=n
CONFIG_MCUBOOT_SIGNATURE_KEY_FILE="C:\L\ncs\hoko\dfu_NINA_B40\priv.pem"

2-2 Hello world source

<Folder>

PS C:\L\ncs\v2.4.2\bootloader\mcuboot\samples\zephyr\hello-world>

<Proj.conf>

# Print a banner on the UART on startup.
CONFIG_BOOT_BANNER=y

# Enable console and printk()
CONFIG_PRINTK=y
CONFIG_STDOUT_CONSOLE=y

# Enable Zephyr application to be booted by MCUboot
CONFIG_BOOTLOADER_MCUBOOT=y

CONFIG_FLASH=y
CONFIG_IMG_MANAGER=y
CONFIG_STREAM_FLASH=y
CONFIG_USB_DEVICE_STACK=y
CONFIG_USB_DFU_CLASS=y
CONFIG_USB_DFU_ENABLE_UPLOAD=y
CONFIG_MCUBOOT_SIGNATURE_KEY_FILE="C:/L/ncs/v2.4.2/bootloader/mcuboot/root-ec-p256.pem"
CONFIG_FLASH_MAP=y
3 Err Log

Comamnd Log

PS C:\L\ncs\v2.4.2\bootloader\mcuboot\samples\zephyr\hello-world\build_dfu_hello_world\mcuboot\zephyr> C:\L\tools\dfu-util-0.11-binaries\win64\dfu-util.exe --list
dfu-util 0.11

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2021 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to http://sourceforge.net/p/dfu-util/tickets/

Found Runtime: [2fe3:0005] ver=0303, devnum=6, cfg=1, intf=0, path="2-4", alt=0, name="UNKNOWN", serial="CD9495AE06EB1E2C"



PS C:\L\ncs\v2.4.2\bootloader\mcuboot\samples\zephyr\hello-world\build_dfu_hello_world\mcuboot\zephyr> C:\L\tools\dfu-util-0.11-binaries\win64\dfu-util.exe -a 1 -D .\zephyr.bin
dfu-util 0.11

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2021 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to http://sourceforge.net/p/dfu-util/tickets/

Warning: Invalid DFU suffix signature
A valid DFU suffix will be required in a future dfu-util release
Opening DFU capable USB device...
Device ID 2fe3:0005
Device DFU version 0110
Claiming USB DFU (Run-Time) Interface...
Setting Alternate Interface zero...
Determining device status...
DFU state(0) = appIDLE, status(0) = No error condition is present
Device really in Run-Time Mode, send DFU detach request...
Device will detach and reattach...
Cannot open DFU device 2fe3:ffff found on devnum 7 (LIBUSB_ERROR_NOT_SUPPORTED)
Lost device after RESET?

Terminal Log

*** Booting Zephyr OS build v3.3.99-ncs1-1 ***
*** Booting Zephyr OS build v3.3.99-ncs1-1 ***
[00:00:00.000,671] <inf> main: This device supports USB DFU class.

Parents
  • Hello,

    Sorry for the very long response time. I went through your error logs.

    First of all, DFU-util is an external tool with which I am not that familiar. Is there any reason you don't want to use MCUmgr? I'm not sure about the time-out error you are seeing, but maybe it's because the firmware is slightly larger and it's not fitting inside the standard partition table, so it might be taking too long to download the firmware, thereby getting timed out. See this thread.

    I also recommend you create a ticket for the Zephyr community; see Zephyr Discord, as they have better knowledge on this.

    Kind Regards,

    Abhijith

Reply
  • Hello,

    Sorry for the very long response time. I went through your error logs.

    First of all, DFU-util is an external tool with which I am not that familiar. Is there any reason you don't want to use MCUmgr? I'm not sure about the time-out error you are seeing, but maybe it's because the firmware is slightly larger and it's not fitting inside the standard partition table, so it might be taking too long to download the firmware, thereby getting timed out. See this thread.

    I also recommend you create a ticket for the Zephyr community; see Zephyr Discord, as they have better knowledge on this.

    Kind Regards,

    Abhijith

Children
No Data
Related