feat(eink): bulk SPI row writes for the GDEQ0426T82, at 8 MHz

GxEPD2 sends the panel RAM a byte at a time; on the nRF52's SPIM the
per-call overhead dominates, and an 800x480 partial refresh writes the
whole 48 KB several times. GxEPD2_426_GDEQ0426T82_Fast overrides the three
image writes to send each row in one transfer() call, falling back to the
stock path for the cases it doesn't cover (first write, mirror_y, PROGMEM).
Byte-for-byte the same data as the stock driver.

Opt-in per env: -D EINK_FAST_WRITES=1, and EINK_SPI_HZ (default 4 MHz,
8 MHz here, SPIM2's ceiling).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KxAZVAbhhYr18Dd4guTQM1
This commit is contained in:
pmow
2026-10-09 08:47:35 -10:00
co-authored by Claude Opus 5.5
parent cc4774436f
commit da5ff56cff
4 changed files with 133 additions and 3 deletions
@@ -56,5 +56,7 @@ build_flags = ${nrf52_base.build_flags}
-D DUAL_SERIAL=1
-D ENABLE_SCREENSHOT
-D KEEP_DISPLAY_ON_USB
-D EINK_FAST_WRITES=1
-D EINK_SPI_HZ=8000000
-Os
extra_scripts = post:create-uf2.py