From a5423d42c14bcc92f040c36c8eaa6fbbf6a39a70 Mon Sep 17 00:00:00 2001 From: Jakub <106778416+MarekZegare4@users.noreply.github.com> Date: Sun, 11 Oct 2026 10:52:17 +0200 Subject: [PATCH] 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 --- docs/solo/developer/feature-matrix.md | 1 + docs/solo/settings.md | 6 +- solo/wio-tracker-l1-eink/platformio.ini | 24 ++++++- solo/wio-tracker-l1-gdeq0426/platformio.ini | 72 --------------------- 4 files changed, 29 insertions(+), 74 deletions(-) delete mode 100644 solo/wio-tracker-l1-gdeq0426/platformio.ini diff --git a/docs/solo/developer/feature-matrix.md b/docs/solo/developer/feature-matrix.md index 96d80284..ce8ab9e1 100644 --- a/docs/solo/developer/feature-matrix.md +++ b/docs/solo/developer/feature-matrix.md @@ -18,6 +18,7 @@ to some screens, adds or corrects its row here in the same commit. | **E-ink L** | Wio Tracker L1 e-ink, landscape | 250 × 122, 8 × 13 | Larger icons | | **E-ink P** | Wio Tracker L1 e-ink, portrait | 122 × 250, 6 × 9 | | | **E-ink 4.2"** | Wio Tracker L1 with the 4.2" panel (parked) | 400 × 300, 9 × 15 | Its own icon set | +| **E-ink 4.26"** | Wio Tracker L1 with the 4.26" 800 × 480 panel (`WioTrackerL1Eink426_solo_dual`) | 400 × 240 at 2x, 9 × 15 | Text and icon size settings; "wide" like the 4.2", 16 lines | | **L2** | Wio Tracker L2 | 320 × 240 touch, ui-lvgl | | What decides it in ui-new (look for these when adding a screen): diff --git a/docs/solo/settings.md b/docs/solo/settings.md index f3721b42..f224bdb9 100644 --- a/docs/solo/settings.md +++ b/docs/solo/settings.md @@ -7,7 +7,7 @@ board supports are shown. | Section | What's there | | ------- | ------------ | -| **Display** | Brightness, auto-off, wake on message, the message alert (banner, corner envelope or off), lock screen, the lock clock's look and the [PIN](./lock.md), battery as icon / % / volts, time zone, clock format and seconds; on e-ink also rotation and full refresh | +| **Display** | Brightness, auto-off, wake on message, the message alert (banner, corner envelope or off), lock screen, the lock clock's look and the [PIN](./lock.md), battery as icon / % / volts, time zone, clock format and seconds; on e-ink also rotation and full refresh, and on a 4.26" panel the text and icon size | | **Sound** | Buzzer on / off / auto (quiet while the app is connected), volume, quiet hours, the melody for messages, channels and adverts | | **Home Pages** | Order of the home pages, and which are shown | | **Radio** | TX power, preset, frequency, SF / BW / CR, saved presets, Auto pwr, the scope list, then the advanced options (below) | @@ -56,6 +56,10 @@ nodes aren't added until you make room. including the automatic ones. Off, nodes see your name but not where you are. Live sharing and `{loc}` in a message still send it, because you send those on purpose. +- **Precision**: how exactly adverts give your position: **Exact**, or + rounded to a grid of about **100 m**, **500 m** or **1 km**. A fixed grid, + not random noise, so many adverts from one place can't be averaged back + to the exact spot. - **Position**: where your adverts say you are while the GPS is off. **Enter** to type it in (`50.06143, 19.93658`), take it from a waypoint, or clear it. With the GPS on, the row shows **GPS** and each fix replaces it; turning the diff --git a/solo/wio-tracker-l1-eink/platformio.ini b/solo/wio-tracker-l1-eink/platformio.ini index 83653a1d..1da1b21a 100644 --- a/solo/wio-tracker-l1-eink/platformio.ini +++ b/solo/wio-tracker-l1-eink/platformio.ini @@ -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 diff --git a/solo/wio-tracker-l1-gdeq0426/platformio.ini b/solo/wio-tracker-l1-gdeq0426/platformio.ini deleted file mode 100644 index 7bf26f25..00000000 --- a/solo/wio-tracker-l1-gdeq0426/platformio.ini +++ /dev/null @@ -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