I am looking at the stm32 ota example on github which is very close to one of our applications. I am wondering does the additional stm32 firmware need to be sent every time there is a firmware release, considering that some modules may have already received the firmware and don't need it?
For instance, if I am doing firmware releases every week or two and don't change my stm32 firmware, it wouldn't really need to be sent along with the release, except to new devices being deployed. I can see how I can ignore unnecessary use of the asset once its received by the device, but it might be preferable if the asset could be optionally excluded from being sent as part of the package if it was previously received and not changed in the latest release. This would have to occur at the device level, but I would imagine it would be complex to implement.
Does adding assets have any additional data costs?
There is no extra charge for asset downloads. Unless you are going crazy sending a lot of firmware updates, you should be able to do so within the normal cellular data limits.
I am pretty sure that each asset is identified by its name, product ID, and SHA-256 hash. If the binary is unchanged from a previous firmware version, it should not be downloaded again so there will be no additional data usage.
@radek, if you choose not to include STM32 firmware in a future FW release through Particle, your handle assets hook will simply not fire since the asset will not be sent down to the device.
Each bundle is treated separately and uniquely by the platform, as in we are not accumulating assets over time and sending them down with each release. If you want to update the STM32, include the new firmware in the bundle. If you wish to leave it as is and update the particle device, release firmware without including STM32 firmware in the bundle. It should be that easy!