DFU Triggler Lib Fails on Win 10

Hi,

We have implemented the DFU Trigger Library on nRF52840 from nRF SDK 15.3 on Application FW. Application is flashed on the device along with Secure Bootloader using example from nRF SDK 15.3.0 and SoftDevice S140 v6.1.1. We have tried to perform USB DFU using nrfutil and even though implementation is working on Ubuntu 20.04, on Windows 10 it is crashing on executing the USB trigger. The behaviour is the same in nRF52840-Dongle, as in nRF52840-DK Preview 0.11.0.

The error message we receive is:

2022-02-23 13:27:44,196 DFU trigger: Could not find trigger interface for device with serial number EB4F69EF8758. 1/1 devices with same VID/PID were missing a trigger interface.
2022-02-23 13:27:44,196 No trigger interface found for device with serial number: EB4F69EF8758, Product ID: 0x521B and Vendor ID: 0x1915

We have also tried the example nRF_SDK_15_3/examples/connectivity/ble_connectivity/pca10059/ser_s140_usb_hci/ses/ble_connectivity_s140_usb_hci_pca10059 and the behavior is alike. It's working on Ubuntu and not on Windows.

Version of nrfutil is 6.1.3, python 3.8.10 and nrfutil is installed through

pip install nrfutil

It looks like it's the problem with Windows libraries/drivers, because we have tried on two computers with Windows. We have also tried on the same computer that has dualboot with Windows 10 and Linux and still Windows isn't working.

Command unsed for performing the DFU is:

nrfutil dfu usb-serial -p COMx -pkg pkg.zip

where x is number of COM port. On Windows we used PowerShell run as admin.

Command used to generate packages is:

nrfutil pkg generate --application app.hex --application-version 0 --hw-version 52 --sd-req 0x00 --softdevice s140_nrf52_6.1.1_softdevice.hex --sd-id 0xB6 --key-file key.pem pkg.zip

For generating the packages we have used our generated keys and signed the images.

Manually pressing the Reset button is entering the Bootloader in DFU mode. We're suspecting that application nrfutil is not detecting the USB DFU trigger on interface. After debugging nrfutil python code it turned out that function select_device() in DFUTrigger call in line:

handle = nordic_device.open()

is throwing exception:

self.usb1.USBErrorNotFound

We have looked at every solution on the internet and nothing seems to work.

Thank you in advance for you support.

Kind regards,

Kacper and Team.

Parents Reply Children
No Data
Related