Files
Max Gramser 0ebb23a1f4 Make page swipes smooth and give lights a new colour card (0.2.42)
Page switches show the new page as empty cards at once and draw two cards per
LVGL refresh, so touch is polled between the steps; on the Guition the longest
loop gap during a swipe dropped from 276 to 74 ms (docs/SWIPE_PROFILE.md).
Custom parts and control panels are reused instead of rebuilt, state updates
and ticks redraw only their own card, clocks redraw once a minute, and a swipe
past the last page draws nothing.

Slider handles sit inside the fill (grey when the card is off), the busy sheet
covers the whole card, and the light colour card is redesigned with rounded
tracks and colour knobs. Firmware 0.2.36; SWIPE_PROFILE builds carry a
per-swipe profiler for measurements.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-15 10:59:02 +02:00

2.9 KiB

Test results app 0.2.42 / firmware 0.2.36 (2026-09-15)

Smooth page swipes, slider handles inside the fill, the busy sheet over the whole card and a new colour card for lights. See CHANGELOG 0.2.42, RELEASING "Compatibility 0.2.42" and docs/SWIPE_PROFILE.md for the measurements.

Automated

  • Python (.venv-portal): 139 tests OK.
  • C++ (clang++ -std=c++17 -Wall -Wextra -Werror -I.): 13/13 PASS.
  • generate_packages.py --check green; node --check app.js clean.
  • ESPHome 2026.6.2 compile SUCCESS, one after another per board (manual profile first, then Easy Setup, so the upload took the Easy build): guition-device.yaml (RAM 32.6%, flash 19.7%), easy-guition-device.yaml (RAM 32.5%, flash 18.7%), device.yaml (RAM 31.6%, flash 82.3%), easy-cyd-device.yaml (RAM 31.5%, flash 77.5%). Packages carry SCREEN_FIRMWARE_VERSION 0.2.36.

Bench boards (USB)

  • Both Easy Setup builds uploaded over USB; device_info reports project 0.2.36, compiled 2026-09-15 10:54:46 (Guition) and 10:54:48 (CYD), matching the build logs.
  • diagnostics/run_ui_test.py on both release builds: 10/10 page_check=PASS, 50 overlay render cycles, no failures, no page fill still under way line. The same passed on the diagnostic builds before.
  • Swipe measurements with -DSWIPE_PROFILE=1 builds (same code plus the profiler), 12 page switches each through swipe_test, median / p90:
    • Guition (owner's layout, 10 tiles, 2 pages): first frame 52 / 54 ms, page complete 244 / 250 ms, longest loop gap 74 / 75 ms (baseline 276 / 283 ms), slowest frame 40 / 42 ms.
    • CYD (8 tiles, 2 pages): first frame 83 / 84 ms, page complete 250 / 256 ms, longest loop gap 109 / 110 ms (the skeleton frame over SPI).
  • Earlier builds of this round were swiped by hand by the owner on the Guition (33 swipes for the baseline, 30 on the step fill); a fade variant was tried and dropped at the owner's request.

Renders (ESPHome host + SDL, both boards, firmware code of this release)

  • Light cards at 1, 3, 5, 60, 90 and 100 %: the white handle sits inside the fill on mini sliders and control sliders, 1 % shows one round end with the handle inside.
  • Busy sheet on a wide card with brightness controls: covers the whole card, spinner centred.
  • Colour card at both ends and in the middle of every track (knobs whole, not cut off), and for a light with only colour temperature or only colour (two cards each). The close and done buttons are unchanged; the demo preview hides them.

Not tested / for the owner

  • The final release build by hand on the glass (the owner swiped the earlier builds of this round).
  • The grey slider end of a light that is off on a real light (render path only through the palette code; the demo lights were on).
  • The colour card on a real colour light with Home Assistant commands (renders use the demo preview without actions).
  • The update from 0.2.35 to 0.2.36 through the app.