setRamArea() and fastWrite() follow GxEPD2 1.6.2's private
_setPartialRamArea() and _writeImage() for the GDEQ0426T82; say so, so
whoever bumps the library knows to re-check them.
On an 800x480 panel the doubled 6x9 font and the status bar's icons are
tiny. Two opt-in build flags, each also a setting under Settings > Display:
- EINK_FONT_SCALE=<n>: the landscape font's pixel multiplier (stock 2).
Settings > Display > Text size (1x-5x) overrides it at run time
(DisplayDriver::setUiScale -> EinkGfxDisplay re-lays out).
- STATUS_ICON_SCALE=<n>: Home's status icons, battery and page-icon row
drawn at n x their pixel grid, the bar growing to fit. 0 = Auto, 1.5x
the text's pixel scale. Settings > Display > Icon size (Auto, 1x-8x).
Both live in their own /ui_scale file, so NodePrefs is untouched. Icon size
appears only where STATUS_ICON_SCALE is set; Text size appears on every
e-ink build with the full-refresh setting, and builds that set neither
flag draw as before until it is changed. The GDEQ0426T82 env defaults to
4x text with Auto icons.
Tested in the native sim at 800x480.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KxAZVAbhhYr18Dd4guTQM1
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
New solo env WioTrackerL1_GDEQ0426T82_companion_solo_dual: the Wio Tracker
L1 (Lite) with a Good Display GDEQ0426T82 (SSD1677) on the board's 24-pin
e-ink FPC. Build config only. Extends WioTrackerL1Eink with its own full
build_flags list so the stock panel's model and rotation never reach the
compiler.
RAM: the 800x480 framebuffer is 48 KB, so OFFLINE_QUEUE_SIZE is 32 and
MAX_CONTACTS 250 -- with the stock limits UiCore's heap allocations fail
at boot and it loops.
Tested on hardware: Wio Tracker L1 Lite + GDEQ0426T82.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KxAZVAbhhYr18Dd4guTQM1