Skip to content

Enabling both CDCs on ESP32S2 boot loops and prevents safe mode #4986

@todbot

Description

@todbot

CircuitPython version

Adafruit CircuitPython 7.0.0-alpha.4-15-g22e8a5058 on 2021-07-11; Adafruit FunHouse with ESP32S2

Code/REPL

# boot.py
import usb_midi
usb_midi.disable() 
print("disable MIDI")
import usb_hid
usb_hid.disable()
print("disable HID")
import usb_cdc
usb_cdc.enable(console=True, data=True)
print("enable CDC console & data")

Behavior

On reset or power up, board goes into boot loop. No way to escape it, without esptool.py --erase_flash.
On FunHouse, the dotstar LEDs briefly flash purple and the display briefly starts to show boot_out.txt contents, as seen in this video:
https://user-images.githubusercontent.com/274093/125208434-1eaad680-e247-11eb-96fd-d37b1286403d.mp4

Description

FunHouse CircuitPython installation was performed as described here.
Entire process to recreate bug:

  1. Install TinyUSB UF2 bootloader: esptool.py --port /dev/tty.usbmodem01 write_flash 0x0 funhouse_tinyuf2_combo.bin (from here)
  2. Double-click to UF2 bootloader, copy over latest FunHouse CP7 alpha UF2 from S3
  3. Create boot.py with above script
  4. Reset board, observe boot loop
  5. Can double-tap to get back to UF2 bootloader, but reinstalling CP still results in boot loop
  6. Only recourse is: esptool.py --port /dev/tty.usbmodem01 erase_flash and repeat from step (1)

Submitted as new bug from #4746 (comment)

Additional information

No response

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions