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