Skip to content

Badger2040 wake from sleep? #10724

@stanelie

Description

@stanelie

CircuitPython version and board name

Adafruit CircuitPython 10.0.3 on 2025-10-17; Pimoroni Badger 2040 with rp2040

Code/REPL

# something I tried...
# INACTIVITY TIMEOUT (Only on battery)
if time.monotonic() - last_activity > INACTIVITY_TIMEOUT:
    _, is_charging = get_battery_status()
    
    if is_charging:
        print("On USB power - staying awake")
        last_activity = time.monotonic()
    else:
        print(f"DEBUG: Inactivity timeout. Saving state. Current Page: {current}")

        for btn in buttons.values():
            btn.deinit()

        button_pins = [
            board.SW_UP,
            board.SW_DOWN, 
            board.SW_A,
            board.SW_B,
            board.SW_C
        ]

        pin_alarms = [
            alarm.pin.PinAlarm(pin=pin, value=True, edge=True, pull=False) 
            for pin in button_pins
        ]
        
        print("Entering deep sleep. Press any button to wake...")
        
        alarm.exit_and_deep_sleep_until_alarms(*pin_alarms)

Behavior

Maybe not a bug, but a feature request?

The Badger2040 has a display.halt() command that puts the display to sleep (removes power from the eink display) and sets the rp2040 in deep sleep where it supposedly draws less then 1 ma. It can then be woken by a button press (any button), which resets the CPU and reloads main.py.

Is there a way to achieve this with Circuitpython? I tried some things with alarms and trying to maintain pins to the correct voltage so they can wake the device, but all failed.

I found this source code that looks like it might be something to do with the firmware? Not too sure. Here it is anyway : https://github.com/pimoroni/badger2040/blob/main/firmware/modules/wakeup/wakeup.cpp

Am I missing something? How do I achieve this?

Any help appreciated!

Description

No response

Additional information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    boardNew board or update to a single boardbugrp2040Raspberry Pi RP2040

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions