[Feature request:] System.resetDeep()

This request is for a system command that goes one step further than System.reset(), and also resets persistent memory for the application processor and the modem, that would normally require a long duration power off to achieve.

The purpose is to offer an option to product/service designers faced with finding solutions to avoid remotely located devices dropping off and being stuck offline for too long, evident on these forums over the years. Apart from OS/Cloud/modem related issues/optimizations, this also happens due to user applications/electronics as well.

In the case of Boron in some cases up to 30s powered off has been needed to bring it online again. So even an external watchdog is not enough to restore normal service. Delay electronics is needed as well.

It is again extra components and more importantly it is non trivial extra complexity to deal with, for something many product designers would hope to achieve by “simply” pulling the enable pin or reset pin briefly.

A typical example is issues with power leaking peripherals, preventing powering down the system for long enough to clear persistent memory, turning an always online device design into a more complicated exercise with some typical power saving device challenges.

Another example is that the external electronics for a power down needs to be powered from something else than what it is powering down, often with a different voltage not accepted by the module pins.

The requested functionality could perhaps also be achieved with an argument to the existing System.reset().

The major advantage is that the product designer can match a situational degree of reset, with the seriousness of the situation from an application specific perspective.

8 Likes

Hi there!

Please submit a ticket at support.particle.io so that we can file a request with engineering.

Thanks, Done.

1 Like