Battery and sleep

Deep Sleep

How a battery node sleeps and wakes. Wake pins must not float.

Battery and sleep Deep sleep ESP32 family

Official path: examples/system/deep_sleep

01 Overview

CPU and most digital peripherals power down. Wake by timer or GPIO.

  • Use when: duty-cycled battery sensors.
  • Skip when: you must stay online.

02 Hardware

  • Timer wake needs no extra button.
  • EXT0: GPIO25 on ESP32, GPIO3 on S2/S3 in the official demo.
  • EXT1: GPIO2/4 in the demo must be held at a defined level.
  • USB-Serial-JTAG drops in sleep; use external USB-UART to debug.

03 Software flow

1. Detect cold boot vs sleep wake.

2. Log cause and sleep duration.

3. Arm the next wake, disable unused sources.

4. Enter deep sleep; keep state in RTC or NVS.

04 Core points

  • Deep sleep is not standby — RAM is gone.
  • Floating pins drain batteries.
  • Custom work: wake map, sleep current, report period.

中文

电池与休眠

Deep Sleep 深度睡眠

电池节点怎么睡、怎么醒。唤醒脚不能浮空。

电池与休眠 深度睡眠 ESP32 family

官方路径: examples/system/deep_sleep

01 项目概述

关掉 CPU 和大部分外设,用定时器或 GPIO 唤醒。

  • 适用: 间歇上报的电池传感。
  • 不适用: 需要一直在线的遥控。

02 项目硬件描述

  • 定时唤醒可不加按键。
  • EXT0:ESP32 常用 GPIO25;S2/S3 常用 GPIO3。
  • EXT1:示例用 GPIO2/4,休眠前必须有确定电平。
  • USB-Serial-JTAG 在深睡会断开,调试请用外部 USB-UART。

03 项目软件流程描述

1. 判断冷启动还是深睡唤醒。

2. 打印唤醒源和睡眠时长。

3. 配置下次唤醒,关掉不用的源。

4. 进入深睡;普通 RAM 丢失,状态放 RTC 或 NVS。

04 项目核心点

  • 深睡不是待机,内存会丢。
  • 浮空脚会误唤醒把电池抽干。
  • 可定制: 唤醒矩阵、休眠电流验收、和上报周期。