Deliver an OTA update to device in Ultra_Low_Power

I am attempting to push an OTA update to a device that goes into a 15 minute ultra low sleep mode before waking, operating for 15-20 seconds and resuming sleep.

I have a similar device on my workbench, which I am attempting to test the same update with. Here are my attempts:

  • I have not been able to time an OTA update (through Visual Studio), for when the brief time the device is awake.
    -I have not had success using the Force OTA update toggle on the console before attempting the update through Visual Studio
    -I have not been able to upload my binary for a product wide update. The upload mechanism requires a productID(), but I get an error compiling when I manually label the productID in my .cpp.

Any ideas from the community for how to either 1) get the update to run from Visual Studio or 2) how to correctly log the productID?

BTW, in my new update I have a few lines of code to now check for an OTA update, and pause until update is complete before running the rest of the code.

It will be very difficult to time a non-product OTA update with that small of a window.

  • You need to use a product and use the product OTA feature
  • Make sure at least once a day you wait at least 8 seconds after connecting to the cloud and check and see if an OTA has started. If it has, do not go to sleep. The device will reset after the OTA.

You should not have a PRODUCT_ID, despite what the error says. You need to have a PRODUCT_VERSION. Start with

PRODUCT_VERSION(1);

Thanks @rickkas7 for recommending the product OTA feature and clarifying the product version requirement. I also removed the productID.

When I tried uploading my binary by going to my product-> firmware upload, I got this error. So a bit confused about the requirement (or not) for product ID.

Yes, that error message in the console is wrong. It should say PRODUCT_VERSION not product id.

Thanks so much, update went through.