It would be awesome if there was a way to host our latest firmware on a website and then instruct our customers to plug their device into thier computer, go to a certain website, and then click update. Then the device could be flashed with the latest firmwae and Device OS.
Do you think something like this could be made?
Seeing as the API is open, and flashing endpoints are available, I wouldn’t know why not. You just need to be able to match the customer with their device, and after having confirmed, make the right calls.
Does it have to be over the wire? That would make things more difficult, rather than easier, I think.
Another approach is to use the Particle Console, build your devices as products and use all that existing infrastructure to download OTA new firmware. If you want a customer pull driven approach then on your website all you would need to do is have the customer flag that they want a software update to happen - this could then call a cloud function on devices to call
System.enableUpdates(); The default setting on restart would be
System.disableUpdates(). There are other threads where the issues of managing the update process (so as to not interrupt a critical control process) and also ensuring the device updates (because the auto update process is triggered when the connection session is renewed). Also, have a look at the IoT Rules Engine - there is a tutorial there about using the Rules Engine to manage this sort of scenario.