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

IS mass firmware up-gradation via ble ota possible?

Hello, I want to upgrade all my ble devices (15000 beacons ) at the same time using OTA dfu. Is that possible? If yes how can I do that? Thanks,

  • Dear newbie, no such solution exists and it has very good reason: most of BLE capable HW and stacks support only handful of connections and these connections are always peer-to-peer so by making them in parallel you gain very little (or nothing). It would be theoretically possible to just broadcast the FW in advertisement packets which can be visible by any device but that provides no guarantee of the transmission and no flow control. So it would be possible that one "beacon" would be broadcasting series (thousands and thousands) of DFU packets with numbers and each listener would be able to collect them after some time but very unlikely that it would capture it on a first round. Probably several series would be necessary and statistically you can have devices in your pool which even after 100+ broadcasted DFU series won't have full image to perform autonomous bootloading. So there are very good practical reasons why in cases like this you rather put thousands of devices back to programming machine/jig and flash them over JTAG/SWD or similar bootloader...

  • It is definitly possible to implement this and Nordic's implementation of the Bluetooth Mesh includes a proprietary mesh DFU feature that allows you to perform mass firmware updates.

    The firmware update packets are flooded across the mesh, and all devices in the network are updated at the same time.

    You can find the source code for the Mesh Bootloader in the nRF5 SDK for Bluetooth Mesh, see this page for more information.

Related