Over in the KS comments, Eric said:
We are not using the AT firmware, we are using a custom firmware, so the reliability of our reset mechanism is in no way related and cannot corrupt the firmware. The board does not have a reset button, the reset pin is broken out, the board can be reset from the cloud, IDE, api or by external button.
Still, I assume you are using the Espressif SDK, which includes the low-level library the AT command code calls to do a reset. I just want to be sure there is NO CHANCE the Espressif reset code will be trusted until and unless it has been validated.
1. Is the Acorn reset code unrelated to the Espressif SDK?
2. Is the software reset mechanism precisely equivalent to a hardware reset? Or will a hardware reset still be needed?
I've built way too many systems where the EE folks felt a bullet-proof hardware reset was unnecessary, until I proved I could create tests that could completely lock up the system, and even corrupt the on-chip watchdog timer.
Of course, this was while testing under rather extreme conditions, in one case under a vacuum while in the beam-line of a heavy-ion accelerator at Brookhaven National Labs. And, yes, my code had to keep running until the silicon itself become radioactive. For another system, the tests required it keep running (or recover quickly) while being repeatedly struck by lightning. The world can get very nasty to electronics!
Ideally, the software reset mechanism should be precisely equivalent, at the hardware level, to cycling power. I've built systems where the reset mechanism was indeed a one-shot to a mosfet between the processor and VCC.
When an autonomous sensor is on its own, far away from a human who can press its reset button, if it can't reliably reset itself it will essentially be dead until someone visits it. A robust reset capability at least allows for the possibility of remote troubleshooting and update.