Skip to content

feat: honor partial_update_support=2 (full-frame partial stream)#116

Open
g4bri3lDev wants to merge 1 commit into
mainfrom
feat/full-frame-partial
Open

feat: honor partial_update_support=2 (full-frame partial stream)#116
g4bri3lDev wants to merge 1 commit into
mainfrom
feat/full-frame-partial

Conversation

@g4bri3lDev

Copy link
Copy Markdown
Member

Summary

Implements the client side of the new signaling from OpenDisplay/Firmware#80: the config tool now defines partial_update_support: 2partial updates supported but full-frame stream required — for panels where the firmware's white-fill at partial START would erase content outside the region (hardware-confirmed on EP426 / Seeed EN05).

  • compute_partial_region expands the region to the whole panel when the display signals 2, after normal diffing — no_change detection still skips identical frames, fallbacks unchanged, callers need no changes
  • New PartialUpdateSupport IntEnum (NONE/PARTIAL/FULL_FRAME), exported from the package root
  • README partial-updates section updated for the enum (including the note that pre-enum device configs may still report 1 on affected panels)

The full-frame partial path is the one hardware-verified on the EN05 (fw 2.0): flicker-free, correct across a 5-cycle dashboard test, ~7 KB compressed wire per update.

Test plan

  • new tests: FULL_FRAME expands rect to panel size; 1 keeps the minimal 8-aligned rect; no_change still short-circuits on FULL_FRAME panels
  • pytest -q → 497 passed; prek hooks clean

🤖 Generated with Claude Code

The config tool now defines partial_update_support value 2: partial
updates supported but the stream must cover the whole panel, because
firmware white-fills the controller RAM at partial start and on these
panels (e.g. EP426 / Seeed EN05) the partial waveform erases everything
the stream does not cover (OpenDisplay/Firmware#80).

compute_partial_region expands the region to the full panel for such
displays after diffing (no_change detection unaffected), so uploads
stay flicker-free with no caller changes. New PartialUpdateSupport
IntEnum exported from the package root.
@codecov

codecov Bot commented Jul 5, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant