Serial bootloader / DFU without softdevice and crypto

Hello DevZone,

On my board I have a nRF52810 and a nRF52840. I want to implement a serial bootloader for the nRF52810 and have the nRF52840 program it.

I have looked for example projects for DFU over serial and found only projects that have encryption built into the library.

Is there a example project available where I can use the bootloader / DFU without encryption? 

The nRF52810 does not use the softdevice, both devices are using the SDK 17.0.2, the nRF52840 does use the softdevice.

I'd preferably would use an example project but it should not be a problem if I have to write the bootloader / DFU myself.

Kind regards

Parents
  • The readme included with the DFUMaster_UART.zip explains what you need to do to generate and program the init file to the host.

    I am able to use nrfutil to generate all the necessary files and program my device but I want to be able to generate the init file in my nRF52840. I am currently trying to find out how the init file is structured by deciphering the python files on github but so far no success. 

    My goal is to have my nRF52840 to serve as a host and receive firmware for the nRF52810 over USB ( want to make a program that selects a hex file, converts it to a bin file and transmit that to the nRF52840, besides the bin file, information about the update shall also be provided)

    The nRF52840 when done with processing shal create the init file and initiate a firmware update. 

    But for this I have to know how the init file is created. 

    I have found this but it doesn't list what the size is of each member. 

    |- Image #{0}:
       |- Type: {1}
       |- Image file: {2}
       |- Init packet file: {3}
          |
          |- op_code: {4}
          |- signature_type: {5}
          |- signature (little-endian): {6}
          |
          |- fw_version: 0x{7:08X} ({7})
          |- hw_version 0x{8:08X} ({8})
          |- sd_req: {9}
          |- type: {10}
          |- sd_size: {11}
          |- bl_size: {12}
          |- app_size: {13}
          |
          |- hash_type: {14}
          |- hash (little-endian): {15}
          |
          |- boot_validation_type: {16}
          |- boot_validation_signature (little-endian): {17}
          |
          |- is_debug: {18}

    I would like an overview of the structure of the init file with word sizes so I can make a function to generate these files.

Reply
  • The readme included with the DFUMaster_UART.zip explains what you need to do to generate and program the init file to the host.

    I am able to use nrfutil to generate all the necessary files and program my device but I want to be able to generate the init file in my nRF52840. I am currently trying to find out how the init file is structured by deciphering the python files on github but so far no success. 

    My goal is to have my nRF52840 to serve as a host and receive firmware for the nRF52810 over USB ( want to make a program that selects a hex file, converts it to a bin file and transmit that to the nRF52840, besides the bin file, information about the update shall also be provided)

    The nRF52840 when done with processing shal create the init file and initiate a firmware update. 

    But for this I have to know how the init file is created. 

    I have found this but it doesn't list what the size is of each member. 

    |- Image #{0}:
       |- Type: {1}
       |- Image file: {2}
       |- Init packet file: {3}
          |
          |- op_code: {4}
          |- signature_type: {5}
          |- signature (little-endian): {6}
          |
          |- fw_version: 0x{7:08X} ({7})
          |- hw_version 0x{8:08X} ({8})
          |- sd_req: {9}
          |- type: {10}
          |- sd_size: {11}
          |- bl_size: {12}
          |- app_size: {13}
          |
          |- hash_type: {14}
          |- hash (little-endian): {15}
          |
          |- boot_validation_type: {16}
          |- boot_validation_signature (little-endian): {17}
          |
          |- is_debug: {18}

    I would like an overview of the structure of the init file with word sizes so I can make a function to generate these files.

Children
Related