From cc4774436fa081eeb0facce3ca70a21688351dc0 Mon Sep 17 00:00:00 2001 From: pmow Date: Fri, 9 Oct 2026 08:47:35 -1000 Subject: [PATCH] feat(solo): adds support for Good Display GDEQ0426 eink 4.26 inch 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 Claude-Session: https://claude.ai/code/session_01KxAZVAbhhYr18Dd4guTQM1 --- solo/wio-tracker-l1-gdeq0426/platformio.ini | 60 +++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 solo/wio-tracker-l1-gdeq0426/platformio.ini diff --git a/solo/wio-tracker-l1-gdeq0426/platformio.ini b/solo/wio-tracker-l1-gdeq0426/platformio.ini new file mode 100644 index 00000000..3691e66f --- /dev/null +++ b/solo/wio-tracker-l1-gdeq0426/platformio.ini @@ -0,0 +1,60 @@ +; 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 +; +; 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 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 + -Os +extra_scripts = post:create-uf2.py