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.

Parents
  • Hi,

    Could you explain what exactly you want to achieve ? How do your devices operate ? 

    Do you plan to include the mesh stack for just doing DFU not for normal operation ? Note that for a mesh network to operate, you would need to set all your devices to bootloader/mesh mode. How do you convert the data you transfer in Mesh to the image for the bootloader to replace the application image ? 

    Be aware that the mesh stack would occupies roughly 100kB of the flash. 

  • I hope to create a bootloader that is able to receive an OTA DFU and update all nodes in the mesh network (similar to what is done by the serial DFU example in the mesh SDK except the initial node receives the DFU zip file through BLE instead of serial port). The mesh stack in the bootloader would just be for doing DFU.

    I planned on sending the image packets to the other nodes as they were being updated on the initial node (every time it begins writing a page it sends it to the other nodes to write and only requests the next page upon confirmation from the other mesh nodes).

    Currently space  is not a major concern as I want to test if this OTA DFU mesh can be done. I am however failing to initialize the mesh on any individual device.

  • OK, so it's actually the opposite. You have a mesh network and you want to do DFU but to transfer the initial image via BLE instead of via Serial. 

    We don't have an example for that, but I would suggest you go from the original Mesh bootloader and add the BLE functionality to it to receive image instead of via serial. It's easier than modify the BLE bootloader to add mesh in, in my opinion. 

    Due to limited resource, I'm afraid that beside the documentation, and the source code, we can't really make an example code for you at this moment. 

Reply
  • OK, so it's actually the opposite. You have a mesh network and you want to do DFU but to transfer the initial image via BLE instead of via Serial. 

    We don't have an example for that, but I would suggest you go from the original Mesh bootloader and add the BLE functionality to it to receive image instead of via serial. It's easier than modify the BLE bootloader to add mesh in, in my opinion. 

    Due to limited resource, I'm afraid that beside the documentation, and the source code, we can't really make an example code for you at this moment. 

Children
Related