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

Mesh functionality in Bootloader

Hello,

I am currently attempting to include mesh functionality in a bootloader so as to have it do DFU over mesh without the serial port. I keep getting errors when trying to initialize the mesh (an ASSERTION ERROR in the entry_validation() function). Could you please explain to me what the bare minimum requirements are to initialize the mesh stack.

I have already added all mesh files and adjusted the linker to fit the bootloader in the flash space. I just want to know exactly what it would take to successfully initialize the mesh.

Context:

3 Nordic Thingy52s

nRF SDK for mesh v2.2.0

nRF SDK 15.0.0 softdevice (v6.0.0)

Base bootloader code from nRF15s secure_bootloader in the dfu example.

  • I can carry out the light switch activity just fine. I am honestly not 100% sure on how the mesh bootloader works.

    I have read the documentation and I think I have a general idea but the specifics of DFU in bootloader mode escape me. The side by side DFU makes sense but is hard to modify to BLE as I do not know how the UART works.

    Currently, I have removed the UART parts of the ble_uart_coexist. I plan on keeping the mesh framework but adding the BLE_DFU functions around it and morphing the program into a bootloader of sorts. I have already stripped the UART code and my mesh is still initializing and provisioning. Now I am in the process of adding the BLE to receive the image. then I will send those packets over the mesh to be received by the other boards using the existing mesh_dfu code.

    I agree that an NRF52 DK would be ideal but am restricted to the Thingies for the time being.

    Thank you for the responses. I will let you know how this works out.

  • Hi , 

    I need to correct myself, you don't need to integrate the bootloader into your application. You can just use the bootloader as is. Just modify the application to forward the BLE message to the bootloader the same way as we do in serial_handler_openmesh_rx() and serial_handler_dfu_rx() in the DFU example (the DFU application, not the bootloader). 

    So your first step is to integrate the serial DFU feature into  your application. You still flash the original bootloader + your dfu app. 

    I would suggest to get familiar with the DFU application.

    I don't think it's a good idea to continue with the Thingy as it doesn't have serial interface , strongly suggest you to get hold of a nRF52 DK. Cost only $39 and will save you lots of time. 

Related