I'm updating our bluetooth firmware and boot loader over the air from iOS and android devices. I've modified the nordic supplied update code (IOS-nRF-Toolbox project) to support updating multiple devices at once. The process works for 2-3 devices, but once you get above 2-3, if a packet gets dropped or a response gets lost, there is no mechanism to retry a missed packet. If I set a timeout to retry sending packets after getting no response, then I get a 100304 (Data Size Exceeds) error at the end of the firmware update. Any ideas what areas to look in or what needs to be done to the firmware to fix this? Is there some way to query and see whether a packet that I think was dropped was actually received? I suspect the firmware doesn't support receiving the same chunk of data twice, and so it ends up writing a resent packet twice, and the file ends up being too large.