I'm having a bit of trouble flashing multiple devices at once. I have created a product in Particle and now I'm looking to compile my project in workbench for this specific product.
I'd then like to upload this binary to the particle console where it says upload product firmware. After that step I'm looking to flash all devices the firmware at once.
Complete that step to upload the firmware. The firmware must contain something like this, and the version number must match the form in the console.
PRODUCT_VERSION(10);
A firmware version must be running on at least one device before releasing to your fleet. You can do this one of two ways:
Mark a device as a developer device, claim it to your account, and flash it directly from Workbench. This is the recommended development flow.
View your product device list, edit a single device, and lock the version of firmware on that device.
Once one device has come online with that version of the firmware, you can go back into the firmware tab and release version, either to all devices (product default) or a subset of devices (device group).
This is very helpful ! Just a couple more questions.
Letβs say the product id is β12345β.
What would be the format for adding this to the line of code.
12345_VERSION(10);
Or
PRODUCT(12345)_VERSION(10);
In addition where is the recommended place to add this code?
Once this code above is added can we then do the regular steps
A. configure for a device ? select our target (5.0.1) , device type (BSOM) , deviceID (blank)
B. then I would do a local particle compile to generate an updated binary ?
There use to be a PRODUCT_ID(12345) macro, but it is no longer used in Device OS 4.0 or later.
If you are create a product for an Electron/E-Series, P1, or Photon 1, it would be:
PRODUCT_VERSION(10);
PRODUCT_ID(12345); // Device OS 3.x and earlier only!
The reason you don't set the product ID in the firmware anymore is because it's set when you add the device to the product in the console, so there's no reason to set it in both places.
You can do a local compile or a cloud compile to generate the binary. If you do a local compile, the binary will be in the target directory in your project (a few levels in). If you cloud compile, the .bin file will be at the top of your project, where the project.properties file is.