To keep it short: We (my company) want to integrate the Particle Electron / Photon (P1) into a commercial product. This product has an annual volume of 3000 units. We are however a bit concerned about reliability of those modules and the OTA-functionality of those particle modules. So I am having the following questions:
Anyone here with high volume experiences / anyone who developed a product based on particle
How reliable is the OTA-functionality - I remember some failed OTA during development forcing a flash via USB (which is unacceptable for our product)
Thanks @kennethlimcp for letting me know but what I really want is feedback from an actual customer. I am pretty sure that no one from sales@particle.io will say that there is something wrong with using particle. Their answer would be something like āYes of course you can do this! Thatās what particle is made for!ā - Well yes, definitely - but - I want real facts - not marketing speech from a sales guy ā¦
But what about actual customers? Is someone out there or does someone know someone that uses particle modules in large fleets? I really would like to hear some feedback !!!
Take those guys from resin.io for example - they are making such a good job with their community and are posting use-cases / case-studies and customer stories. Something that particle does not so I am really afraid that particle.io is not a good idea for a large scale fleet commercial product!
I really do not want to think this but thatās what comes in mind when reading posts of the community.
And even if I might contact sales@particle.io -> I really want some āliveā / in-field feedback from customers.
Iād like to see the lessons learnt that others might be able to factor in.
My two greatest fears are losing the APN setting or having the software lockup (has happened a few times to me) where I can only push new firmware by carefully timing a hardware reset with a new firmware push. (Tends to happen when over using delays, which I now avoid). The latter sadly doesnāt work when you put your device in a sealed enclosure with warranty stickers and they are located in remote areas!
Hmm. I understand. How many of those sealed devices have been deployed? And what percentage of that number of devices has significant failure so that it cannot be re-activated / fixed by OTA? Do you have such numbers? Would be great to hear!
Thankfully we havenāt deployed them yet - they are sitting ready to go next week after the firmware is made more robust.
At this stage - we were getting 25% failure rates on flash attempts. A lot of the time the devices said they were online, but were not. I suspected it was a issue with the connection keep alive time - but a whole lot of testing seemed to identify it wasnāt.
We have now put in more watchdog timers and I have noticed that at times I can still run a functionā¦ yet not be able to flashā¦ So I have created a system.reset() function which lets us do the restart OTA which enables a flash. That seems to work 99% of the time - but we are still testing away to make sure.
Edit: I sometimes suspect a few of our functions (even with their delays or timers built in) when doing Particle.publish must clip the publish rate and maybe get blockedā¦ but I donāt have a way to tell when a device of mine is blocked. Maybe that would be a great idea for the Particle dashboard to show when devices are blocked? At least would help with customer troubleshooting. We are lucky at the moment, I use a dashboard provided by Telstra (our local 4G provider) that lets us run a connection attempt all the way to the device at the network level to see if it is talking over TCP which helps identify if the device is at least powered on okay.
... means that a flash fails and that the device is dead and needs a wired re-flash? Or can you re-flash it using OTA?
I really appreciate your feedback @Cameron! Thanks!
BTW: We have tested 2 Electrons and 4 Photons in our industrial machines and those Electrons tend to have OTA flash issues ... more than those Photons ...
Hi Simon,
Garadget (2K+ units deployed in a year):
My biggest lesson was that one shouldnāt do copper pour around P1 - PCB antenna doesnāt really appreciate it. The specs show exclusion zone directly under antenna, but keep it minimal even outside of it.
Also:
There were no problems with mass OTA firmware deployment
look into timers if you need a delay
I wouldnāt keep APN on the device, you can manage that on the server end subscribing individual device IDs
TBH, I also have a Arduino Nano in front of me that I was contemplating to use as a āfall backā device that operates as an āofflineā version, similar capabilities - just minus a few online/SMS functions.
So Iād wire both devices in - but when the Particle device fails to kick in, in response to an input - the Micro would take over and shutdown the Particle via Relay to stop duplicate messages potentially coming out, take over - do itās thingā¦ then try to re-power the Electron.
However - at the moment that would require extensive logic circuits and PCB design - which Iām less confident about being highly reliable. That might be a different version of the product with a fail over design, but it would also double the cost of the product!
Great insights, are you able to explain a little more by what you mean here?
Is that in reference to declaring the 'telstra.external' equivalent?
How do you do that in a way that the device can communicate before getting the APN details?
Sure, I assumed that APN in your post refers to Apple Push Notifications. If thatās the case, Iād suggest keeping the subscription records (Device ID to multiple push notification endpoints) on the server especially considering that the delivery of the notifications involves the use of server anyway.
Thanks for your feedback / insight - Would love to hear more.
Bit frustrating however that no official of @particle replies to my post. Hey folks at Particle take a look at how those guys at resin.io manage such questions - at least one official is always answering in a very short time!
Hmm, that somehow contradicts this statement of yours earlier
But as said: Holidays may get in the way - however these guys are so awesome that they may even respond in their free time - let's see what the next hours bring
Yepp - ok - That's true. To be honest - I really love the Electron - When comparing the BOM to parts directly ordered via Mouser / Digikey - even with a higher volume you can't get even close to the Electrons Pricing and that's why it it so damn interesting for us.
But we are talking about integrating this unit into 3k+ Devices and using its STM32 MCU as the main controller of those units. I have to make sure that those things will last in the next three + four years. And any details on current software quality - is greatly appreciated.
Well and yes -> even officials from particle could bring in more details from actual customers, for example.
But yes we'll see - and sorry if being impolite ...
Each platform has its advantages and disadvantages.
However functionalities that have Particle platform is one of the best on the market.
The best is that the firmware is open source which helps to quickly and effectively detect and remove bugs together with the community.
It is based on Arduino / C / C ++, and also great is that there are many libraries that you can freely use.
There are other professional IoT platforms but none offers the opportunity for the rapid development of the product as Particle. Here you have the hardware, firmware and Cloud from one manufacturer.
However there is one problem, and that is the lack of support for TLS in case we want to connect with other Cloud services. When you enable this feature, Particle will definitely be a best platform for the development of IoT products.
When it comes to stability for Electron you can see code for fault tolerance example from @rickkas7.
There are webhooks that allow you to circumvent having to do heavy lifting on the device (as well as save on data). That said, there's work on TLS being done, so fingers crossed...