Problem
The track and rest session loops have no delay or change-detection guard. Every iteration calls Touch.LiveScreen(), which clears and transfers the complete 240×240 RGB565 framebuffer even though the displayed timer generally changes only once per second.
This wastes CPU and power, repeatedly reconfigures the touch controller, and increases SPI/I²C contention during the most important runtime state.
Relevant locations
main.py, track-session loop
main.py, rest-session loop
touch_drive.py, LiveScreen
lcd_1inch28.py, show
Acceptance criteria
Resolution
Resolved by #17.
- 48 host tests pass.
- A simulated six-second session produces exactly six redraws.
- A physical three-second MicroPython session produced exactly three redraws and 49 input checks.
- Full-frame hardware redraws measured 56.2–65.4 ms.
- Input is checked within 50 ms normally and approximately 115 ms worst-case during a redraw.
- Five consecutive hardware frames produced only the two initial gesture-mode register writes.
Problem
The track and rest session loops have no delay or change-detection guard. Every iteration calls
Touch.LiveScreen(), which clears and transfers the complete 240×240 RGB565 framebuffer even though the displayed timer generally changes only once per second.This wastes CPU and power, repeatedly reconfigures the touch controller, and increases SPI/I²C contention during the most important runtime state.
Relevant locations
main.py, track-session loopmain.py, rest-session looptouch_drive.py,LiveScreenlcd_1inch28.py,showAcceptance criteria
Resolution
Resolved by #17.