My apologies if this is a trivial question, but have you tried forcing Listen Mode by clearing the WiFi Credentials??
I am a bit uncertain about the state of your buttons, you mention the user can get it into 'Safe Mode' all be it non-responsive. Can the user use the buttons to clear the WiFi Creds then? This should force the device into Listen mode.
Having said this, getting the device into Listen Mode might not resolve any bootloader or Operating system file issues? Of course if it does connect to WiFi successfully afterwards you can try OTA and re-flashing to see if it resolves any issues.
Well, my guess would be that if Clear WiFi Creds worked and you restart (or even without restart) the device it would have entered Listen Mode. So if you press+hold Setup for around 15 seconds, and you do not pick up the device from a mobile phone or some other device, I am fairly sure the Clear Credentials failed.
Seems likely to be the case then yes. Interrupts should work regardless of the state. I have interrupts calling ListenMode and they work regardless, that being said, IF your code is 'accessible'.
It seems DFU mode might to be your Hail Mary here. Do you have USB access?
I do but not necessarily with interrupting OS update, but I managed to completely confuse a Photon by removing power during some critical function. See this post.
I threw everything I had at it, but I have not been able to restore it even using the debug shield I would not expect such dire consequences from a failed OS update though. There are some really clever guys in here, maybe someone else can shed more light. I will dig a little deeper, if I find something I will let you know.
Do you have the RGB LED wired up as per the Datasheet? If so I my understanding of the data sheets is that I will indicate Listen Mode if the buttons are successful to enter Listen Mode or forcing Listen Mode by means or clearing credentials?
If it is not indicating Listen Mode, I think it is safe to assume Listen Mode is not working. If it was me, I would start by trying to re-flash all files from scratch.
There are links to P1 bootloader downloads should you require them.
We were unsuccessful in our attempt to wipe WiFi credentials while under normal operation and safe mode. We monitored networks available while performing these tests and and the SSID did not appear at any point.
I’ll hopefully be able to learn more once I receive the boards back.
Thanks for your help, I’ll keep this post up-to-date with anything I discover.
I cannot think of a way to give USB access to current users without granting access to our Particle credentials, which are a requirement for Particle CLI usage. Functions like particle flash --usb xxx.bin and particle keys doctor won't work without being logged in.
I wouldn't mind mind a scenario where the user connects their computer to the device via USB and I remote desktop their machine as a debugging proxy. However I still cannot think of a way to get their local machine to perform a particle flash --usb without logging in locally.
Are you aware of any secure methods to debug usb remotely?
My apologies for not being clear, this is what I meant yes. I learned not to assume that people do have access as I have dealt with someone not too log ago that deviced it was worth saving the ±$1.00 and not install USB ports on the PCB
Hhmmm.... interesting question, let me see what I can find out. There is a fantastic product called LogMeIn that we used extensively for all sorts of remote support. This should allow you to use the client PC as a gateway and transfer files back and forth and flash the devices accordingly. It has been a while since I have worked on this so I am not100% sure, but it might be an option if this is something you encounter frequently.
Have you played around with 'customers', 'authentication' or maybe even team options Particle Console? It might also be feasible adding this client's devices under a product and assign a team member that will then have access to their devices only. It should also then allow them to flash to those devices??
Which is why I suggested LMI Rescue (or of course something similar of course) When we used it, it would i.e give us access directly to the device connected to client PC from a local console without have to Remote Desktop to the clients pc. Was couple of years ago, so might have changed and was quite pricey to be honest, but worth it if you do a lot of remote support.