Difference between reset and soft reboot
The SiPy freezes (REPL unresponsive) on this line after a soft reboot but works fine after a reset.
sd = SD()
@ssmith If you need a hard reset, you could connect a GPIO pin to Reset and pull that low. I have experienced the SD card issue too, which seems to require a pyhsical reset signal. But I dod not follow up that yet, whther it's a missimng software init of the SD card interface/driver, or a pysical reset signal missing.
I have the same feeling as you
i have reported issue about SD card reset few months ago
@ssmith Unless you find something specific, machine.reset() is as good as it can get. It seems to do everything software does after hard reset.
@robert-hh Is there a software way to do a hard reset? You say machine.reset() is close but we all know what close is good for.
@soren Soft reset clear mostly the micropython space. The underlying OS, the network stack and the hardware modules are not reset. For instance, when you have sockets open and do a soft reset, you'll get an error to use these sockets again. Definitely reliable is a hard reset by pulling the reset input low, e.g. by pushing the reset button. Close to that is using machine.reset().
If you are tracing errors and need a clear repeatable state, starting with a hard reset is recommended.
@pmulvey it is my experience, though haven't had it confirmed from anyone else, that soft reset will introduce all kinds of weird problems (compared to a hard reset) eg, for me - I get OS errors that different resources aren't available. Like ADC and Network.. I'm on a Lopy btw.