Add Seeed Wio Tracker L2 Pro support with an optional LVGL touch UI - #3381
Open
Hacuchino-hash wants to merge 2 commits into
Open
Add Seeed Wio Tracker L2 Pro support with an optional LVGL touch UI#3381Hacuchino-hash wants to merge 2 commits into
Hacuchino-hash wants to merge 2 commits into
Conversation
ESP32-S3 with SX1262, a 3.2" 320x240 touch LCD, an L76K GNSS module and an SD slot. Everything except the radio hangs off a TCA9535 expander, so the board brings up power and reset lines in Seeed's documented order before the display and GNSS are usable. Companion (BLE and USB), repeater and room server environments run on the existing shared code. Pre-release hardware: the pin map may change on production units.
An LVGL 9 interface for boards with a touch panel, used by this variant's standalone environment: messaging with delivery state and history, contacts with path control and repeater trace, a repeater admin screen, an offline map from SD, and on-device radio and node settings. The shared companion sources gain optional hooks for it: new no-op virtuals on AbstractUITask (delivery ack, login result, status and CLI replies, trace results), MyMesh entry points that mirror the existing phone command paths (uiLogin, uiRequestStatus, uiTracePath, advertFlood), and a touch handler on UIScreen. saveChannels, saveContacts and isValidClientRepeatFreq move to the public section so the on-device settings screen can reach them. The boot splash draws the wordmark bitmap the other display UIs already share, expanded to an alpha mask and tinted from the widget style.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Seeed Wio Tracker L2 Pro support, with an optional LVGL touch UI
Adds a variant for the Seeed Studio Wio Tracker L2 Pro (ESP32-S3, SX1262,
3.2" 320x240 touch LCD, L76K GNSS, SD slot), plus
ui-lvgl: a touchinterface used by this board's standalone environment.
Two commits, reviewable separately:
Self-contained; the companion, repeater and room server envs run on the
existing shared code with no core changes.
ui-lvgl- the touch UI, plus the small set of hooks it needs in theshared companion sources.
Environments
Wio_Tracker_L2_companion_radio_bleui-newdisplay UIWio_Tracker_L2_companion_radio_usbui-newWio_Tracker_L2_standalone_lvglWio_Tracker_L2_repeaterWio_Tracker_L2_room_serverWhat the standalone UI does
It is a full node interface, not a status screen, so the board can be used
without a phone: chats with history and delivery state, contacts with a
manual path picker and repeater path trace, on-device repeater
administration (login, status, CLI), an offline map from SD with pan and
zoom, radio and node settings, and a first-boot region and name wizard.
Shared files touched
Everything else lives in the new variant and
ui-lvgldirectories.examples/companion_radio/AbstractUITask.hexamples/companion_radio/MyMesh.cppuiLogin,uiRequestStatus,uiTracePath,advertFlood, each mirroring the existing phone command handler, plus the UI hook callsexamples/companion_radio/MyMesh.hsaveChannels,saveContactsandisValidClientRepeatFreqmove to the public section so the settings screen can reach themexamples/companion_radio/main.cpp#ifndef UI_LVGLaround the boot bannersrc/helpers/ui/UIScreen.hvirtual bool handleTouch(int x, int y)No existing behaviour changes. The new virtuals are no-ops, so the other
UIs are unaffected.
Dependencies
lvgl @ 9.2.2, pinned and pulled only by the standalone env. LovyanGFX isalready used by
sensecap_indicator-espnow. The UI builds on the existingwrappers:
CustomSX1262Wrapper,ESP32Board,LGFXDisplay,MicroNMEALocationProvider,EnvironmentSensorManager,sendLogin,sendRequest,createTrace,createSelfAdvert,rtc_clock,StrHelper.Offline maps
The map reads the usual
/maps/{z}/{x}/{y}.pnglayout from a FAT32 card,so a tile folder prepared for any other device works unchanged. It also
understands packed tile columns and an optional
/maps_dark/night set;both are documented in the variant README and neither is required.
Testing
On hardware: display, touch, LoRa TX and RX, BLE pairing, speaker, wake
button, boot splash, GPS fix, offline maps in the loose tile layout,
repeater administration (login, saved password, status, commands), path
trace with per-hop SNR, and client repeat mode on 918 MHz.
All five environments build. Packed tiles and the night tile set are not
yet verified on hardware.
Notes
meshtastic/firmwarePR #10909 andmeshtastic/device-uiwio-l2branches.variants/wio-tracker-l2/README.mdis the only per-variant README in thetree. It touches no shared file; happy to move the content to
docs/ifthat fits better.