feat(eink): Text size and Icon size settings for big panels

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
This commit is contained in:
pmow
2026-10-09 11:57:29 -10:00
co-authored by Claude Opus 5.5
parent da5ff56cff
commit 2c1e1fa930
8 changed files with 186 additions and 18 deletions
@@ -12,6 +12,12 @@
; a failed allocation there crashes into a boot loop. So:
; OFFLINE_QUEUE_SIZE 32 (stock e-ink: 128) frees ~17 KB
; MAX_CONTACTS 250 (stock: 350) frees ~18 KB
; - EINK_FONT_SCALE 4: text at 4x the 6x9 font (24x36 cells, ~33 characters
; x 13 lines) -- twice the stock 2x. The default for Settings > Display >
; Text size (1x-5x), which overrides it once changed.
; - STATUS_ICON_SCALE 0: turns on scalable Home status/page icons; 0 = Auto
; (1.5x the text: 6x at 4x text). The default for Settings > Display >
; Icon size (Auto, 1x-8x).
;
; Build: pio run -e WioTrackerL1_GDEQ0426T82_companion_solo_dual
[env:WioTrackerL1_GDEQ0426T82_companion_solo_dual]
@@ -35,6 +41,8 @@ build_flags = ${nrf52_base.build_flags}
-D EINK_DISPLAY_MODEL=GxEPD2_426_GDEQ0426T82
-D DISPLAY_ROTATION=0
-D JOYSTICK_UPRIGHT_ROTATION=0
-D EINK_FONT_SCALE=4
-D STATUS_ICON_SCALE=0
-D GPS_BAUD_RATE=9600
-D ENV_PIN_SDA=PIN_WIRE1_SDA
-D ENV_PIN_SCL=PIN_WIRE1_SCL