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

USB Secure DFU speed

I'm using USB based DFU on Windows and on Linux 18.04 LTS VM on Windows.

Platform: nRF52840-Preview-DK

SDK version: 15.0.0 (nRF5_SDK_15.0.0_a53641a)

example USB Secure DFU. Here are the steps I perform:

  1. Erase the Flash: $ nrfjprog -f NRF52 --recover
  2. Flash the softdevice ver 6.0.0: $ nrfjprog -f NRF52 --program ~/workspace/src/SDK/components/softdevice/s140/hex/s140_nrf52_6.0.0_softdevice.hex --sectorerase
  3. Flash the Bootloader settings: $ nrfjprog -f NRF52 --program ~/workspace/src/SDK/examples/dfu/secure_bootloader/pca10056_usb/armgcc/bl_settings.hex --sectorerase
  4. Flash the Bootloader: $ nrfjprog -f nrf52 --program ~/workspace/src/SDK/examples/dfu/secure_bootloader/pca10056_usb/armgcc/_build/nrf52840_xxaa.hex --sectoranduicrerase --reset

Perform DFU (Device is in bootloader mode at this point as LED 1 and LED 3 are lit up).

  1. $ time sudo nrfutil dfu usb_serial -pkg _build/ble_app_freertos_gcc_nrf52.zip -p /dev/ttyACM1 -b 115200 -fc 1

OR

  1. $ nrfutil dfu usb_serial -pkg "C:\Data\workspace\expt\ble_app_freertos_gcc_nrf52.zip" -p COM6 -b 1000000 -fc 1

I have two issues:

  1. On linux, only 115K BAUD seems to work and higher bauds even with HWFC gives error or the DFU hangs infinitely at 0%.
  2. In both cases the time taken to update is about same giving me a throughput in the range 118kbps to 130kbps which seems awfully slow for USB FS at 12Mbps.

I originally tried UART DFU but couldn't get it to work higher than 250000 BAUD

Is there anyway I can achieve higher speeds for DFU?

Related