12 Commits

Author SHA1 Message Date
Bernhard M 46abe9b339 Update README.md 2026-06-01 21:37:36 +02:00
Bernhard M da79b363a1 Update README.md 2026-05-28 07:59:51 +02:00
Bernhard M cb20fd3470 Update README for v0.9.12.1 release
Updated version number and release notes for v0.9.12.1, including bug fixes and new features.
2026-05-28 00:21:25 +02:00
Bernhard M 28f9a842cb Update MeshCore flasher URL in README 2026-04-25 19:04:54 +02:00
Bernhard M f516a2d83f Update README.md 2026-04-20 00:31:36 +02:00
Bernhard M 8be9e097da Update README.md 2026-04-14 07:38:50 +02:00
Bernhard M 86d8f3923e Update funding sources in FUNDING.yml 2026-04-09 08:00:24 +02:00
Bernhard M 2d6ef74f30 Add GitHub Sponsors funding option
Updated funding information to include GitHub Sponsors.
2026-04-09 07:59:38 +02:00
Bernhard M 2f0a523862 Update funding model format in FUNDING.yml 2026-04-08 21:03:14 +02:00
Bernhard M 02e823f731 Add funding options for GitHub and Buy Me a Coffee
Updated funding options to include GitHub Sponsors and Buy Me a Coffee.
2026-04-08 21:02:10 +02:00
Bernhard M 2c9c46d93a Revise CHANGELOG for v0.9.12 updates
Updated changelog with new features, improvements, and fixes for v0.9.12.
2026-04-04 01:01:54 +02:00
Bernhard M b0e286185f Update CHANGELOG for v0.9.11 release
Updated changelog for version 0.9.11 with new features, improvements, and fixes.
2026-03-15 22:28:29 +01:00
3 changed files with 113 additions and 8 deletions
+3
View File
@@ -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
View File
@@ -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.
---
+3 -1
View File
@@ -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.