mirror of
https://github.com/MarekZegare4/MeshCore-Solo.git
synced 2026-11-01 02:11:57 +00:00
docs: 2.0 release notes (everything since 1.28), README header centred with badges and screenshots
- release-notes: v2.0 section covering all of 2.0 against 1.28, the settings reset for rc users (name, radio, BT PIN), changes since rc3 in a collapsed section. - README: centred title, badges (release, browser sim, docs, Discord), three screenshots, the Buy Me a Coffee button; stale "BLE has priority over USB" note removed; e-ink row split by panel; Community section; pmow in contributors. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,14 +1,30 @@
|
||||
<p align="center"><img src="./docs/solo/img/hero.png" alt="MeshCore Solo" width="640"></p>
|
||||
|
||||
# MeshCore Solo Companion Firmware
|
||||
<h1 align="center">MeshCore Solo Companion Firmware</h1>
|
||||
|
||||
A fork of the official [MeshCore](https://github.com/meshcore-dev/MeshCore) companion radio firmware with a full standalone on-device UI — messages, contacts, GPS navigation and tools without a phone.
|
||||
<p align="center">
|
||||
A fork of the official <a href="https://github.com/meshcore-dev/MeshCore">MeshCore</a> companion radio firmware with a full standalone on-device UI:<br>
|
||||
messages, contacts, GPS navigation and tools without a phone.
|
||||
</p>
|
||||
|
||||
**Try it live in your browser: [solo.marekzegarek.com](https://solo.marekzegarek.com)**
|
||||
<p align="center">
|
||||
<a href="https://github.com/MarekZegare4/MeshCore-Solo/releases/latest"><img src="https://img.shields.io/github/v/release/MarekZegare4/MeshCore-Solo?label=release&color=2ea44f" alt="Latest release"></a>
|
||||
<a href="https://solo.marekzegarek.com"><img src="https://img.shields.io/badge/try%20it-in%20your%20browser-0a84ff" alt="Try it in your browser"></a>
|
||||
<a href="./docs/solo/README.md"><img src="https://img.shields.io/badge/docs-read-555" alt="Documentation"></a>
|
||||
<a href="https://discord.gg/sdhYArU2jr"><img src="https://img.shields.io/badge/Discord-MeshCore-5865F2?logo=discord&logoColor=white" alt="MeshCore Discord"></a>
|
||||
</p>
|
||||
|
||||
[](https://buymeacoffee.com/MarekZegarek)
|
||||
<p align="center">
|
||||
<img src="./docs/solo/img/oled-status.png" alt="Status page on the OLED" height="150">
|
||||
|
||||
<img src="./docs/solo/img/eink-channel.png" alt="A channel on the e-ink" height="150">
|
||||
|
||||
<img src="./docs/solo/img/l2-home.png" alt="Home screen on the Wio Tracker L2" height="150">
|
||||
</p>
|
||||
|
||||
Discussion: [MeshCore Discord](https://discord.gg/sdhYArU2jr) — [Solo firmware thread](https://discord.com/channels/1495203904898728149/1505294337884553447)
|
||||
<p align="center">
|
||||
<a href="https://buymeacoffee.com/MarekZegarek"><img src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png" alt="Buy Me a Coffee" height="44"></a>
|
||||
</p>
|
||||
|
||||
---
|
||||
|
||||
@@ -17,7 +33,9 @@ Discussion: [MeshCore Discord](https://discord.gg/sdhYArU2jr) — [Solo firmware
|
||||
| Device | MCU | Display | Firmware file |
|
||||
| ------ | --- | ------- | ------------- |
|
||||
| Seeed Wio Tracker L1 (OLED) | nRF52840 | SSD1306 / SH1106 128 × 64 | `solo-<version>-WioTrackerL1.uf2` |
|
||||
| Seeed Wio Tracker L1 (E-ink) | nRF52840 | GxEPD2 250 × 122, 4.2" 400 × 300 or 4.26" 800 × 480 | `solo-<version>-WioTrackerL1Eink-landscape.uf2`, `-portrait.uf2`, `solo-<version>-WioTrackerL1Eink42.uf2` or `solo-<version>-WioTrackerL1Eink426.uf2` |
|
||||
| Seeed Wio Tracker L1 (E-ink 2.13") | nRF52840 | 250 × 122, landscape or portrait | `solo-<version>-WioTrackerL1Eink-landscape.uf2` or `-portrait.uf2` |
|
||||
| Seeed Wio Tracker L1 (E-ink 4.2") | nRF52840 | 400 × 300 | `solo-<version>-WioTrackerL1Eink42.uf2` |
|
||||
| Seeed Wio Tracker L1 (E-ink 4.26") | nRF52840 | 800 × 480 | `solo-<version>-WioTrackerL1Eink426.uf2` |
|
||||
| Seeed Wio Tracker L2 | ESP32-S3 | 320 × 240 touch LCD | `solo-<version>-Wio-Tracker-L2-merged.bin` |
|
||||
| GAT562 30S Mesh Kit | nRF52840 | SSD1306 128 × 64 | `solo-<version>-GAT562-30S-Mesh-Kit.uf2` |
|
||||
| GAT562 Mesh Watch13 *(experimental)* | nRF52840 | SSD1306 128 × 64 | `solo-<version>-GAT562-Mesh-Watch13.uf2` |
|
||||
@@ -27,7 +45,7 @@ Discussion: [MeshCore Discord](https://discord.gg/sdhYArU2jr) — [Solo firmware
|
||||
| LilyGO T-Echo Lite + KeyShield *(experimental)* | nRF52840 | GxEPD2 250 × 122 | `solo-<version>-LilyGo-T-Echo-Lite-keyshield.uf2` |
|
||||
| ProMicro *(experimental)* | nRF52840 | SSD1306 128 × 64 | `solo-<version>-ProMicro.uf2` |
|
||||
|
||||
Firmware files are on the [releases page](https://github.com/MarekZegare4/MeshCore-Solo/releases). Every binary serves the companion app over both BLE and USB serial.
|
||||
Firmware files are on the [releases page](https://github.com/MarekZegare4/MeshCore-Solo/releases). Every binary serves the companion app over Bluetooth and USB serial at the same time.
|
||||
|
||||
Heltec V3/V4 need [a keyboard or joystick wired up](./docs/solo/hardware.md#wiring-on-the-heltec-v3--v4); ProMicro needs a CardKB; the T-Echo Lite needs the KeyShield. The rest work out of the box.
|
||||
|
||||
@@ -42,9 +60,6 @@ Heltec V3/V4 need [a keyboard or joystick wired up](./docs/solo/hardware.md#wiri
|
||||
|
||||
**ESP32-S3 boards** — flash the `-merged.bin` at offset `0x0` with the [MeshCore Flasher](https://meshcore.io/flasher) or `esptool.py --chip esp32s3 write_flash 0x0 <file>-merged.bin`. The Wio Tracker L2 then updates itself over WiFi (Settings › System › Firmware update).
|
||||
|
||||
> [!IMPORTANT]
|
||||
> BLE has priority over USB serial: while a BLE connection is active the USB protocol is suspended.
|
||||
|
||||
---
|
||||
|
||||
## Documentation
|
||||
@@ -68,8 +83,14 @@ This README is protected from upstream merges via `.gitattributes`; after clonin
|
||||
|
||||
---
|
||||
|
||||
## Community
|
||||
|
||||
Questions and feedback: the [Solo firmware thread](https://discord.com/channels/1495203904898728149/1505294337884553447) on the [MeshCore Discord](https://discord.gg/sdhYArU2jr), or an [issue](https://github.com/MarekZegare4/MeshCore-Solo/issues).
|
||||
|
||||
---
|
||||
|
||||
## Contributors
|
||||
|
||||
Big thanks to [vanous](https://github.com/vanous), [marczykm](https://github.com/marczykm), [tchellow](https://github.com/tchellow) and [3urobeat](https://github.com/3urobeat).
|
||||
Big thanks to [vanous](https://github.com/vanous), [marczykm](https://github.com/marczykm), [tchellow](https://github.com/tchellow), [3urobeat](https://github.com/3urobeat) and [pmow](https://github.com/pmow).
|
||||
|
||||
Built on upstream [MeshCore](https://github.com/meshcore-dev/MeshCore) and its [community](https://github.com/meshcore-dev/MeshCore/graphs/contributors).
|
||||
|
||||
@@ -1,3 +1,154 @@
|
||||
## MeshCore Solo Companion Firmware v2.0
|
||||
|
||||
The biggest Solo release so far:
|
||||
- the Wio Tracker L2 with a colour touch interface;
|
||||
- four e-ink builds for the Wio Tracker L1;
|
||||
- a new interface on the OLED;
|
||||
- the settings the phone app used to keep to itself, now on the device.
|
||||
|
||||
Built on MeshCore 1.18. This page lists everything new since 1.28. Testers coming from a release candidate will find what changed since rc3 at the end.
|
||||
|
||||
> [!WARNING]
|
||||
> **Coming from 1.x: your settings start again from the defaults**, apart from the node's name and position, its radio settings (frequency, bandwidth, spreading factor, coding rate, TX power), the Bluetooth PIN and the default scope, which carry over.
|
||||
>
|
||||
> **Coming from rc1, rc2 or rc3: every setting starts again from the defaults**, including the **device name, the radio settings and the Bluetooth PIN**. 2.0 saves its settings in a new file, `/prefs.json`, and doesn't read the release candidates' file. **Set your radio first** (Settings › Radio, or the app), or the device won't hear your mesh.
|
||||
>
|
||||
> Either way, your identity, contacts, channels, scope list, messages, waypoints and trails stay as they are, and you don't need to erase the flash.
|
||||
|
||||
> [!NOTE]
|
||||
> **Wio Tracker L2:** from rc1 or later, Settings › Firmware update finds 2.0 and installs it over WiFi.
|
||||
|
||||
### New devices and builds
|
||||
|
||||
- **Wio Tracker L2**, with a colour touch interface built for its 320 × 240 screen:
|
||||
- **Home**: a phone-style home screen with the clock, telemetry, a small map and the apps, which you can arrange. Pull down from the status bar for the quick panel: Bluetooth, WiFi, GPS, sound, trail and live sharing switches, advert, lock and brightness.
|
||||
- **Map**: an offline map from the microSD card, downloaded on the device over WiFi, with hiking trails, a grid, a scale bar and saved trails. **Layers**: Topo, Light, Dark, Satellite and Esri Topo.
|
||||
- **Messages**: history kept on the SD card.
|
||||
- **GPS** on three tabs: Sky, Signal and Details.
|
||||
- **Diagnostics**: an RF noise tab, and charts with a readout under your finger.
|
||||
- **Clock**: alarm, timer, stopwatch, calendar, and a big clock in the splash's lettering.
|
||||
- **A dark and a light theme**, with an accent colour.
|
||||
- **Flashlight** app.
|
||||
- Also: a screen PIN, screenshots, the SD card as a USB drive, and firmware updates from GitHub over WiFi.
|
||||
- **Four Wio Tracker L1 E-ink builds:**
|
||||
- **2.13" landscape**, with a larger 8 × 13 font.
|
||||
- **2.13" portrait**: the tall screen fits whole message bubbles, a trail map with a height profile, the clock, the calendar and charts.
|
||||
- **4.2" 400 × 300** (`WioTrackerL1Eink42`): a 9 × 15 font, its own icons, and screens laid out for the room: status tiles, a node list with a detail pane, charts and the sky view.
|
||||
- **4.26" 800 × 480** (`WioTrackerL1Eink426`, Good Display GDEQ0426T82), laid out like the 4.2", with **Text size** and **Icon size** in Settings › Display. Contributed by @pmow.
|
||||
|
||||
### A new interface on the OLED and e-ink
|
||||
|
||||
- **Home pages slide sideways**, with quick panels and a map page. Each panel's first row is the way into the full screen ("All settings", "All messages", "All tools"); the rows after it are shortcuts.
|
||||
- **One Status page and screen** replace the Radio, GPS and Sensors pages and Diagnostics.
|
||||
- **Settings** use one list style throughout, with switches for on / off values.
|
||||
- **Alerts drop in from the top** as a banner and slide away. **Message alert** in Settings › Display picks the banner, a small envelope with a count beside the battery, or no alert.
|
||||
- **Popups, alerts and bubbles** share one soft-cornered frame. Tab bars glide, and the page below slides in. The screen redraws only the parts that changed.
|
||||
- **A bolt beside the battery** while USB power is connected (nRF52 boards and the L2).
|
||||
- **Nearby › Map**: the nodes with a position and you on one view.
|
||||
- **Clock tools**: a calendar with today and the alarm's days.
|
||||
- **Tools › Satellites**: a sky plot and a signal bar for each satellite.
|
||||
- **Tools › System › Flashlight**: the whole screen lit (not on e-ink).
|
||||
- **The keyboard's cursor mode** marks the place between letters, and Up / Down move a word.
|
||||
|
||||
### The phone app's settings on the device
|
||||
|
||||
- **Privacy**: whether your adverts carry your position, and how exactly: **Exact**, or rounded to about 100 m, 500 m or 1 km on a fixed grid. A fixed position, typed in or taken from a waypoint. Who may ask for your status, location and sensors. The Bluetooth PIN. Precision contributed by @pmow.
|
||||
- **Adding contacts**: all heard nodes or only some types, up to how many hops, and whether to replace the oldest when the list is full.
|
||||
- **Advanced radio**, at the end of Radio: path hash size, double ACK, listen before talk, interference threshold, RX boost, RX delay and airtime.
|
||||
- **Per contact**: who may ask for its telemetry, reset its path, share it with the nodes nearby.
|
||||
- **Factory reset** in Settings › System, asked twice.
|
||||
- **A console**: the phone app's console and the site's USB tools take upstream MeshCore's companion commands, plus a key for every setting (`keys`, `get`, `set`).
|
||||
- **The app on Bluetooth and USB at the same time.** A Bluetooth connection no longer shuts the USB link, and turning Bluetooth off leaves USB on.
|
||||
|
||||
### Messages and contacts
|
||||
|
||||
- **A conversation opens at its first unread message**, under a "New" line. Messages that arrive while the screen is dark or locked stay unread until you see them.
|
||||
- **The bytes a message has left**, counted as it will go out, shown over the last 40 bytes. Nothing past the limit can be typed or sent.
|
||||
- **Path and trace**: **Path / trace** in a contact's options (**Route** in a node's card on the L2):
|
||||
- Edit the repeaters a message goes through.
|
||||
- Trace the path out and back, with the signal in dB for every hop.
|
||||
- **Find where** shows where the path stops.
|
||||
- **Keep** a route, so a path heard from the node doesn't replace it.
|
||||
- **Channel order** in Settings › Contacts: by slot, newest message first, or by name. A channel's scope can be **Default**, which follows the scope the list marks as default.
|
||||
- **QR codes**: of this manual, and of your contact for another phone to add (Status › System; Settings › About on the L2).
|
||||
- **Unread counts show a "+"** when a full history has dropped older messages.
|
||||
- **Quiet hours** mute the device on a schedule and keep the screen dark for new messages. The alarm still rings.
|
||||
|
||||
### Navigation and the map
|
||||
|
||||
- **Pointers to other nodes**: Nodes shows an arrow to each node beside its distance. Node detail shows how many repeaters a message takes to reach it. The L2 and the e-ink also draw a compass.
|
||||
- **Packet flow**: every packet the radio hears is drawn as a line from its origin, through the repeaters, to you, in a colour for each kind, with a legend. Off by default: **Flow** in the Nodes map's options, Map options › On the map › **Packet flow** on the L2.
|
||||
- **Trails record altitude**, with a height profile showing the climb and the highest and lowest points. GPX exports carry the altitude.
|
||||
- **Live location sharing has its own scope**, and each session ends by itself after 1–12 h.
|
||||
|
||||
### Device
|
||||
|
||||
- **A screen-lock PIN**, including at boot. The radio and the app keep working while the screen is locked. Contributed by @3urobeat.
|
||||
- **Battery curve**: set your cell's voltage at each 10 % step.
|
||||
- **The clock survives a power loss**: it is saved every 30 minutes and restored on the next start.
|
||||
|
||||
### Fixes
|
||||
|
||||
- **Pwr save (RX duty-cycle) is disabled.** With it on, the radio missed every packet from a sender with a different preamble length, such as a repeater on firmware before 1.16.
|
||||
- **Signing from the app failed on the L1**: the device promised a buffer it couldn't allocate.
|
||||
- **GPS power saving never updated the position**: it put the receiver back to sleep before a new fix.
|
||||
- **Sending no longer stutters** while the contact list is saved.
|
||||
- **Each packet heard could hold the device up for up to 300 ms** when no app was connected over USB.
|
||||
- **Settings were lost on restart on a device that had run Meshtastic.**
|
||||
- **Settings, contacts, channels, trails and waypoints could be lost** if the power went at the wrong moment while saving.
|
||||
- **The radio stays serviced while the e-ink screen refreshes**, so a long refresh no longer misses packets.
|
||||
- **ESP32 boards stay findable over Bluetooth** after the Bluetooth stack restarts.
|
||||
- **Bluetooth switched off stays off** over a reboot or hibernation.
|
||||
- **Messages:**
|
||||
- A flood DM's acknowledgement folded into the return path now reaches the screen.
|
||||
- A late acknowledgement for an earlier attempt marks the message delivered.
|
||||
- A direct message's last retry drops the direct path and floods.
|
||||
- A failed send keeps the text you typed.
|
||||
- A message from someone named "Me" is no longer shown as yours.
|
||||
- **Scopes:** removing a scope moves its channels to the default, not to unscoped, and adverts use the default scope too.
|
||||
- **Channels:** joining a #channel trims spaces and keeps the case, as the app does.
|
||||
- **The room bot** no longer answers the old posts a room replays after login.
|
||||
- **The alarm** follows a change of time zone.
|
||||
- **A new auto-advert interval** counts from the last advert.
|
||||
- **The nRF52 builds queue up to 128 messages** for the app while it is disconnected.
|
||||
- **Wio Tracker L2:**
|
||||
- WiFi could fail to start or join after opening the map.
|
||||
- Fast typing: a second finger is a new tap, not a slide.
|
||||
- The SD card isn't remounted while it's a USB drive.
|
||||
- **Upstream MeshCore 1.18 fixes**, among them security fixes (a buffer overflow in decryption, console buffers), the ESP32 clock reading 1970 after a crash, and the TX power on LR1121 radios.
|
||||
|
||||
<details>
|
||||
<summary><b>Changes since rc3</b></summary>
|
||||
|
||||
- **Settings are saved in `/prefs.json`** (see the warning above).
|
||||
- **The app on Bluetooth and USB at the same time.**
|
||||
- **Path and trace**, **packet flow**, **flashlight**, **channel order**, gliding tab bars, and the lettering clock on the portrait e-ink.
|
||||
- **Console**: `txdelay`, `direct.txdelay` and `agc.reset.interval`.
|
||||
- **Wio Tracker L2:**
|
||||
- A light theme and map layers.
|
||||
- A title bar with the clock on screens with a title, controls in one shape, and the Nodes filters in one row.
|
||||
- The quick panel no longer stalls or tears when pulled.
|
||||
- The GPS sky plot is no longer cut off.
|
||||
- **4.26" e-ink**: lines and outlines are drawn at the panel's scale, and a conversation no longer jumps on opening.
|
||||
- **Fixes**:
|
||||
- GPS power saving.
|
||||
- The 300 ms USB hold-up.
|
||||
- Saving when the power goes.
|
||||
- Scopes and the room bot.
|
||||
- DM retries and late ACKs.
|
||||
- #channel names.
|
||||
- The alarm and the time zone.
|
||||
- The auto-advert interval.
|
||||
- "Me".
|
||||
- `nan` in the console.
|
||||
- Auto pwr after a TX power change.
|
||||
- WiFi, fast typing and the SD card on the L2.
|
||||
- Upstream 1.18.
|
||||
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
## MeshCore Solo Companion Firmware v2.0-rc3
|
||||
|
||||
The third release candidate for 2.0. Settings carry over from rc1 and rc2; coming from 1.x, read the rc1 notes below first.
|
||||
|
||||
Reference in New Issue
Block a user