Device specific calibration settings stored in the cloud

I am working with a large number of devices. Once each device is deployed into the field I need to update device specific calibration values. I want the calibration values to be stored in the cloud and each device to look up its specific calibration value without having to change firmware each time.
Any ideas on how this can be achieved?

The Particle cloud doesn’t have a native mechanism to store data for retrieval when the device starts. Here are some ideas for alternative options:

  1. Manually Particle.publish() the calibration data (from a custom app or console.particle.io) to the device. Have the device store that calibration in EEPROM and retrieve it from EEPROM each time it starts. If calibration data ever changes, you’ll have to do another Particle.Publish() to update the calibration on the device.

  2. Store your data in another cloud (i.e. AWS, Azure, Google Sheets, Losant, etc.) Whenever the device boots, you could query the other cloud service for the appropriate data (either directly or using a webhook). This would also work if you hosted your own server and wrote a custom REST API (fairly easy to do but you incur the cost of running and maintaining that server.)

  3. Create a “home-base device” or “master” with an SD Card that has all the calibration data. Whenever a field device comes online, it will do a Particle.publish() and the master device will respond with the appropriate calibration data. You could periodically pull the SD card, change the calibration data and re-insert into the master device.

2 Likes

Thank you. I am going to try store the data in another cloud

1 Like