When I submit product firmware updates they seem to take an extraordinary long time to make it to my product (p1 based). In most cases I have to wait several hours to see at least a portion of the devices update. Generally all have updated after 24 (ish) hours. My devices are on 24/7, run with SYSTEM_THREAD(ENABLED) and SYSTEM_MODE(MANUAL). particle.process() is called very often and all devices are very responsive on their mqtt topics.
What can/should I do to make product firmware updates a lot more responsive (i.e., something in the neighborhood of minutes rather than a many hours)?
(running on 0.6.3)
It’s not currently possible, except for manually doing lock and flash.
The reason is that product firmware updates only occur when the device connects to the cloud. This can take anywhere from minutes to days, depending on how reliable the Photon/P1s Wi-Fi connection to the cloud is.
A real solution to this problem, along with several others relating to product firmware updates, is on the way but I don’t have a schedule for release yet.
@rickkas7 I see, that is quite a bummer (to say politely). So I’ve got to work around that then. Does a system.reset() call force the sort of reconnection that would trigger a firmware download? If so, I could implement a device reset command across mqtt which I can send wholesale to all devices with a firmware updated pending. Not ideal but better than undetermistic approach as is now.
Yes, on the Photon/P1 forcing a device reset, such as with System.reset(), is the best way to get an update immediately.
(it’s a little more complicated on the Electron.)
I just added a quickie reset command and tried it out but no luck. I verified that the device I reset had a pending firmware update, that the device actually did reset and came back online and that it connected to the particle cloud. No update was triggered. What now?
@joost — Jeff here, a product manager from Particle were you able to figure this out? One thing to check: if your devices are marked as development devices, they will be taken out of the flow of normal product firmware releases. That is, they won’t receive any product firmware updates.
@jeiden: nope, I have reset the units a few times. Each time the unit goes through its typical (short) reset period and comes online without starting the download. The units are responsive on the mqtt topics as expected. None of the units are set to developer mode.
I am a bit baffled that this is going on as it is. Product releases need to be predicable, I cannot tell customers, sales guys and field/customer service “I pressed the button, any day now”. I guess for hobbyists this is not a problem but for anyone creating (volume) production it is.
Shoot me the Device IDs and I’ll dig in to see what I can find.
@jeiden I did sent you IDs in a pm, any result? I am now almost 3 days in after a product firmware update … still waiting to see the update take place.
@joost — replied in DM. From my investigation, I believe these devices are running the version of firmware they are currently targeted to receive, and there isn’t an issue other than needing to reconfigure your product to release a new firmware.
Details in the DM.
Is there a good post or documentation somewhere on this "more complicated "tricking the electron into updating?