Jakub c7009140ce refactor: rename firmware from Plus to Solo
- FIRMWARE_VERSION: v1.15-plus.1 → v1.15-solo.1
- FIRMWARE_PLUS_BUILD → FIRMWARE_SOLO_BUILD in all platformio.ini and UITask.cpp
- docs/plus_features/ → docs/solo_features/ (all sub-docs moved)
- README: update all doc links plus new Documentation section
- GitHub Actions: extract GIT_TAG_VERSION in each build job (was missing,
  causing empty FIRMWARE_VERSION in builds); rename output files to
  solo-VERSION-oled.uf2 / solo-VERSION-eink.uf2; release title → "Solo VERSION"

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-29 12:25:34 +02:00
2025-01-13 14:07:48 +11:00
2026-03-20 15:56:09 +08:00
2026-05-23 23:52:04 +02:00
2025-01-13 14:07:48 +11:00
2025-06-05 20:35:40 +12:00
2026-02-03 13:47:43 +13:00
2026-03-20 10:23:51 +11:00
2026-03-23 14:26:56 +01:00
2025-01-20 10:20:42 +11:00
2025-01-25 23:09:09 +11:00
2026-03-31 00:51:15 +13:00
2025-03-03 18:08:00 +13:00

Seeed Wio Tracker L1 - MeshCore "Solo" firmware

This branch extends the official MeshCore companion radio firmware for the Seeed Wio Tracker L1. Provides support for both the original OLED and the e-ink variant, with additional features and UI enhancements.

Join the discussion on the offical MeshCore discord: https://discord.gg/sdhYArU2jr

Enclosures


Feature highlights

  • Extended language support with native Unicode rendering and input Lemon font alongside the original ASCII mode (Default font with transliteration)

  • Enabled sensor screens with support for all onboard sensors (temperature, humidity, pressure, luminosity, CO₂) and GPS data

  • Messages Screen — view and send messages, open message details, reply with quick messages or custom text, per-channel notification and melody overrides

  • Favourites Dial — pin up to six contacts for quick access from the home screen

  • Settings Screen — configure display, sound, home page order, radio and system settings

  • Clock Screen — view time and date plus up to three configurable sensor values

  • Screen Lock — lock the device to prevent accidental keypresses, with a lock screen showing time and sensor data

  • Tools Screen — GPS trail recording and export, ringtone editor, auto-reply bot, and more

Firmware Variants

Two firmware builds are published with each release:

Variant Display File
OLED SSD1306 / SH1106 128 × 64 WioTrackerL1_companion_dual_*.uf2
E-ink GxEPD2 250 × 122 WioTrackerL1Eink_companion_dual_*.uf2

Both variants are built from a single codebase and share the same feature set. The dual in the filename means a single binary supports both BLE and USB serial — there are no separate BLE/USB builds.

Important

BLE connection has priority over USB serial. When a BLE connection is active, the USB protocol is suspended. When connecting to the companion app via USB, ensure to disconnect from BLE first or disable BLE directly from the device to avoid confusion.

Flashing

  1. Download the appropriate .uf2 file for your display variant from the releases page
  2. Press reset twice quickly to enter bootloader mode (solid amber LED) - the device should appear as a mass storage drive on your computer
  3. Copy the .uf2 file to the drive to flash the firmware

Updating to newer firmware versions usually does not require erasing flash unless the release notes explicitly state otherwise. To retain your settings and data, avoid performing a factory reset after flashing unless you need to start fresh or encounter problems.

Warning

When migrating from official/custom firmware, backup your data and perform factory reset to prevent conflicts with existing settings and data:

  1. Open device settings in the companion app and download data backup
  2. Go to MeshCore Flasher website
  3. Select "Wio Tracker L1 Pro"
  4. Choose any of the firmware variant
  5. Perform "Erase flash"

Documentation

This fork

Document Description
Messages Screen Sending messages, context menus, reply, Notif/Melody overrides
Favourites Dial Pinned contacts grid, unread badges, pin/unpin
Clock Screen Clock page, date, configurable data fields
Settings Screen All settings sections with values and interactions
Screen Lock Lock/unlock sequence, lock screen, auto-lock
Tools Screen GPS trail, nearby nodes, ringtone editor, auto-reply bot, auto-advert

Upstream MeshCore

Document Description
FAQ Frequently asked questions
CLI Commands Commands for repeaters, room servers and sensors
Terminal Chat CLI Commands for the terminal chat client
Companion Protocol Serial/BLE frame protocol between device and app
Packet Format LoRa packet structure
QR Codes Channel and contact QR code formats

Development

This fork tracks the upstream MeshCore repository. To prevent upstream changes from overwriting this README during merges, README.md is protected via .gitattributes. After cloning, run once:

git config merge.ours.driver true

Contributing

Contributions are welcome! Fork the repository, make your changes, and submit a pull request. Please ensure your code adheres to the existing style and includes comments where necessary.

Display Screenshot Tool

Note

The screenshot feature requires the ENABLE_SCREENSHOT build flag to be enabled. Add -D ENABLE_SCREENSHOT to your PlatformIO build flags, then recompile and flash the firmware.

The firmware supports capturing the current display contents and transmitting it over USB serial. This is useful for debugging, remote monitoring, or creating documentation.

Important: When the device is connected to the companion app, the USB serial port is not available for communication. To use the screenshot tool, ensure the device is not connected to the companion app.

Usage:

  1. Build and flash firmware with -D ENABLE_SCREENSHOT build flag enabled

Example for the OLED dual firmware:

PLATFORMIO_BUILD_FLAGS="-D ENABLE_SCREENSHOT" pio run -e WioTrackerL1_companion_dual -t upload
  1. Connect the device to your computer via USB (ensure no companion app connection)

  2. Install dependencies and run the screenshot tool. To manage python and python dependencies, use uv: https://docs.astral.sh/uv/

    cd tools
    uv run tools/screenshot.py
    

    Options:

    • --port PORT — Serial port to use (default: auto-detect)
    • --scale SCALE — Upscale factor for the output image (1=no upscale, 2=2x, 3=3x, 4=4x, etc.; default: 1)
  3. In the tool's interactive menu, press S to capture a screenshot

  4. The tool will save the screenshot as a PNG file in tools/pngs/ with a timestamp-based filename

Description
Companion firmware fork — offline GPS navigation (waypoints, compass, GPX export) on top of LoRa mesh messaging.
Readme 14 MiB
Languages
C 60.1%
C++ 37.9%
Python 1.4%
Shell 0.3%
HTML 0.3%