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

Dual Bootloader -- DFU (BLE) + UART?

Wondering if there are any example/reference implementations of a bootloader for the nRF51822 that support Device Firmware Update over both UART and BLE? We've got the BLE stuff working well, but would like to make sure that we've got UART for those that might not have a compatible BLE SmartPhone.

Thanks!

Parents
  • Hi Tim,

    We provided both solutions, UART and BLE. However, they are separated project and are not made to work together initially.

    You may have to modify the source code to allow end customer to choose which type of transportation they want to use, switching a button for example.

    There would be some work needed to combine the 2 projects, but I don't think it would be very difficult.

  • Hi Hung, I modified the dfu_transport.h, dfu_transport_serial.c, dfu_transport_ble.c and bootloader.c to have two transport options for DFU. I use the GPRGRET register to communicate the transport mode to bootloader through app. The serial DFU works great but the BLE/OTA DFU fails. Whenever I start the DFU through nRFToolbox app, the device enters the bootloader successfully but the update fails at 0% showing "Error: REMOTE DFU OPERATION FAILED". I have not modified the above files beside just changing the names of the functions (dfu_transport_update_start and dfu_transport_close) and added a #define for new GPREGRET pattern. I use SDK11.0 and nrf52832. Can you help me out?

Reply
  • Hi Hung, I modified the dfu_transport.h, dfu_transport_serial.c, dfu_transport_ble.c and bootloader.c to have two transport options for DFU. I use the GPRGRET register to communicate the transport mode to bootloader through app. The serial DFU works great but the BLE/OTA DFU fails. Whenever I start the DFU through nRFToolbox app, the device enters the bootloader successfully but the update fails at 0% showing "Error: REMOTE DFU OPERATION FAILED". I have not modified the above files beside just changing the names of the functions (dfu_transport_update_start and dfu_transport_close) and added a #define for new GPREGRET pattern. I use SDK11.0 and nrf52832. Can you help me out?

Children
No Data
Related