Cannot rollout firmware to product

Hi all and thanks in advance…

I have an issue using the products feature where I can’t rollout new firmware. I have a product with two boron’s assigned to it. The first is the one is the ‘field’ one and the second is on my desk that I’ve marked as development and flashed with my latest binary(including the product id and version). I’ve been following the instructions in the console>product_tools>rollout_firmware section of the docs, but it keeps telling me it needs at least one device with this version running when I know that I’ve already flashed the exact same binary to the development device.

I’m wondering if I’m flashing the development device right? there doesn’t seem to be an option on the console to flash an individual device, so I’m still flashing it from the IDE… is there something i’m missing here?

One thing I’ve tried is somewhere in the products menu there’s a checkbox to ‘allow devices that identify as this product’ on the firmware regardless of whether it’s assigned. I’ve checked that box (in Massachusetts my devices can identify as whatever they want) but it hasn’t helped at all.

I am also wondering if I need to wait for my development device to do another handshake after the flash? It sleeps for an hour or so between messages. Does the product get informed about the device when it gets flashed or on a handshake?

yet another thing… I saw another post where the guy just had to increment the version # and upload the binary again and it magically worked for him, this sadly didn’t work for me :(.

Thanks for any help with this. The device in the field sort of randomly boots when it gets power and it had like 3% last night so I wanna make use of it…

In order to roll out firmware to a fleet of devices it must be flashed to one device first. Unfortunately, a development device does not count toward that limit.

After uploading a firmware binary to the product, you must then select one device and use the Lock and Flash feature to set the firmware on that device. You can select your production device in your two-device case.

For only two devices you’d be done at this point, but if you had a whole fleet on devices once you did the Lock and Flash and confirm the newly flashed device worked, then you can set the product default and that firmware will roll out to all of the other non-development devices.

Rickkas, thanks a bunch, I misread that, I though it had to be a dev device to test the firmware on. It seems happy now that i’ve not marked it as such :). So by making it a dev device, you’re essentially taking it out of the product line? Why would I want to mark a device as development vs just not having it in a product? I dunno, I’m just glad it’s behaving.

A development device in a product is still a product member, so things like product web hooks work. However, it’s uncoupled from the firmware update mechanism for products. It also allows the the device owner to cloud flash it directly from the Web IDE and Particle workbench instead of having to do the two-step process of uploading the firmware, then lock and flash.

The requirement to lock and flash one device was to help prevent accidentally deploying a version to many devices without testing. However, that requirement predated the implementation of development devices. There’s been a discussion about removing the lock and flash once requirement in the future.

rick- this is good to know for the future I guess, right now our webhooks are ‘global’ but it will probably make sense to limit them to different device sets as we have more and more fielded devices…