We recently advised a Bitaxe user to power-cycle his board for a clean state, which got me thinking about the reset story on EmberOne.
The hash chip chain is easy: it lives behind a switched power domain and resets cleanly. The regulator for that domain doesn't hard-reset, though, so firmware must fully tear down and reinitialize its state.
The bigger gap is the 3V3 bus. The RP2040, flash, and temperature sensors all live here, and the only way to hard-reset them today is to pull the USB cable. The RP2040 itself can be warm-reset via the pushbutton or a software command, but the flash and temperature sensors have no reset path at all.
One approach would be to use a 5V-to-3.3V regulator with an enable pin and add a watchdog that can pull enable low to collapse the entire 3V3 bus. Connect the existing reset pushbutton to the watchdog's manual reset input, and give the RP2040 a GPIO to trigger it as well. This would give three reset paths: watchdog timeout, pushbutton, and firmware-initiated.
The LED is the one exception. It sits on the 5V bus, and adding a load switch for a single device seems unreasonable. Firmware should just clear it at boot.
The reset story on future Bitaxes (like Bonanza) deserves a thorough look too.
Hardware version: v5 (9f75f0c)
We recently advised a Bitaxe user to power-cycle his board for a clean state, which got me thinking about the reset story on EmberOne.
The hash chip chain is easy: it lives behind a switched power domain and resets cleanly. The regulator for that domain doesn't hard-reset, though, so firmware must fully tear down and reinitialize its state.
The bigger gap is the 3V3 bus. The RP2040, flash, and temperature sensors all live here, and the only way to hard-reset them today is to pull the USB cable. The RP2040 itself can be warm-reset via the pushbutton or a software command, but the flash and temperature sensors have no reset path at all.
One approach would be to use a 5V-to-3.3V regulator with an enable pin and add a watchdog that can pull enable low to collapse the entire 3V3 bus. Connect the existing reset pushbutton to the watchdog's manual reset input, and give the RP2040 a GPIO to trigger it as well. This would give three reset paths: watchdog timeout, pushbutton, and firmware-initiated.
The LED is the one exception. It sits on the 5V bus, and adding a load switch for a single device seems unreasonable. Firmware should just clear it at boot.
The reset story on future Bitaxes (like Bonanza) deserves a thorough look too.
Hardware version: v5 (9f75f0c)