Buttonless USB DFU does not work with new USB stack

Hi,

I am trying to develop an application with USB DFU support using nRF Connect v3.2.2. I followed the lesson posted under Nordic Dev Academy on USB DFU.
The board that I am working with does not have a button, so I ran into some compile errors; however, I was able to get around the compile errors with this in my mcuboot.conf. 

# mcuboot.conf
CONFIG_LOG=n

CONFIG_MCUBOOT_SERIAL=y
CONFIG_UART_CONSOLE=n
CONFIG_SINGLE_APPLICATION_SLOT=y
CONFIG_MCUBOOT_INDICATION_LED=y
CONFIG_BOOT_SERIAL_CDC_ACM=y

CONFIG_PM_PARTITION_SIZE_MCUBOOT=0x11000
CONFIG_BOOT_MAX_IMG_SECTORS=512

CONFIG_BOOT_SERIAL_ENTRANCE_GPIO=n
CONFIG_BOOT_SERIAL_WAIT_FOR_DFU=y
CONFIG_BOOT_SERIAL_BOOT_MODE=n
CONFIG_BOOT_SERIAL_PIN_RESET=n

But I am running into a new issue with the device USB not showing up on the host computer. The only way that I can get the USB to show up on the host computer and have USB DFU is if I use the old USB stack. Is there anything that I might be missing when it comes to the configuration?

Parents
  • Hi Tom, 

    Could you try this on the l9_e4_sol project and add the following configs into sysbuild/mcuboot.conf?

    # Enable wait for DFU functionality
    CONFIG_BOOT_SERIAL_WAIT_FOR_DFU=y
    CONFIG_BOOT_SERIAL_WAIT_FOR_DFU_TIMEOUT=5000

    Regards,
    Amanda H.

  • Ok,

    After some hacking around today (I continued using the deprecated stack for a few months), I was able to get the new stack to work. The first thing that I did was upgrade the SDK from v3.2.2 to v3.3.1.

    The here is the mcuboot.overlay and mcuboot.conf for reference.

    / {
    	aliases {
    		mcuboot-led0 = &green_led;
    	};
    };
    
    &zephyr_udc0 {
    	cdc_acm_uart0: cdc_acm_uart0 {
    		compatible = "zephyr,cdc-acm-uart";
    	};
    };

    CONFIG_LOG=y
    CONFIG_MCUBOOT_LOG_LEVEL_WRN=y
    
    CONFIG_MCUBOOT_SERIAL=y
    CONFIG_UART_CONSOLE=n
    CONFIG_SINGLE_APPLICATION_SLOT=n
    CONFIG_MCUBOOT_INDICATION_LED=y
    CONFIG_BOOT_SERIAL_CDC_ACM=y
    
    CONFIG_PM_PARTITION_SIZE_MCUBOOT=0x11000
    CONFIG_BOOT_MAX_IMG_SECTORS=512
    
    CONFIG_BOOT_SERIAL_ENTRANCE_GPIO=n
    CONFIG_BOOT_SERIAL_NO_APPLICATION=y

    Regards,

    Tom

Reply
  • Ok,

    After some hacking around today (I continued using the deprecated stack for a few months), I was able to get the new stack to work. The first thing that I did was upgrade the SDK from v3.2.2 to v3.3.1.

    The here is the mcuboot.overlay and mcuboot.conf for reference.

    / {
    	aliases {
    		mcuboot-led0 = &green_led;
    	};
    };
    
    &zephyr_udc0 {
    	cdc_acm_uart0: cdc_acm_uart0 {
    		compatible = "zephyr,cdc-acm-uart";
    	};
    };

    CONFIG_LOG=y
    CONFIG_MCUBOOT_LOG_LEVEL_WRN=y
    
    CONFIG_MCUBOOT_SERIAL=y
    CONFIG_UART_CONSOLE=n
    CONFIG_SINGLE_APPLICATION_SLOT=n
    CONFIG_MCUBOOT_INDICATION_LED=y
    CONFIG_BOOT_SERIAL_CDC_ACM=y
    
    CONFIG_PM_PARTITION_SIZE_MCUBOOT=0x11000
    CONFIG_BOOT_MAX_IMG_SECTORS=512
    
    CONFIG_BOOT_SERIAL_ENTRANCE_GPIO=n
    CONFIG_BOOT_SERIAL_NO_APPLICATION=y

    Regards,

    Tom

Children
No Data
Related