Files
Calendink/Provider/AgentTasks/epic1_client_power.md
T

1.6 KiB

Epic 1: Client Power Strategy

Goal

Achieve a battery life measured in months for the ESP32-C6 Client.

Context

The ESP32-C6 serves as a "dumb" E-ink display client connected to the Calendink Provider. It needs to wake up, check for new layout data, download it, refresh the E-ink panel, and go back to sleep. The current standard method of deep sleep followed by full Wi-Fi re-association (DHCP negotiation) consumes ~100-300mA for multiple seconds, drastically limiting battery life for frequent updates.

Scope & Technologies to Investigate

  1. Wi-Fi 6 Target Wake Time (TWT):
    • The ESP32-C6 supports 802.11ax TWT. TWT allows the device to negotiate specific wake-up schedules with the router, meaning the radio can sleep while the connection remains "active".
    • Packets sent to the device during sleep are buffered by the AP until the Target Wake Time.
  2. ESP-PM (Power Management):
    • Combine TWT with esp-pm dynamic frequency scaling and automatic Light Sleep.
  3. Alternative - Hybrid ESP-NOW:
    • If TWT requires unsupported features on the specific home router, evaluate a fallback where the Client sends a sub-millisecond ESP-NOW broadcast to ask "Is there an update?". Full Wi-Fi is only enabled if the Provider replies "Yes".

Next Steps to Start

  1. Create a tdd/client_power_strategy.md in the Provider/Client workspace.
  2. Develop a minimal test firmware on the C6 to enable TWT via the esp_wifi_twt_setup API, monitoring power draw and wake times using a multimeter or profile.
  3. Document the final chosen power strategy pattern before modifying main.cpp or epd.cpp.