From c7009140ce9ddf1ab4cf6cce3218f321dc83609d Mon Sep 17 00:00:00 2001 From: Jakub <106778416+MarekZegare4@users.noreply.github.com> Date: Fri, 29 May 2026 12:25:34 +0200 Subject: [PATCH] refactor: rename firmware from Plus to Solo MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 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 --- .../build-wio-tracker-l1-firmwares.yml | 14 +- README.md | 72 +++++--- docs/plus_features/clock_screen.md | 5 - docs/plus_features/favourites_dial.md | 21 --- .../message_screen/message_screen.md | 109 ----------- docs/plus_features/screen_lock.md | 8 - docs/plus_features/settings_screen.md | 31 ---- .../settings_screen/settings_screen.md | 90 --------- docs/plus_features/tools_screen.md | 100 ---------- .../clock_screen/clk_scr_1_eink.png | Bin 0 -> 4238 bytes .../clock_screen/clk_scr_1_oled.png | Bin 0 -> 1621 bytes .../clock_screen/clk_scr_2_eink.png | Bin 0 -> 4350 bytes .../clock_screen/clk_scr_2_oled.png | Bin 0 -> 1488 bytes .../clock_screen/clock_screen.md | 55 ++++++ .../favourites_dial/fav_dial_1_eink.png | Bin 0 -> 4234 bytes .../favourites_dial/fav_dial_1_oled.png | Bin 0 -> 1312 bytes .../favourites_dial/favourites_dial.md | 10 +- .../message_screen/mes_scr_1_eink.png | Bin .../message_screen/mes_scr_1_oled.png | Bin .../message_screen/mes_scr_2_eink.png | Bin .../message_screen/mes_scr_2_oled.png | Bin .../message_screen/mes_scr_3_eink.png | Bin .../message_screen/mes_scr_3_oled.png | Bin .../message_screen/mes_scr_4_eink.png | Bin .../message_screen/mes_scr_4_oled.png | Bin .../message_screen/mes_scr_5_eink.png | Bin .../message_screen/mes_scr_5_oled.png | Bin .../message_screen/mes_scr_6_eink.png | Bin .../message_screen/mes_scr_6_oled.png | Bin .../message_screen/mes_scr_7_eink.png | Bin .../message_screen/mes_scr_7_oled.png | Bin .../message_screen/message_screen.md | 108 +++++++++++ .../screen_lock/lck_scr_1_eink.png | Bin 0 -> 4297 bytes .../screen_lock/lck_scr_1_oled.png | Bin 0 -> 1642 bytes .../screen_lock/lck_scr_2_eink.png | Bin 0 -> 4207 bytes .../screen_lock/lck_scr_2_oled.png | Bin 0 -> 1551 bytes docs/solo_features/screen_lock/screen_lock.md | 51 ++++++ .../settings_screen/set_scr_1_eink copy.png | Bin 0 -> 6059 bytes .../settings_screen/set_scr_1_eink.png | Bin 0 -> 6059 bytes .../settings_screen/set_scr_1_oled.png | Bin 0 -> 1707 bytes .../settings_screen/set_scr_2_eink.png | Bin 0 -> 6849 bytes .../settings_screen/set_scr_2_oled.png | Bin 0 -> 1815 bytes .../settings_screen/settings_screen.md | 91 +++++++++ .../tools_screen/tls_scr_1_eink.png | Bin 0 -> 4558 bytes .../tools_screen/tls_scr_1_oled.png | Bin 0 -> 1834 bytes .../tools_screen/tls_scr_2_eink.png | Bin 0 -> 8747 bytes .../tools_screen/tls_scr_2_oled.png | Bin 0 -> 2134 bytes .../tools_screen/tls_scr_3_eink.png | Bin 0 -> 8745 bytes .../tools_screen/tls_scr_3_oled.png | Bin 0 -> 2106 bytes .../tools_screen/tls_scr_4_eink.png | Bin 0 -> 4677 bytes .../tools_screen/tls_scr_4_oled.png | Bin 0 -> 1850 bytes .../tools_screen/tls_scr_5_eink.png | Bin 0 -> 4866 bytes .../tools_screen/tls_scr_5_oled.png | Bin 0 -> 1778 bytes .../tools_screen/tls_scr_6_eink.png | Bin 0 -> 4506 bytes .../tools_screen/tls_scr_6_oled.png | Bin 0 -> 1726 bytes .../tools_screen/tls_scr_7_eink.png | Bin 0 -> 4665 bytes .../tools_screen/tls_scr_7_oled.png | Bin 0 -> 1941 bytes .../tools_screen/tools_screen.md | 173 ++++++++++++++++++ examples/companion_radio/MyMesh.h | 4 +- examples/companion_radio/ui-new/UITask.cpp | 2 +- variants/wio-tracker-l1-eink/platformio.ini | 2 +- variants/wio-tracker-l1/platformio.ini | 4 +- 62 files changed, 551 insertions(+), 399 deletions(-) delete mode 100644 docs/plus_features/clock_screen.md delete mode 100644 docs/plus_features/favourites_dial.md delete mode 100644 docs/plus_features/message_screen/message_screen.md delete mode 100644 docs/plus_features/screen_lock.md delete mode 100644 docs/plus_features/settings_screen.md delete mode 100644 docs/plus_features/settings_screen/settings_screen.md delete mode 100644 docs/plus_features/tools_screen.md create mode 100644 docs/solo_features/clock_screen/clk_scr_1_eink.png create mode 100644 docs/solo_features/clock_screen/clk_scr_1_oled.png create mode 100644 docs/solo_features/clock_screen/clk_scr_2_eink.png create mode 100644 docs/solo_features/clock_screen/clk_scr_2_oled.png create mode 100644 docs/solo_features/clock_screen/clock_screen.md create mode 100644 docs/solo_features/favourites_dial/fav_dial_1_eink.png create mode 100644 docs/solo_features/favourites_dial/fav_dial_1_oled.png rename docs/{plus_features => solo_features}/favourites_dial/favourites_dial.md (93%) rename docs/{plus_features => solo_features}/message_screen/mes_scr_1_eink.png (100%) rename docs/{plus_features => solo_features}/message_screen/mes_scr_1_oled.png (100%) rename docs/{plus_features => solo_features}/message_screen/mes_scr_2_eink.png (100%) rename docs/{plus_features => solo_features}/message_screen/mes_scr_2_oled.png (100%) rename docs/{plus_features => solo_features}/message_screen/mes_scr_3_eink.png (100%) rename docs/{plus_features => solo_features}/message_screen/mes_scr_3_oled.png (100%) rename docs/{plus_features => solo_features}/message_screen/mes_scr_4_eink.png (100%) rename docs/{plus_features => solo_features}/message_screen/mes_scr_4_oled.png (100%) rename docs/{plus_features => solo_features}/message_screen/mes_scr_5_eink.png (100%) rename docs/{plus_features => solo_features}/message_screen/mes_scr_5_oled.png (100%) rename docs/{plus_features => solo_features}/message_screen/mes_scr_6_eink.png (100%) rename docs/{plus_features => solo_features}/message_screen/mes_scr_6_oled.png (100%) rename docs/{plus_features => solo_features}/message_screen/mes_scr_7_eink.png (100%) rename docs/{plus_features => solo_features}/message_screen/mes_scr_7_oled.png (100%) create mode 100644 docs/solo_features/message_screen/message_screen.md create mode 100644 docs/solo_features/screen_lock/lck_scr_1_eink.png create mode 100644 docs/solo_features/screen_lock/lck_scr_1_oled.png create mode 100644 docs/solo_features/screen_lock/lck_scr_2_eink.png create mode 100644 docs/solo_features/screen_lock/lck_scr_2_oled.png create mode 100644 docs/solo_features/screen_lock/screen_lock.md create mode 100644 docs/solo_features/settings_screen/set_scr_1_eink copy.png create mode 100644 docs/solo_features/settings_screen/set_scr_1_eink.png create mode 100644 docs/solo_features/settings_screen/set_scr_1_oled.png create mode 100644 docs/solo_features/settings_screen/set_scr_2_eink.png create mode 100644 docs/solo_features/settings_screen/set_scr_2_oled.png create mode 100644 docs/solo_features/settings_screen/settings_screen.md create mode 100644 docs/solo_features/tools_screen/tls_scr_1_eink.png create mode 100644 docs/solo_features/tools_screen/tls_scr_1_oled.png create mode 100644 docs/solo_features/tools_screen/tls_scr_2_eink.png create mode 100644 docs/solo_features/tools_screen/tls_scr_2_oled.png create mode 100644 docs/solo_features/tools_screen/tls_scr_3_eink.png create mode 100644 docs/solo_features/tools_screen/tls_scr_3_oled.png create mode 100644 docs/solo_features/tools_screen/tls_scr_4_eink.png create mode 100644 docs/solo_features/tools_screen/tls_scr_4_oled.png create mode 100644 docs/solo_features/tools_screen/tls_scr_5_eink.png create mode 100644 docs/solo_features/tools_screen/tls_scr_5_oled.png create mode 100644 docs/solo_features/tools_screen/tls_scr_6_eink.png create mode 100644 docs/solo_features/tools_screen/tls_scr_6_oled.png create mode 100644 docs/solo_features/tools_screen/tls_scr_7_eink.png create mode 100644 docs/solo_features/tools_screen/tls_scr_7_oled.png create mode 100644 docs/solo_features/tools_screen/tools_screen.md diff --git a/.github/workflows/build-wio-tracker-l1-firmwares.yml b/.github/workflows/build-wio-tracker-l1-firmwares.yml index 169a2211..b6ba1cea 100644 --- a/.github/workflows/build-wio-tracker-l1-firmwares.yml +++ b/.github/workflows/build-wio-tracker-l1-firmwares.yml @@ -24,11 +24,17 @@ jobs: - name: Setup Build Environment uses: ./.github/actions/setup-build-environment + - name: Extract Version from Git Tag + run: echo "GIT_TAG_VERSION=${GITHUB_REF_NAME}" >> $GITHUB_ENV + - name: Build Dual OLED Firmware env: FIRMWARE_VERSION: ${{ env.GIT_TAG_VERSION }} run: /usr/bin/env bash build.sh build-firmware WioTrackerL1_companion_dual + - name: Rename OLED firmware + run: mv out/*.uf2 "out/solo-${{ env.GIT_TAG_VERSION }}-oled.uf2" 2>/dev/null || true + - name: Upload OLED Firmware uses: actions/upload-artifact@v4 with: @@ -45,11 +51,17 @@ jobs: - name: Setup Build Environment uses: ./.github/actions/setup-build-environment + - name: Extract Version from Git Tag + run: echo "GIT_TAG_VERSION=${GITHUB_REF_NAME}" >> $GITHUB_ENV + - name: Build Dual E-ink Firmware env: FIRMWARE_VERSION: ${{ env.GIT_TAG_VERSION }} run: /usr/bin/env bash build.sh build-firmware WioTrackerL1Eink_companion_dual + - name: Rename E-ink firmware + run: mv out/*.uf2 "out/solo-${{ env.GIT_TAG_VERSION }}-eink.uf2" 2>/dev/null || true + - name: Upload E-ink Firmware uses: actions/upload-artifact@v4 with: @@ -80,7 +92,7 @@ jobs: - name: Create Release uses: softprops/action-gh-release@v2 with: - name: Wio Tracker L1 Firmware ${{ env.GIT_TAG_VERSION }} + name: Solo ${{ env.GIT_TAG_VERSION }} body: "" draft: true files: out/*.uf2 diff --git a/README.md b/README.md index b81889b2..0b11d1f0 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Seeed Wio Tracker L1 - MeshCore community firmware +# 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. @@ -28,50 +28,77 @@ The e-ink variant targets the Wio Tracker L1 fitted with a 2.13″ GxEPD2 panel - Enabled sensor screens with support for all onboard sensors (temperature, humidity, pressure, luminosity, CO₂) and GPS data -- [Messages Screen](./docs/plus_features/message_screen.md) — view and send messages, open message details, reply with quick messages or custom text, per-channel notification and melody overrides +- [Messages Screen](./docs/solo_features/message_screen/message_screen.md) — view and send messages, open message details, reply with quick messages or custom text, per-channel notification and melody overrides -- [Favourites Dial](./docs/plus_features/favourites_dial.md) — pin up to six contacts for quick access from the home screen +- [Favourites Dial](./docs/solo_features/favourites_dial/favourites_dial.md) — pin up to six contacts for quick access from the home screen -- [Settings Screen](./docs/plus_features/settings_screen.md) — configure display, sound, home page order, radio and system settings +- [Settings Screen](./docs/solo_features/settings_screen/settings_screen.md) — configure display, sound, home page order, radio and system settings -- [Clock Screen](./docs/plus_features/clock_screen.md) — view time and date plus up to three configurable sensor values +- [Clock Screen](./docs/solo_features/clock_screen/clock_screen.md) — view time and date plus up to three configurable sensor values -- [Screen Lock](./docs/plus_features/screen_lock.md) — lock the device to prevent accidental keypresses, with a lock screen showing time and sensor data +- [Screen Lock](./docs/solo_features/screen_lock/screen_lock.md) — lock the device to prevent accidental keypresses, with a lock screen showing time and sensor data -- [Tools Screen](./docs/plus_features/tools_screen.md) — GPS trail recording and export, ringtone editor, auto-reply bot, and more +- [Tools Screen](./docs/solo_features/tools_screen/tools_screen.md) — 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` | +| 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] +> [!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](https://github.com/MarekZegare4/MeshCore/releases) 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](https://meshcore.io/flasher) website ->3. Select "Wio Tracker L1 Pro" ->4. Choose any of the firmware variant ->5. Perform "Erase flash" - - +> [!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](https://meshcore.io/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](./docs/solo_features/message_screen/message_screen.md) | Sending messages, context menus, reply, Notif/Melody overrides | +| [Favourites Dial](./docs/solo_features/favourites_dial/favourites_dial.md) | Pinned contacts grid, unread badges, pin/unpin | +| [Clock Screen](./docs/solo_features/clock_screen/clock_screen.md) | Clock page, date, configurable data fields | +| [Settings Screen](./docs/solo_features/settings_screen/settings_screen.md) | All settings sections with values and interactions | +| [Screen Lock](./docs/solo_features/screen_lock/screen_lock.md) | Lock/unlock sequence, lock screen, auto-lock | +| [Tools Screen](./docs/solo_features/tools_screen/tools_screen.md) | GPS trail, nearby nodes, ringtone editor, auto-reply bot, auto-advert | + +### Upstream MeshCore + +| Document | Description | +|----------|-------------| +| [FAQ](./docs/faq.md) | Frequently asked questions | +| [CLI Commands](./docs/cli_commands.md) | Commands for repeaters, room servers and sensors | +| [Terminal Chat CLI](./docs/terminal_chat_cli.md) | Commands for the terminal chat client | +| [Companion Protocol](./docs/companion_protocol.md) | Serial/BLE frame protocol between device and app | +| [Packet Format](./docs/packet_format.md) | LoRa packet structure | +| [QR Codes](./docs/qr_codes.md) | Channel and contact QR code formats | + +--- + ## Development This fork tracks the upstream [MeshCore](https://github.com/ripplebiz/MeshCore) repository. To prevent upstream changes from overwriting this README during merges, `README.md` is protected via `.gitattributes`. After cloning, run once: @@ -81,6 +108,7 @@ 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 @@ -121,7 +149,7 @@ PLATFORMIO_BUILD_FLAGS="-D ENABLE_SCREENSHOT" pio run -e WioTrackerL1_companion_ 4. In the tool's interactive menu, press **S** to capture a screenshot 5. The tool will save the screenshot as a PNG file in `tools/pngs/` with a timestamp-based filename - -D MESH_PACKET_LOGGING=1 @@ -111,7 +111,7 @@ build_flags = ${WioTrackerL1.build_flags} -D PIN_BUZZER=12 -D QSPIFLASH=1 -D ADVERT_NAME='"@@MAC"' - -D FIRMWARE_PLUS_BUILD=1 + -D FIRMWARE_SOLO_BUILD=1 -D MESHCORE_VERSION='"1.15"' -D UI_SENSORS_PAGE=1 -D ENV_PIN_SDA=PIN_WIRE1_SDA