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

Custom DFU bootloader

Hi,

I have a custom board with the nRF52840.

Is it possible to customize the DFU to be able to update the firmware through other interfaces than BLE or USB/UART?

I have a SD-card connected and would like to check for a flash image on the card and then update the firmware if there is an image.

Would that be possible?

Parents
  • Hi Morten,

    the Secure Bootloader in our nRF5 SDK is designed to be transport agnostic. so it should be able to create a custom transport layer, e.g. SPI, that interfaces with the bootloader. 

    I would recommend taking a look at the UART transport layer implementation in the nRF5_SDK_15.3.0_59ac345\examples\dfu\secure_bootloader\pca10056_uart example. Specifically, nrf_dfu_serial_uart.c and nrf_dfu_serial.c in the nRF5_SDK_15.3.0_59ac345\components\libraries\bootloader\serial_dfu folder.

    They show how the DFU_TRANSPORT_REGISTER macro to register the init and close functions used further up in the bootloader

    DFU_TRANSPORT_REGISTER(nrf_dfu_transport_t const uart_dfu_transport) =
    {
        .init_func  = uart_dfu_transport_init,
        .close_func = uart_dfu_transport_close,
    };

    Best regards

    Bjørn

Reply
  • Hi Morten,

    the Secure Bootloader in our nRF5 SDK is designed to be transport agnostic. so it should be able to create a custom transport layer, e.g. SPI, that interfaces with the bootloader. 

    I would recommend taking a look at the UART transport layer implementation in the nRF5_SDK_15.3.0_59ac345\examples\dfu\secure_bootloader\pca10056_uart example. Specifically, nrf_dfu_serial_uart.c and nrf_dfu_serial.c in the nRF5_SDK_15.3.0_59ac345\components\libraries\bootloader\serial_dfu folder.

    They show how the DFU_TRANSPORT_REGISTER macro to register the init and close functions used further up in the bootloader

    DFU_TRANSPORT_REGISTER(nrf_dfu_transport_t const uart_dfu_transport) =
    {
        .init_func  = uart_dfu_transport_init,
        .close_func = uart_dfu_transport_close,
    };

    Best regards

    Bjørn

Children
No Data
Related