Hello,
I have successfully integrated the UART secure_bootloader from SDK 17 with my project. In the field, firmware updates will have to be performed using the FT2232H. I have no choice in this. I started out just testing the example on the nRF52840 DK, using the onboard JLink as the USB->Uart converter. That worked. Now I am using a bus pirate with an FT232 to perform DFU on a particle boron. I got that working as well, with one hitch.
The device will successfully update, but it takes about 10 seconds to do so and I see the following output:
nrfutil dfu serial -pkg _build/app_dfu_package.zip -p /dev/ttyUSB0 -fc 0 [------------------------------------] 0%2021-09-15 12:25:09,369 No trigger interface found for device with serial number: AB0KOIJS, Product ID: 0x6001 and Vendor ID: 0x403 [####################################] 100% Device programmed.
I have looked in dfu_trigger.py in the pc-nrfutil Github repository and seen that this is a "no_trigger_exception". Specifically, it is being raised because the expression "if dfu_iface is None" is evaluating to True. In my log file I can see that nrfutil is spending 5 seconds waiting for my device to be in bootloader mode even though it is already in bootloader mode. Then it eventually works anyways.
What can I do to make nrfutil work with my FTDI device and would this speed up DFU? I am happy it's working in spite of this but I would like it to be faster so that I can set the DFU timeout lower. Can I add the VID/PID of my FTDI device so that it will be properly recognized? Thank you.