CircuitPython version and board name
Adafruit CircuitPython 10.2.0-rc.0 on 2026-04-16; Adafruit Feather ESP32-S2 TFT with ESP32S2
Adafruit CircuitPython 10.2.0-rc.0 on 2026-04-16; TinyS2 with ESP32S
Adafruit CircuitPython 10.2.0-rc.0 on 2026-04-16; Adafruit Feather ESP32S3 4MB Flash 2MB PSRAM with ESP32S3
Code/REPL
import microcontroller
microcontroller.reset()
Behavior
Behavior
Upon execution the board resets and then hangs at the boot.py execution before code.py is executed. The last thing shown on the TFT display is 'boot.py output:'. Subsequently neither reset nor a power cycle will get the board past the 'boot.py output' line. No output whatsoever shows on the USB serial console nor is any Control-C or Carriage Return input acknowledged.
Prerequisites
Brand new install with the following files:
boot.py
import storage
storage.disable_usb_drive()
settings.toml
# To auto-connect to Wi-Fi
CIRCUITPY_WIFI_SSID="MySSID"
CIRCUITPY_WIFI_PASSWORD="SSIDPass"
# To enable modifying files from the web. Change this too!
# Leave the User field blank when you type the password into the browser.
CIRCUITPY_WEB_API_PASSWORD="mypass"
CIRCUITPY_WEB_API_PORT=80
Description
This is a bug since 10.1.4 since this configuration just loops as expected under 10.1.4 resetting the board over and over and can be interrupted with a control-c via USB serial or via reset without hanging the board.
- I tested with two different brands of Access Points to ensure my TP-Link main AP was not causing this
- I tried without WiFi and WebWorkflow settings.toml entries and the bug doesn't happen
- I believe the storage.disable_usb_drive() is the bigger culprit because one has to restart the board from safe mode without that to get it back into working state.
- Otherwise the system continues to stop at the 'boot.py output:' line and be unresponsive.
Additional information
To ensure that a 'normal program' causes the problem I wrote a program that reads a BMP581's temperature and prints to console in a loop. After a minute or two of readings the loop calls microcontroller.reset() and the board is put into the hanged state described in this bug report. As before safe mode is required and a reset with the boot.py disabled is required to return to normal operation.
Originally logged with the Watchdog reset issue #10054 but this issue was only exposed by the end of that issue's test code (the microcontroller.reset() to undo/reset the #10054 bug).
CircuitPython version and board name
Code/REPL
Behavior
Behavior
Upon execution the board resets and then hangs at the boot.py execution before code.py is executed. The last thing shown on the TFT display is 'boot.py output:'. Subsequently neither reset nor a power cycle will get the board past the 'boot.py output' line. No output whatsoever shows on the USB serial console nor is any Control-C or Carriage Return input acknowledged.
Prerequisites
Brand new install with the following files:
boot.py
settings.toml
Description
This is a bug since 10.1.4 since this configuration just loops as expected under 10.1.4 resetting the board over and over and can be interrupted with a control-c via USB serial or via reset without hanging the board.
Additional information
To ensure that a 'normal program' causes the problem I wrote a program that reads a BMP581's temperature and prints to console in a loop. After a minute or two of readings the loop calls microcontroller.reset() and the board is put into the hanged state described in this bug report. As before safe mode is required and a reset with the boot.py disabled is required to return to normal operation.
Originally logged with the Watchdog reset issue #10054 but this issue was only exposed by the end of that issue's test code (the microcontroller.reset() to undo/reset the #10054 bug).