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:
- Erase the Flash: $ nrfjprog -f NRF52 --recover
- 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
- Flash the Bootloader settings: $ nrfjprog -f NRF52 --program ~/workspace/src/SDK/examples/dfu/secure_bootloader/pca10056_usb/armgcc/bl_settings.hex --sectorerase
- 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).
- $ time sudo nrfutil dfu usb_serial -pkg _build/ble_app_freertos_gcc_nrf52.zip -p /dev/ttyACM1 -b 115200 -fc 1
OR
- $ 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:
- On linux, only 115K BAUD seems to work and higher bauds even with HWFC gives error or the DFU hangs infinitely at 0%.
- 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?