Skip to content

Implement four-mode refresh for SSD1677 4-gray panel#225

Merged
lovyan03 merged 1 commit into
m5stack:developfrom
ainyan03:ai/ssd1677-four-mode-refresh
Jul 17, 2026
Merged

Implement four-mode refresh for SSD1677 4-gray panel#225
lovyan03 merged 1 commit into
m5stack:developfrom
ainyan03:ai/ssd1677-four-mode-refresh

Conversation

@ainyan03

Copy link
Copy Markdown
Contributor

Overview

Implements distinct refresh behavior for all four epd_mode settings on Panel_SSD1677_4Gray (M5PaperMono):

mode behavior
quality absolute full-screen 4-gray refresh (cleanest, powers down after)
text white-precondition + absolute 4-gray refresh (removes RAM face dependency)
fast three-step differential 4-gray transition based on the tracked displayed state, no full-screen flash
fastest single endpoint (B/W) pass limited to the dirty rectangle, preserving the 4-gray state outside it

Implementation notes

  • The displayed optical state is tracked in a software plane pair (PSRAM), and per-pixel transition groups (hold-dark / lighten / darken / hold-light) are derived from it for the differential paths.
  • Mode 2 RAM face parity (ping-pong) is managed explicitly across activations.
  • BUSY is no longer sampled before it has asserted (small settle delay in _wait_busy).

Waveform parameters were calibrated and verified on M5PaperMono hardware.

quality / text render absolute 4-gray frames with dedicated waveforms.
fast performs a three-step differential 4-gray transition based on the
tracked displayed state, and fastest drives a single endpoint pass
limited to the dirty rectangle. Mode 2 RAM face parity is managed
explicitly, and BUSY is no longer sampled before it has asserted.
@lovyan03
lovyan03 merged commit 90cac17 into m5stack:develop Jul 17, 2026
23 checks passed
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.

2 participants