mirror of
https://github.com/dabeani/meshcoreterm.git
synced 2026-07-20 08:32:48 +02:00
Compare commits
12 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 46abe9b339 | |||
| da79b363a1 | |||
| cb20fd3470 | |||
| 28f9a842cb | |||
| f516a2d83f | |||
| 8be9e097da | |||
| 86d8f3923e | |||
| 2d6ef74f30 | |||
| 2f0a523862 | |||
| 02e823f731 | |||
| 2c9c46d93a | |||
| b0e286185f |
@@ -0,0 +1,3 @@
|
||||
# These are supported funding model platforms
|
||||
[GitHub Sponsors](https://github.com/sponsors) | `github: dabeani`
|
||||
[Kaufen Sie mir einen Kaffee](https://www.buymeacoffee.com/) | `buy_me_a_coffee: bmks`
|
||||
+107
-7
@@ -2,29 +2,123 @@
|
||||
|
||||
All notable changes to this project.
|
||||
|
||||
## [v0.9.11] (unreleased - WIP)
|
||||
## [v0.9.12] (unreleased)
|
||||
|
||||
### Upstream base upgraded: MeshCore v1.13 → v1.14
|
||||
## implemented Elecrow CrowPanel 7" companion radio support!
|
||||
|
||||
### unfinished
|
||||
- MAP is still WIP!
|
||||
|
||||
### Added
|
||||
- Radio activity LED: a small round dot in the top status bar (left of the device name) that flashes green for 250 ms whenever any LoRa signal is received — valid packets and CRC-error receptions alike. The dot shows an idle ring outline when quiet and fills solid green on any radio activity.
|
||||
- **GUI: contact list reachability badges condensed**
|
||||
- Reachability badges shortened: direct-link badge is now "D" (green), flood-route badge is now "F" (blue)
|
||||
- Last-heard time badge background changed from blue to dark/neutral so blue is unambiguously associated with flood-route only
|
||||
- **GUI: status-bar clock quick access**
|
||||
- Added a live time display in the status bar so current clock state/time is visible at a glance
|
||||
- Tapping the status-bar clock now opens Mgmt → Date/Time directly for quick adjustment
|
||||
- **GUI: contact list badge reordering and new device-byte badge**
|
||||
- Right-side badge order is now: `[1b/2b/3b]` `[TYPE]` `[ROUTE]` `[LAST_HEARD]` `[FAV]` `[GPS]` `[MAIL]`
|
||||
- New "device-byte" badge (`1b`, `2b`, `3b`) shows the address hash width used in the contact's last advert — dark background, visible when advert path data is available
|
||||
- **GUI: unread mail indicators moved to Msgs tab button**
|
||||
- Top status-bar unread envelope indicator (near WiFi/BLE badges) was removed to reduce clutter and improve signal-badge clarity
|
||||
- `Msgs` tab now shows a white envelope directly left of the label when channel messages are unread, and a red envelope directly right of the label when DMs are unread
|
||||
- Indicator sizes are scaled to tab text height so they stay readable without overpowering the button text
|
||||
### Changed / Improved
|
||||
- **Companion radio UI maintenance and cleanup**
|
||||
- UI codebase reorganized for easier long-term maintenance and safer follow-up changes
|
||||
- Core companion radio targets were revalidated to keep builds stable after the cleanup work
|
||||
- **Management log readability improved**
|
||||
- Long sender, destination, and packet text now wrap to the available screen width instead of being cut off early
|
||||
- Log detail view shows richer packet content before shortening is needed on very large payloads
|
||||
- Log scrolling and entry layout were optimized so the log page remains responsive even with larger entries
|
||||
- **More consistent device colors across the interface**
|
||||
- Device colors are now applied more broadly in the management log and detail views
|
||||
- Device identity colors are now deterministic and non-repeating across the global UI rules
|
||||
- **Channel and DM views stay more responsive while browsing larger histories**
|
||||
- Transcript rows, detail views, and touch hit-testing now reuse prepared message text instead of rebuilding the same sender/body data repeatedly
|
||||
- Scrolling, selection, and hashtag handling were tightened without reducing live refresh behavior for ongoing stats and message updates
|
||||
- **Documentation and build config follow-up completed**
|
||||
- Companion GUI guide wording and behavioral notes were aligned with current log capacity, wrapping behavior, identity-color usage, and clipboard path
|
||||
- Elecrow CrowPanel 7 GUI build now pins the tested Espressif platform release explicitly for reproducible builds
|
||||
- **CrowPanel 7 list readability and alignment improved**
|
||||
- Contacts, DMs, and Channels overview rows now use larger list text on the 7-inch panel profile
|
||||
- Row text, discovered-item labels, and related row actions are vertically centered using row-height-aware placement to avoid off-center rendering
|
||||
- **CrowPanel 7 global text readability uplift**
|
||||
- Baseline GUI text sizing was raised for the 7-inch panel profile so message views, detail pages, contacts detail, management screens, and related UI text paths render larger by default
|
||||
- Applied as an environment-specific profile only, keeping other device layouts unchanged
|
||||
- **CrowPanel 7 layout balancing pass for larger text**
|
||||
- Statusbar activity indicator, unread-message symbols, and WiFi/BLE badges were resized and re-centered to match the larger text profile
|
||||
- Message/detail and management line spacing were increased to reduce cramped wrapped text
|
||||
- Management header/action buttons were scaled up for better readability and touch comfort on the 7-inch display
|
||||
- **CrowPanel 7 header and button polish**
|
||||
- Chat transcript (Back/Custom/Send) and message-detail (Back/Reply/Del) button labels are now vertically centered in their row instead of being anchored to a fixed pixel offset
|
||||
- Management "Back" button label in sub-page headers uses dynamic text-height centering so it remains vertically centered at the larger CrowPanel 7 text size
|
||||
- Management header blue pager/back buttons (< >) gained more height for easier tapping
|
||||
- Management action buttons (Edit, Enable/Disable, Add, Del, etc.) are wider to accommodate longer labels without crowding
|
||||
- Status-bar battery icon and text are now vertically centered within the expanded CrowPanel 7 status-bar height instead of being pinned to a fixed y offset
|
||||
- **CrowPanel 7 comprehensive alignment pass across companion GUI**
|
||||
- Contact badges, contact detail header actions, RPT admin rows, map folder rows, confirm dialogs, room/RPT login actions, and telemetry/clock request controls now use row/button-height-aware vertical centering instead of fixed y offsets
|
||||
- Standalone action buttons now share a board-aware minimum height rule so CrowPanel 7 keeps readable text spacing while smaller targets preserve the previous compact sizing
|
||||
- Management advert two-line buttons now place text using text-size-aware offsets, keeping both lines centered as display text size changes
|
||||
- Management-style buttons now always render their label text (fixes blank button captions on Global/ACL/clock-sync/request/scan style actions)
|
||||
- **GUI regression build stability follow-up**
|
||||
- Removed stale per-variant Arduino framework package overrides from SenseCap Indicator TFT and Elecrow CrowPanel 7 configs to align with their active platform package set
|
||||
|
||||
|
||||
### Fixed
|
||||
- **GUI: Date/Time set dialog timezone mismatch**
|
||||
- Management overview and "Set Time" editor now both use the configured timezone consistently instead of mixing local display with UTC-oriented edit semantics
|
||||
- Manual Date/Time entry is interpreted as local wall-clock time for the active timezone (including DST rules), so users can enter exactly what is shown in the overview
|
||||
- Set-Time input prefill now uses local timezone time to match the visible Date/Time row
|
||||
- **GUI: contacts could become garbled/corrupted after malformed contact updates or persisted non-terminated names**
|
||||
- Contact update command parsing now enforces the full minimum frame length before decoding, rejecting truncated payloads instead of ingesting garbage bytes
|
||||
- Contact names loaded from frames and storage are now explicitly null-terminated to prevent string overrun into adjacent contact fields
|
||||
- Discovered-contact cache updates now use bounded copy for names, preventing overflow that could corrupt contact row state and right-side badges/actions
|
||||
- Persisted contact route lengths are sanitized on load so invalid values no longer destabilize contact rendering/state
|
||||
- **GUI: long-tap copy in message detail could paste only a truncated wrapped fragment**
|
||||
- Long-tap copy without drag-selection now copies the full message body instead of a single wrapped line fragment
|
||||
- Detail line-hit indexing now matches render indexing when sender prefix wraps to its own line, preventing off-by-one selection/copy mismatches
|
||||
- Clipboard persistence now receives the intended full copied message text for subsequent paste operations
|
||||
- **Management log truncation and readability regressions**
|
||||
- Long log entries no longer lose important sender/destination information when the text exceeds one line
|
||||
- Packet details now wrap across lines based on display size instead of stopping at early ellipsis in common cases
|
||||
|
||||
---
|
||||
|
||||
## [v0.9.11]
|
||||
|
||||
### Upstream base upgraded: MeshCore v1.13 → v1.14
|
||||
### Implemented device support for Heltec V4 with TFT +GPS
|
||||
### Implemented device support for Elecrow CrowPanel 3.5 TFT +SDCard
|
||||
|
||||
### unfinished
|
||||
- MAP is still WIP!
|
||||
|
||||
### Added
|
||||
- Radio activity LED: a small round dot in the top status bar (left of the device name) that flashes green for 250 ms on LoRa RX activity (including CRC-error receptions) and flashes red for 250 ms on LoRa TX activity. The dot shows an idle ring outline when quiet.
|
||||
- Map last-known-position auto-save: when GPS gets a valid fix, coordinates are persisted to flash immediately so the map restores the true latest position after reboot. Ongoing writes are still throttled (max once every 5 minutes) and only occur when coordinates change.
|
||||
- Map contact markers now show the node 1-byte ID prefix (2-digit hex, e.g. `1E`) instead of plain squares, using the same existing marker background coloring (hop color / selected highlight) with automatic black-or-white foreground contrast for readability. (still under construction)
|
||||
|
||||
### Changed / Improved
|
||||
- MAP marker tap behavior: tapping a ByteID marker now keeps selection on the map and shows a left-bottom info box with `Name`, `Age`, and `Distance` (km).
|
||||
- Mgmt → WiFi now supports saved WiFi Profiles: you can create multiple named profiles, keep separate SSID/password pairs per profile, switch the active profile from a dedicated saved-profile picker, delete saved profiles directly in that picker.
|
||||
- Mgmt → Global is leaner: compile-time rows for `MAX_GROUP_CHANNELS` and `OFFLINE_QUEUE_SIZE` are gone, `MAX_CONTACTS` moved to Mgmt → Contacts as `ACT/MAX Contacts`, and the Global `Reboot` / `Update & Upgrade` actions now use the compact side-by-side button style.
|
||||
- Mgmt → Contacts now includes `Manual add contact`, using the existing edit overlay for a two-step `Public Key` then `Name` flow with clipboard paste support in both fields.
|
||||
- MAP tile cache handling is quieter and more efficient: missing SD tiles are negatively cached briefly, repeated open attempts are avoided while offline, and tiles are retried automatically once Wi-Fi connectivity returns.
|
||||
- MAP marker tap behavior: tapping a ByteID marker now keeps selection on the map and shows a left-bottom info box with `Name`, `Age`, and `Distance` (km), without a separate floating name box.
|
||||
- MAP marker double-tap behavior: double-tapping the same ByteID marker opens that contact directly in Contact Detail.
|
||||
- MAP selected-marker label text now stays at a constant size while zooming, instead of scaling with map zoom. (still under construction)
|
||||
- Mgmt → Advert → Scan Neighbor Repeaters now shows an Add button only for repeaters not yet in Contacts, and tapping a repeater row opens Contact Detail instead of adding on name/row tap.
|
||||
- Mgmt → Advert now includes `Path Hash Mode`, and Mgmt → Contacts now includes `AutoAdd Max Hops`, matching the MeshCore v1.14 companion settings on-device. (be careful other repeaters/companions need minumum MeshCore v1.14+ to avoid compatibility issues when these settings are changed)
|
||||
- Mgmt → Contacts → `AutoAdd Max Hops` now cycles the full MeshCore v1.14 range `0..64` with the correct semantics: `0 = No Limit`, `1 = Direct (0 hops)`, and `N = up to N-1 hops`. (still under construction)
|
||||
- Mgmt → Contacts → `AutoAdd Max Hops` now opens an Edit field for manual numeric entry with validation across the full MeshCore v1.14 range `0..64`: `0 = No Limit`, `1 = Direct (0 hops)`, and `N = up to N-1 hops`.
|
||||
- DM message detail now shows delivery state for sent messages (Pending / Delivered / Not delivered), including ACK-based delivered updates.
|
||||
- Mgmt → Channels now treats the built-in `Public` channel like any other joined channel, including Share/Delete actions.
|
||||
- If the default `Public` channel was deleted, Mgmt → Channels → Join now shows a `Public` button that recreates it automatically only when it is currently missing.
|
||||
- T-Deck text editor now scrolls with the cursor when moving left into long input, so the beginning of the text remains visible while editing.
|
||||
- T-Deck Text editor now scrolls with the cursor when moving left into long input, so the beginning of the text remains visible while editing.
|
||||
- Text edit overlay uses smaller message-input text with wrapped visible lines for easier long-message editing.
|
||||
- Touch text-edit overlays now use a tighter full-screen keyboard layout with larger key labels, smaller action-bar labels, and consistent title/field sizing across Wi-Fi, BLE, repeater, and other edit targets.
|
||||
- The on-screen keyboard now supports two symbol pages (`SYM1` / `SYM2`) and horizontal swipe gestures across the key area to switch symbol pages faster on touch-only devices.
|
||||
|
||||
### Fixed
|
||||
- Elecrow CrowPanel 3.5 SD card initialization now uses the dedicated TF SPI wiring and shared mount helper, so `/MCTerm` prefs, clipboard storage, and map tile cache writes work on the board.
|
||||
- Companion-sent messages no longer appear twice.
|
||||
- GUI-origin channel messages now populate message-detail metadata consistently (route/path hint + timestamp/RSSI baseline), so detail fields are no longer empty compared to companion-origin sends.
|
||||
- DM detail delivery status now correctly updates for zero-hop/direct sends (no false "Not delivered" when ACK was received), and sent-message hops/RSSI/repeats metadata updates more reliably.
|
||||
@@ -42,6 +136,12 @@ All notable changes to this project.
|
||||
- Room-server `SVR` badges now use a distinct purple informational style instead of looking like blue action buttons.
|
||||
- Nickname colours are now applied consistently across Contacts, MAP labels/info, discovered/repeater neighbour lists, and contact detail headers so the same name keeps the same colour throughout the UI.
|
||||
- Mgmt → Contacts → `Purge w/o favs` works again; the final row is now reachable and tappable.
|
||||
- Heltec V4 TFT modern GPS bring-up now handles Quectel L76K modules correctly.
|
||||
- UI-modern companion radios with onboard GPS now keep the fast boot path while restoring full module-specific GPS init: Heltec V4 TFT preserves persistent L76K warm-start state and RTC sync, and LilyGo T-Deck Plus again applies the richer u-blox UBX runtime configuration even with GPS detect skipped.
|
||||
- Scroll gestures are now confined to the actual scrollable viewport across Msgs, DMs, contact detail, room console, repeater admin, and Mgmt pages with fixed headers or action rows, and top-edge list drag now clamps immediately so screens cannot be pulled into blank overscroll from buttons, title bars, or the first row.
|
||||
- Mgmt → Advert action buttons (Advert Direct / Advert Flood / Scan Rpts) are now rendered as three large side-by-side tiles matching the Mgmt overview style — no white border, easier to tap on touch screens.
|
||||
- Every button press across the entire GUI now shows an instant yellow ring at the touch point for 200 ms, giving clear visual confirmation that (where) the tap was registered.
|
||||
- Mgmt → GPS now includes a yellow Tracking section with flood-advert movement tracking, a persisted meter threshold, a lock-screen Tracking badge, and an orange tracking icon in the top status bar while active.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -4,6 +4,8 @@ Would be nice if you support me: https://buymeacoffee.com/bmks — thank you ver
|
||||
# Firmware "MC Term"
|
||||
Finally there is a name, "MC Term", M(esh)C(ore) Term(inal). We like Retro, you like Retro, we stay retro :-).
|
||||
|
||||
# v0.9.12.3 released for all supported devices (no online update!)
|
||||
|
||||
# MeshCore / additional GUIs for embedded mesh radios
|
||||
|
||||
MeshCore is a lightweight hybrid routing mesh protocol for packet radios... this Repo is mainly about the companion firmware for user-friendly UIs and (actually) support for devices such as the LilyGO T-Deck Plus and Seeed Studio SenseCap Indicator-TFT AND you can connect via BLE or WiFi with the typical APPs (WebUI, iOS,...).
|
||||
@@ -52,7 +54,7 @@ This firmware includes companion UIs and support for several devices; notable ex
|
||||
|
||||
Flash using the MeshCore web flasher:
|
||||
|
||||
1. Open https://flasher.meshcore.co.uk/ and choose "Custom Firmware".
|
||||
1. Open https://flasher.meshcore.io/ and choose "Custom Firmware".
|
||||
2. For first-time installation (use the *-merged version), perform a full flash erase (this removes all settings). *take care*, if you upgrade the version to a newer one, use the non-merged version!
|
||||
3. Upload the built firmware image and flash to your device.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user