← index #8594PR #4752
Related · medium · value 0.744
QUERY · ISSUE

Enable factory reset boot mode without a user switch

openby cdwilsonopened 2022-04-29updated 2026-03-19
enhancement

The documentation at https://docs.micropython.org/en/latest/pyboard/general.html describes a "filesystem reset" boot mode which can be triggered by holding down the user switch during the power up boot sequence:

filesystem reset: resets the flash filesystem to its factory state, then boots in safe mode.

For supported MicroPython boards that do not have a user switch (e.g. SparkFun MicroMod STM32 Processor), is there any way to trigger a "filesystem reset" from software?

If not, would it be possible to add a new machine.factory_reset() function to enable this? (similar to the machine.reset() and machine.soft_reset() functions described in https://docs.micropython.org/en/latest/library/machine.html?highlight=reset#machine.reset)

For the sake of completeness, it would also be nice to support resetting into the "safe boot" boot mode from software as well through something like a machine.safe_reset() function.

CANDIDATE · PULL REQUEST

stm32: Move factory reset files and code to separate source file.

closedby dpgeorgeopened 2019-05-06updated 2019-05-07

The new function factory_reset_make_files() populates the given filesystem with the default factory files. It is defined with weak linkage so it can be overridden by a board.

This commit also brings some minor user-facing changes:

  • boot.py is now no longer created unconditionally if it doesn't exist, it is now only created when the filesystem is formatted and the other files are populated (so, before, if the user deleted boot.py it would be recreated at next boot; now it won't be).

  • pybcdc.inf and README.txt are only created if the board has USB, because they only really make sense if the filesystem is exposed via USB.

Keyboard

j / / n
next pair
k / / p
previous pair
1 / / h
show query pane
2 / / l
show candidate pane
c
copy suggested comment
r
toggle reasoning
g i
go to index
?
show this help
esc
close overlays

press ? or esc to close

copied