Skip to content

Excessive amperage in deep sleep on ESP32-S3 #9464

Closed
@dy0x

Description

@dy0x

CircuitPython version

Adafruit CircuitPython 9.1.1 on 2024-07-23; ProS3 with ESP32S3

Code/REPL

import alarm
import board
import time
from microcontroller import watchdog as w
from watchdog import WatchDogMode

# Watchdog and Supervisor
w.timeout = 300
w.mode = WatchDogMode.RESET

print("test")
time.sleep(1)

w.feed()
    
wakeup_period = time.monotonic() + int(30)
time_alarm = alarm.time.TimeAlarm(monotonic_time=wakeup_period)
alarm.exit_and_deep_sleep_until_alarms(time_alarm)

Behavior

ESP32-S3 consumes ~28mA in deep sleep on 9.1.0/9.1.1 but only ~26µA on 9.0.5

Auto-reload is off.
code.py output:
Wi-Fi: off | BLE:Off | code.py | 9.1.1test
Wi-Fi: off | BLE:Off | Done | 9.1.1
Code done running.

Press any key to enter the REPL. Use CTRL-D to reload.
Pretending to deep sleep until alarm, CTRL-C or file write.

Description

In terms of functionality, everything runs as expected. However, I noticed after updating from 9.0.5 to 9.1.1, my code consumes substantially more power in deep sleep. In CircuitPython 9.1.0 and 9.1.1, the provided code runs on ESP32-S3 in deep sleep at ~28mA. Whereas if I run this code using CircuitPython 9.0.5, it deep sleeps at ~26µA.

Additional information

Things I have tried:

  • Different hardware/power configurations including untouched
  • Multiple brand new ESP32 ProS3 boards
  • Main code and provided simplified code
  • Different library versions
  • Forcing BLE to be disabled with the supervisor

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions