Skip to content

Add Seeed Wio Tracker L2 Pro variant - #3381

Open
Hacuchino-hash wants to merge 2 commits into
meshcore-dev:devfrom
Hacuchino-hash:wio-tracker-l2-pro
Open

Hacuchino-hash wants to merge 2 commits into
meshcore-dev:devfrom
Hacuchino-hash:wio-tracker-l2-pro

Conversation

@Hacuchino-hash

@Hacuchino-hash Hacuchino-hash commented Sep 8, 2026 •

Copy link
Copy Markdown
Contributor

Add Seeed Wio Tracker L2 Pro variant

Board support for the Seeed Studio Wio Tracker L2 Pro: ESP32-S3 (Wio-S3
module, 16 MB flash, 8 MB PSRAM), SX1262, 3.2" 320x240 NV3031B touch LCD,
L76K GNSS, microSD, ES8311 speaker codec. Everything except the radio sits
behind a TCA9535 I/O expander, so the board class replays Seeed's power-up
sequence before the display and GNSS are usable.

This is the variant half of what was first submitted here. After #3431 the
touch UI was reworked onto MyMesh::Listener and moved to its own PR
(#3529), so this one is a plain variant with no shared-file changes.

Environments

Env Interface
Wio_Tracker_L2_companion_radio_ble Phone companion over BLE, standard ui-new display UI
Wio_Tracker_L2_companion_radio_usb Phone companion over USB serial, ui-new
Wio_Tracker_L2_repeater Repeater
Wio_Tracker_L2_room_server Room server

Files

boards/seeed_wio_tracker_l2.json and variants/wio-tracker-l2/ (board,
display driver on LovyanGFX, GNSS UART tap, speaker tones, target, envs,
README). The second commit adds the BLE companion env to the PR build
matrix; drop it if you would rather not grow the matrix.

Dependencies

LovyanGFX @ 1.2.30, pinned (already used by sensecap_indicator-espnow),
and arduino-audio-driver 0.2.1 for the ES8311 codec.

Testing

Builds: all four environments, plus Heltec_v3_companion_radio_ble and
RAK_4631_companion_radio_ble unchanged.

On hardware, this revision: the BLE companion build boots to the standard
display UI, pairs with the app and sends. LoRa TX and RX, touch, GPS fix
and speaker tones were verified on the same board code earlier; none of
it changed in the rebase.

Notes

  • Pre-release hardware; the pin map may change on production units.
  • Pin map derived from meshtastic/firmware PR #10909 and
    meshtastic/device-ui wio-l2 branches.
  • variants/wio-tracker-l2/README.md is the only per-variant README in the
    tree. It touches no shared file; happy to move the content to docs/ if
    that fits better.

@ripplebiz

Copy link
Copy Markdown
Member

Please take a look at this PR which will be refactoring a fair bit of the companion UI / MyMesh structure. This is an attempt to clean up the structure specifically for more ambitious companion forks like this one.
#3431

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.
@Hacuchino-hash Hacuchino-hash changed the title Add Seeed Wio Tracker L2 Pro support with an optional LVGL touch UI Add Seeed Wio Tracker L2 Pro variant Sep 30, 2026
@Hacuchino-hash

Copy link
Copy Markdown
Contributor Author

Thanks, that is a much better fit. Rebased onto dev with #3431 in, and
split the submission so each half can be judged on its own:

  • This PR is now the variant only: board, display, GNSS, speaker, and the
    companion / repeater / room server envs. No shared-file changes.
  • The touch UI is Add ui-lvgl, a standalone touch UI for the Wio Tracker L2 Pro #3529. It is a MyMesh::Listener now: messages, CLI
    replies, ACKs, adverts and traces come in through the listener; login and
    status go out through sendLogin / sendRequest and are picked up in
    onUnhandledResponse (status by tag, login by sender, since that reply
    carries the server clock in the tag field); trace via createTrace +
    sendDirect. What is left in MyMesh there is a flood flag on
    advert() and three helpers made public for the settings screen.

I understand the standalone abstraction is still being worked out and that
the UI half may need to wait for it. The point of the second PR is to show
the difference against the current interface; I will follow along and adjust
when it changes.

Both branches build the matrix envs that touch these files, and both were
re-tested on the board: the companion pairs and sends; the standalone UI does
DMs with ACK, hashtag channels, repeater login / status / CLI, trace and
flood advert.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants