We have a product based on the Argon board. We added some mechanisms to trigger an OTA update only when the end user decides to do it (by using System.disableUpdates() in Setup, unless a special flag has been set in EEPROM).
When there are updates pending, we let the end user know, and if they decide to update, we set a flag in EEPROM, and we call System.reset(). When this happens, it all looks OK: the Argon reboots (and we delete the EEPROM flag but we do not call disableUpdates), connects to the cloud, the LED starts flashing magenta, the console shows:
spark/flash/status started
After a while (*) it shows:
spark/flash/status success
then the device reboots (by itself, since we are running almost an empty loop in this case), but it comes up with the old firmware.
(*) The time that it takes for the device to signal flash successful is sometimes very short (2 seconds), and this is for a program that is about 240KB long.
I’m using device OS 4.0.2
Any ideas of what could be causing this behavior? It looks like the update is failing, so it keeps the old version, but there is no indication of the failure, or its cause.