Migrating OTA updates

Hi,

My company has a product that recently started experiencing issues with the OTA update feature. It looks like Particle is moving towards Intellegent Firmware Releases, but only to Enterprise-level customers. As a non-Enterprise level customer this has broken the OTA update method we have relied on. I’m hoping that someone can help me troubleshoot a transition plan to provide OTA updates to our customers

What we have been doing:

  • Running Device OS v1.4.4
  • A user interacts with our iot product to select an “Update Firmware” option. When they select this, the following is run to allow the device to accept updates and trigger a handshake event.
System.enableUpdates();
System.enableReset();
Particle.publish("spark/device/session/end", "");
System.enterSafeMode();

What we have tried
This no longer works, so we’re trying to update a particle device from our custom web app. This guide indicates that it is possible to flash firmware binaries from the Cloud API (but only for Development devices?).

$ curl -X PUT "https://api.particle.io/v1/devices/0123456789abcdef01234567?access_token=1234" \
       -F file=@my-firmware-app.bin \
       -F file_type=binary

I can’t get this to work, even for flagged Development devices. I get a cryptic "{\"error\":\"Nothing to do?\"}" response. I expand on this in this post

What am I missing? Is there an easier way to approach this migration?

1 Like

To put the above more simply, how can I trigger a customer’s device (while it is running) to end session to reconnect and receive firmware update events?

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.