This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Slow DFU using nrfutil

Hi,

I am preparing Windows desktop application which will use nrfutil for DFU of the products (containing secure dfu bootloader). I tested nrfutil v6.1.0, v6.0.1 and even very old v3.2.0 and in all cases update takes very long time - 100 kB firmware is updated in more than 10 minutes. If I do it via nRF Connect app on iPhone or Android, it tooks literally tens of seconds. I tried also nRF Connect for Windows and the situation is the same, also about 10 minutes. I tried it on nRF52832 DK, nRF52833 DK and nRF52840 DK, results are the same.

I tried to compile nrfutil from the sources with decreased conn interval in BLEGapConnParams (changed it to 7.5 both min and max) but it also didn't solve the problem.

Any ideas?

  • I've just tried update of the same file via nRF Connect on iOS and it took less then one minute to update. In the app I see that update is divided into 25 data objects and each object is transmitted every 2-3 seconds.

  • Yes, unfortunately, this seems to be as expected as nRF connect on desktop/nrfutil is not capable of sending as many BLE packets per connection event as iOS and Android is. I will report this internally and request that we try to remove this limitation.

  • Hello,

    Sorry for the delayed response. I have done some investigations on my own now, and I am starting to suspect it may have something to do with the USB stack on Windows. The reason for this is that I'm seeing much higher throughput when I test DFU on my Linux PC with the exact same script. Also, modifying the connection parameters in the script did not  have any noticeable impact on the transfer speed for windows ( implying it's not bottlnecked by the connection configuration). 

    Multiple DFU payload packets per connection event on Linux

    And less than one paylod packet per connection interval on Windows

    Do you have a PC running linux natively that you can try this on?

Related