build(solo): the 4.26" panel as a fourth L1 e-ink env

WioTrackerL1Eink426_solo_dual extends eink_solo like the 4.2" build and
sets only what differs: the panel, rotation, the 9x15 at 2x with Text and
Icon size, bulk writes at 8 MHz, 250 contacts and a 32-message queue.
Replaces the full copy of the flags in solo/wio-tracker-l1-gdeq0426/.
Docs: advert precision, text and icon size, the 4.26" in the feature matrix.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Jakub
2026-10-11 10:52:17 +02:00
co-authored by Claude Opus 5.5
parent 1b318af15b
commit a5423d42c1
4 changed files with 29 additions and 74 deletions
+23 -1
View File
@@ -10,7 +10,7 @@
; portrait keeps the 6x9, whose narrow width wants the smaller cell. The
; joystick reads upright with the panel at rotation 1 (landscape) and turns
; with it (JOYSTICK_UPRIGHT_ROTATION). A third for a 4.2" 400x300 panel on the
; same wiring, in the 9x15.
; same wiring, in the 9x15, and a fourth for a 4.26" 800x480 one.
;
; All: Dual BLE+USB with added Solo.
[eink_solo]
@@ -58,3 +58,25 @@ build_flags = ${eink_solo.build_flags}
-D DISPLAY_ROTATION=0
-D JOYSTICK_UPRIGHT_ROTATION=0
-D EINK_LARGE_FONT=2
; A 4.26" 800x480 panel (Good Display GDEQ0426T82) on the same 24-pin FPC.
; Native landscape; the 9x15 font at 2x (~44 characters x 16 lines), with
; Settings > Display > Text size and Icon size (EINK_FONT_SCALE,
; STATUS_ICON_SCALE). Rows sent to the panel in bulk at 8 MHz
; (EINK_FAST_WRITES, GxEPD2_FastWrite.h). Its 48 KB framebuffer leaves the
; heap short at boot, so fewer contacts and a smaller offline queue.
[env:WioTrackerL1Eink426_solo_dual]
extends = eink_solo
build_unflags = ${eink_solo.build_unflags} -D EINK_DISPLAY_MODEL=GxEPD2_213_B74 -D DISPLAY_ROTATION=1
-D JOYSTICK_UPRIGHT_ROTATION=1 -D MAX_CONTACTS=350 -D OFFLINE_QUEUE_SIZE=128
build_flags = ${eink_solo.build_flags}
-D EINK_DISPLAY_MODEL=GxEPD2_426_GDEQ0426T82
-D DISPLAY_ROTATION=0
-D JOYSTICK_UPRIGHT_ROTATION=0
-D EINK_LARGE_FONT=2
-D EINK_FONT_SCALE=2
-D STATUS_ICON_SCALE=0
-D EINK_FAST_WRITES=1
-D EINK_SPI_HZ=8000000
-D MAX_CONTACTS=250
-D OFFLINE_QUEUE_SIZE=32
@@ -1,72 +0,0 @@
; Solo build for Seeed Wio Tracker L1 (Lite) + Good Display GDEQ0426T82
; 4.26" 800x480 e-ink, plugged into the board's 24-pin e-ink FPC connector.
; Build config only -- no source changes. Extends WioTrackerL1Eink
; (variants/wio-tracker-l1-eink/platformio.ini) for its source files and
; libraries, but carries its own full build_flags list, so the stock panel's
; -D EINK_DISPLAY_MODEL / DISPLAY_ROTATION never reach the compiler too.
;
; - EINK_DISPLAY_MODEL GxEPD2 driver for this panel (GxEPD2 1.6.2+)
; - DISPLAY_ROTATION 0: the panel's native landscape
; - RAM: the 800x480 framebuffer is 48 KB (the stock 2.13" needs ~4 KB),
; and UiCore plus every screen is allocated from the heap at startup --
; 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_LARGE_FONT 2: the 4.2" build's 9x15 font (and its 9 px icons) --
; on hardware it reads much better here than the 6x9 scaled up, which goes
; blocky at 4x.
; - EINK_FONT_SCALE 2: that font at 2x (18x30 cells, ~44 characters x 16
; lines). Also adds Settings > Display > Text size (1x-5x), which starts here.
; - STATUS_ICON_SCALE turns on scalable Home status/page icons and adds
; Settings > Display > Icon size (Auto = 1.5x the text: 3x at 2x text, 1x-8x).
;
; Build: pio run -e WioTrackerL1_GDEQ0426T82_companion_solo_dual
[env:WioTrackerL1_GDEQ0426T82_companion_solo_dual]
extends = WioTrackerL1Eink
build_unflags = -Ofast
build_flags = ${nrf52_base.build_flags}
${sensor_base.build_flags}
-I lib/nrf52/s140_nrf52_7.3.0_API/include
-I lib/nrf52/s140_nrf52_7.3.0_API/include/nrf52
-I variants/wio-tracker-l1
-I examples/companion_radio/ui-new
-I lib/GxEPD2-patch/src
-D WIO_TRACKER_L1
-D WIO_TRACKER_L1_EINK
-D USE_SX1262
-D RADIO_CLASS=CustomSX1262
-D WRAPPER_CLASS=CustomSX1262Wrapper
-D LORA_TX_POWER=22
-D SX126X_CURRENT_LIMIT=140
-D SX126X_RX_BOOSTED_GAIN=1
-D EINK_DISPLAY_MODEL=GxEPD2_426_GDEQ0426T82
-D DISPLAY_ROTATION=0
-D JOYSTICK_UPRIGHT_ROTATION=0
-D EINK_LARGE_FONT=2
-D EINK_FONT_SCALE=2
-D STATUS_ICON_SCALE=0
-D GPS_BAUD_RATE=9600
-D ENV_PIN_SDA=PIN_WIRE1_SDA
-D ENV_PIN_SCL=PIN_WIRE1_SCL
-D DISABLE_DIAGNOSTIC_OUTPUT
-D AUTO_OFF_MILLIS=0
-D MAX_CONTACTS=250
-D MAX_GROUP_CHANNELS=40
-D OFFLINE_QUEUE_SIZE=32
-D DISPLAY_CLASS=GxEPDDisplay
-D BUTTON_USE_INTERRUPTS=1
-D UI_HAS_JOYSTICK=1
-D UI_HAS_JOYSTICK_UPDOWN=1
-D PIN_BUZZER=12
-D QSPIFLASH=1
-D FIRMWARE_SOLO_BUILD=1
-D MESHCORE_VERSION='"1.17.1"'
-D UI_SENSORS_PAGE=1
-D BLE_PIN_CODE=123456
-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