Files
Calendink/Provider/AgentTasks/epic1_client_power.md
T

23 lines
1.6 KiB
Markdown

# 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`.