Skip to content

RP2040 boots into the RPI-RP2 volume after brownout #9605

Open
@carledwards

Description

@carledwards

CircuitPython version

Adafruit CircuitPython 9.1.3 on 2024-08-29; Adafruit Feather RP2040 with rp2040 Board ID:adafruit_feather_rp2040

Code/REPL

import time
import board
import neopixel
import microcontroller

pixel = neopixel.NeoPixel(board.NEOPIXEL, 1)

pixel.brightness = 0.3

print('reset reason: ' + str(microcontroller.cpu.reset_reason))

while True:
    pixel.fill((255, 0, 0))
    time.sleep(0.5)
    pixel.fill((0, 255, 0))
    time.sleep(0.5)
    pixel.fill((0, 0, 255))
    time.sleep(0.5)

Behavior

During normal voltage operation the code above runs as expected. When the power on the USB drops down to ~1v (I am using a solar cell to power the RP2040), and the power is restored, the device boots into the RP2040's bootloader and has the RPI-RP2 volume.

Description

  • Power the Adafruit Feather RP2040 via USB from a solar panel and USB battery setup.
  • Allow the voltage to drop to approximately ~1v.
  • Bring the voltage back up to 3.3v.
  • Observe the device reboot into the RPI-RP2.
  • Pressing Reset will bring the device back to the CIRCUITPY volume and execute code.py.

Additional information

I was able to reproduce this issue using a USBC breakout board, removing the input voltage from the host computer, and supply the VCC from a variable power supply. (this also allows me to watch the REPL while testing this)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions