Asynchronous firmware update

I apologize in advance for this naive question, but I’m unable to find a good answer in the docs/forum.

My Boron (or Photon) sleeps for periods of time, then awakens to assess sensor data, make decisions, and then sleeps again. It is only awake fo 1-3 minutes (sometimes less).

What I would to do for firmware updates is push a new binary to the cloud, and when the device wakes up, it should update with the new code. I do not want to wait by my laptop and hope to catch the device waking up while frantically pushing out new code.

I’m sure there is a way to do this, but can’t figure it out. I did implement the firmwareUpdate state (AN020; AN029 Wake publish sleep example | Datasheets | Particle) but this does not seem to work. I’ve tried pushing firmware both from the Web IDE and from CLI; neither work.

Thanks so much - David

The most straight forward method would be to create a product (even with only one device) and take advantage of exactly that feature.
You can upload a firmware binary to the cloud and the cloud will do the rest once the device comes online.

1 Like

Thanks so much. How do I do this?

Do I mark my device ‘not for development’ by:

$ curl -X PUT https://api.particle.io/v1/products/:productIdOrSlug/devices/12345
-d development=false
-d access_token=123abc

…or is there a different/better method?

Have you already created a product (e.g. at console.particle.io/products)?
Have you at least once flashed a firmware with the respective PRODUCT_ID() and PRODUCT_VERSION() settings?
If so, you should find your device in that product and there you can go to the device page where you should find this
image

Thanks so much. this is very helpful.

I will contact Sales to check on costs.

David