1.6 KiB
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
- 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.
- ESP-PM (Power Management):
- Combine TWT with
esp-pmdynamic frequency scaling and automatic Light Sleep.
- Combine TWT with
- 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
- Create a
tdd/client_power_strategy.mdin the Provider/Client workspace. - Develop a minimal test firmware on the C6 to enable TWT via the
esp_wifi_twt_setupAPI, monitoring power draw and wake times using a multimeter or profile. - Document the final chosen power strategy pattern before modifying
main.cpporepd.cpp.