I recently added Mesh DFU support to a project that I'm working on but it's extremely slow. It will take at least 1 hour to update the network under ideal conditions but I'm aiming for an update that will complete in less than 10 minutes.
I can think of only 2 feasible ways for me to achieve my goal of a sub-10 minute update.
The first is to increase the rate at which the DFU packets are sent. Right now, I send a DFU packet ever 2 seconds. I've tried faster rates but that usually leads to lots of lost packets.
The second method to achieve my goal is to decrease the firmware size. I've applied some optimizations and stripped out unnecessary code, but my firmware is still pretty large (90+ kB). I did notice that most of the the firmware consists of SDK-included libraries that I never touch. All of the code that I wrote (and will likely ever modify) is less than 10 kB.
So here's my question. What would it take to only push portions of the firmware via Mesh DFU?