14 Commits
v0.9.7 ... main

Author SHA1 Message Date
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
Bernhard M
0be6b97639 Update Elecrow display entry with URL
Added link for Elecrow with 3.5 Display in the README.
2026-03-15 02:37:15 +01:00
Bernhard M
ca1fdf5709 Update README with upcoming device support
Added upcoming device support information to README.
2026-03-15 02:35:08 +01:00
Bernhard M
02132aaa55 Update CHANGELOG.md 2026-03-10 09:56:04 +02:00
Bernhard M
fe2ebb0de7 Update CHANGELOG for version 0.9.9
Updated changelog for version 0.9.9 with changes, improvements, and fixes.
2026-02-15 17:47:23 +01:00
Bernhard M
f7a6be099c Update CHANGELOG for version 0.9.8
Updated changelog for version 0.9.8 with added features, improvements, and fixes.
2026-02-15 16:49:44 +01:00
Bernhard M
0bd7b0d620 Update CHANGELOG for v0.9.8 release
Added new features, improvements, and bug fixes across various modules including UI, Contacts, and MAP functionalities.
2026-02-15 16:48:49 +01:00
Bernhard M
749d1f0fab Create license.txt 2026-02-09 14:34:28 +01:00
Bernhard M
d0a82ce5d5 Revise CHANGELOG for v0.9.8 updates
Updated CHANGELOG with new features, improvements, and fixes for version 0.9.8.
2026-02-04 23:59:39 +01:00
Bernhard M
29e614d554 Update CHANGELOG with new features and fixes
Updated changelog with new features and fixes for various management and contacts components.
2026-02-01 22:14:30 +01:00
Bernhard M
d1f73a34da Update CHANGELOG for version 0.9.7
Updated CHANGELOG.md to reflect recent changes and fixes in the application, including improvements in the Repeater Admin layout and functionality.
2026-02-01 22:13:27 +01:00
Bernhard M
215a96066c Update CHANGELOG for version 0.9.8
Updated CHANGELOG.md to reflect new features, improvements, and bug fixes for version 0.9.8.
2026-02-01 14:08:28 +01:00
Bernhard M
d7eb6d87ea Fix duplicate message issue for hashtag channels
Fixed issue with adding new hashtag channels that could lead to duplicate messages.
2026-02-01 13:01:00 +01:00
Bernhard M
d90e198bf2 Update CHANGELOG for version 0.9.8
Add changelog entry for version 0.9.8 with new features and improvements.
2026-02-01 12:48:49 +01:00
3 changed files with 245 additions and 0 deletions

View File

@@ -2,6 +2,179 @@
All notable changes to this project.
## [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
- 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.
- 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 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.
- 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.
- T-Deck display wake behavior is now consistent: whether the screen turned off automatically or manually, it wakes via knob press only and no longer wakes on knob movement.
- Online AutoUpgrader manifest validation is now more robust (schema compatibility + target-key fallback), reducing false "manifest" errors.
- T-Deck keyboard backlight timeout now reliably turns the keyboard light off even after manual Alt+B keyboard-light activation.
- MAP now starts downloading and caching online tiles even when the SD card tiles folder is initially empty, as long as network tiles are enabled, Wi-Fi is connected, and the SD card is writable.
- Mgmt/Advert: Auto Advert Direct interval setting is now persisted correctly across reboots; values 4 h and 72 h were silently reset to Disabled on load due to a mismatch between the UI option list and the prefs sanitizer.
- Contact/DM/channel sender name colours are now clearly readable on dark backgrounds and far more distinct: the fixed 12-entry palette has been replaced with a full HSV colour-wheel generator (360 distinct hues at full brightness), so up to ~250 contacts each receive a unique, high-contrast colour.
- DM "Del(ete)" (Back long-press in DM view) no longer silently fails for contacts with names ending in "?" due to a parsing error in the delete confirmation dialog.
- AutoLock lock screen clock now counts automatically while the screen is on: the HH:MM:SS display updates once per second when idle (no touch). Clock pauses automatically when the screen turns off (display timeout or hardware button) and resumes on next wake. Display timeout continues to work normally while locked.
- Adding a repeater from Mgmt → Advert → Scan Neighbor Repeaters (and from Contacts → Discovered) now preserves the original seen time instead of resetting `Last heard` to `now`.
- Mgmt → Advert → Scan Neighbor Repeaters and the Repeater Admin `Neighbours` view now show only zero-hop/direct repeaters, excluding flooded ones.
- Msgs list scrolling is now visually consistent with Contacts: partially visible rows at the top edge of the Channels and DMs lists are rendered instead of popping in only once fully visible.
- 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.
---
## [v0.9.10]
### Changed / Improved
- Smoothed battery voltage display using averaging to reduce rapid value jumps in the status area.
- Battery/Duty-cycle toggle now reliably shows percentage mode (including while charging) instead of repeating volts.
- Mgmt/GPS now includes an AutoBaud toggle (enabled by default); Baud editing is blocked while AutoBaud is enabled.
- Mgmt/GPS now shows progress popups while switching AutoBaud and while restarting GPS, so long-running actions no longer look stuck.
- In timeout-only mode (autolock disabled), keyboard keys no longer wake the display; wake remains on recessed trackball press/click to reduce accidental pocket wake-ups.
- Internal clipboard is now mirrored to SD at `/clipboard.txt` (where SD is available), allowing out-of-band import/export and clipboard persistence across reboot.
- Text edit fields now support press-and-hold paste in addition to double-tap paste.
- Copy popups now specify what was copied (for example: channel secret, selection, word, PubKey) instead of only showing a generic "Copied" message.
- In chat views, press-and-hold now copies text directly from the touched message/detail line (broader "copy any text" behavior in transcripts/details).
- Press-and-hold copy is also available in Contacts rows and selected Mgmt text rows (RxRaw log + telemetry rows).
- Mgmt/Global rows now support press-and-hold copy as well (name/device ID/public key/constants/admin info/storage).
- Press-and-hold copy now also covers Mgmt/WiFi, Mgmt/BLE, and Mgmt/GPS rows.
- Manual display-off (single recessed trackball/button click) now wakes only on another recessed trackball/button click when autolock is disabled; with autolock enabled, existing wake behavior remains unchanged.
- On T-Deck navigation, trackball movement is now ignored while the display is off/soft-off or while the lockscreen is active.
### Fixed
- Transport switch confirm no longer freezes the UI/device when enabling BLE from transport-off mode; live BLE re-enable from OFF is now handled safely.
- Transport switching no longer freezes on BLE -> WiFi -> BLE round-trips; BLE is kept initialized during live transport toggles.
- Message rendering now respects embedded line breaks (`\n`) from incoming text (for example bot messages), showing each break on a new line.
- Room server session transcript no longer draws the topmost message through the message-window top boundary when scrolled.
- Channel messages now synchronize both ways between device GUI and companion app over WiFi (app->device and device->app).
- BLE PIN edit now accepts valid 6-digit values that start with zero (for example, 012345).
- Mgmt/GPS button row rendering and touch hitboxes are aligned again (including Defaults and Restart GPS rows).
- Mgmt/GPS AutoBaud now keeps scanning past noisy false-positive baud hits, and the displayed Baud value now reflects the detected runtime baud after AutoBaud evaluation.
- Mgmt/Advert touch mapping is corrected: Advert-Direct and Advert-Flood buttons now trigger the intended send mode consistently.
- DM detail "Del" button hit area is corrected; deletion now triggers when tapping inside the visible button.
- Screen timeout now turns the display fully off on touch devices (instead of only dimming to zero brightness).
- Mgmt/UI scrolling now clamps correctly at the bottom and no longer scrolls into empty space.
---
## [v0.9.9]
### Changed / Improved
- updated to mescore v1.13.0
- Initialize T-Deck I2S buzzer at boot (keeps it quiet when disabled) to avoid driver install from touch handlers and prevent UI lockups on LilyGo T-Deck.
- Accept login-OK responses from alternate sender identities when the response matches expected formats (fixes repeater login stuck cases).
- Adjusted conservative repeater request/timeout values and improved local CLI reply handling.
- Repeater + RoomServer pending waits: Flood min 30s, Direct min 15s (applies to login and other admin requests).
- Reduce idle CPU usage by yielding in the main loop (adaptive delay when screen is soft-off/no companion app connected) to improve power draw without changing functionality.
- Add separate keyboard backlight timeout setting in Mgmt/UI (T-Deck Plus), independent of screen timeout and autolock.
- Smooth fade when display/keyboard backlight turns off (soft-off / keyboard timeout) instead of snapping to black.
- Persist Map "info bar" (altitude bar) toggle (T key) across reboots.
- Moved "Custom QuickSend" configuration from Mgmt/UI to Mgmt/Messages.
- reduce power use in display off/soft-off state by increasing idle sleep and skipping non-essential touch/gesture processing until wake.
### Fixed
- Prevent UI freeze when toggling "All Sounds" after reboot on LilyGo T-Deck builds by ensuring I2S/buzzer hardware is initialized safely at boot.
- Fix repeater login hanging when the OK response arrives from a different sender identity.
- Harden Mgmt/Global "Reboot" to always restart on ESP32 (adds esp_restart() fallback and avoids sticky UI states).
---
## [v0.9.8]
### Added
- Contacts / Room Server; added room login + Room Console (transcript + send + logout) under Contact Detail.
- UI; added horizontal drag in text input fields to move the cursor (caret).
- Contacts: added small `RSTPath` button in Contact Detail to reset a contact's route/path.
- Power: added `PowerStatus` struct and `MainBoard::getPowerStatus()` helper; UI now reads consolidated power state for battery/charging/usb.
- Power (T-Deck Plus): added configurable ADC multiplier / VBAT divider ratio support (`adc.multiplier`) to allow per-device calibration.
- Mgmt / Contacts; added "Purge w/o favs" (purge all contacts except favourites).
- Mgmt / GPS; show UBX accuracy estimate (hAcc) when available.
- MAP (T-Deck Plus); added keyboard controls: W/A/S/D for panning, O/I for zoom in/out, R to recenter on self, T to toggle GPS/Zoom info window.
- MAP; added zoom level indicator overlay that displays briefly when zoom changes (keyboard or touch).
- MAP; added GPS info window (top-left) showing altitude, speed (km/h), and current zoom level in a compact 3-line display (toggleable with T key on T-Deck Plus).
- UI; added autolock feature - can be configured in Mgmt / UI -> LOCK to automatically lock the UI after a period of inactivity. Unlock by holding the unlock button or touching and holding the screen for 2 seconds.
- Mgmt / UI; added LOCK section with configurable Autolock toggle and Autolock Timer (seconds).
### Changed / Improved
- Contacts; service contacts are no longer treated like normal DM targets:
- Repeaters now route to Repeater Admin.
- Room Servers now route to the Room Console.
- UI; horizontal swipes that switch higher-level frames now require an edge swipe (keeps left/right scrolling available for the focused element).
- UI (T-Deck Plus); trackball left/right no longer switches the bottom menu tabs.
- UI (T-Deck Plus); when editing a text field, trackball left/right moves the text cursor (caret).
- MAP; scroll/pan inputs now operate on the map view itself (instead of page-level scrolling).
- Mgmt / UI Zoom can now be changed with "^" or "v" buttons.
- Mgmt / Contacts; Auto Add Types can now be set with freely combinable toggles (USR/RPT/SRV/SNS/OW) when Auto Add is disabled.
- Mgmt / Contacts; Auto Add Types now shows clearer labels (e.g., "USR (Users)").
- Contacts / Repeater Admin; reorganized Login screen layout to prevent status text overlap and improve readability.
- Contacts / Repeater Admin; added live login status lines (Direct/Flood send mode, wait countdown, result, role).
- GNSS; u-blox M10 nav tuning (portable dynModel + auto fixMode) and 1Hz rate for weak-signal stability.
- Mgmt / UI -> UI Zoom; improved zoom step granularity for finer control with extra buttons for more/less zoom.
- MAP; zoom level now automatically persists when changed (via keyboard or touch), eliminating the need for manual default zoom configuration.
- MAP; removed "Def. Zoom Lvl" setting from Mgmt / UI as zoom now auto-saves and restores on startup.
- MAP; moved zoom level indicator to top-left position (stacks under GPS info window when active).
- MAP; GPS accuracy circle now renders as an unfilled light-blue ring instead of a solid fill for better map visibility.
- UI; autolock is now disabled by default and only engages when enabled in Mgmt / UI -> LOCK.
### Fixed
- Contacts / Room Console; fixed transcript drawing over the "Room Console" title (partial refresh artifacts) and added a bordered transcript viewport.
- MAP (T-Deck Plus); fixed reversed zoom hotkeys: I now zooms in and O zooms out.
- DM editor; fixed being able to send DMs to Repeaters/Room Servers via existing DM threads (now blocked and redirected to the proper flow).
- Mgmt / Log: touch scroll release no longer triggers a tap on the last touched point (prevents click-through when stopping a scroll).
- Mgmt / Log: require a tap gesture before activating list actions to avoid scroll-release click-through.
- Boards (T-Deck Plus): repaired corrupted header and fixed VBAT conversion to use the new configurable multiplier; prevents miscalibrated battery percentage readings.
- Contacts / Repeater Admin: clear session and cached repeater data when leaving admin or switching repeaters (prevents stale values).
- Contacts / Repeater Admin: direct routes now send direct logins/requests; flood is used only when no path is known.
- UI: hide battery percentage while charging; avoid duplicated charging indicator.
- Mgmt / Channels; fixed an issue where adding a new #hashtag channel could show "Channel exists" and could lead to duplicate message display.
- Mgmt / UI; fixed Tiles Folder picker showing empty after reboot until Map was opened once.
- MAP; fixed an issue while moving the map out of touch and after returning, where the map would jump back to the original position.
- Contacts/Repeater Admin; fixed Login button hit-test offset in Contact Detail overlay.
- Contacts/Repeater Admin; fixed repeater password NVS persistence detection (saved state) and empty-password save/load handling.
- MSGS / Message details view; fixed the overscrolling of the top button bar.
---
## [v0.9.7]
### Added

View File

@@ -44,6 +44,9 @@ This firmware includes companion UIs and support for several devices; notable ex
- LilyGO T-Deck / T-Deck Plus — more details: https://lilygo.cc/en-us/products/t-deck-plus-1
- Seeed Studio SenseCap Indicator (TFT / D1Pro) — more details: https://www.seeedstudio.com/
# SOON
- Heltec V4 with Display! (v0.9.11) (WIP)
- Elecrow with 3.5 Display! (v0.9.11) (WIP) -> https://www.elecrow.com/pub/wiki/CrowPanel_Advance_3.5-HMI_ESP32_AI_Display.html
## Installation

69
license.txt Normal file
View File

@@ -0,0 +1,69 @@
MeshCore Firmware Binary Distribution
Copyright (c) 2025 Scott Powell / rippleradios.com
================================================================================
MIT License
================================================================================
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
This part includes improvements/changes done by Bernhard Marker:
================================================================================
Third-Party Software Attributions
================================================================================
This software includes or makes use of the following third-party libraries:
- RadioLib (MIT) - Copyright (c) 2018 Jan Gromeš
- Arduino Crypto Library (MIT) - Copyright (c) 2015 Rhys Weatherley
- RTClib (MIT) - Copyright (c) Adafruit Industries
- CayenneLPP (MIT) - Copyright (c) Electronic Cats
- ArduinoJson (MIT) - Copyright (c) 2014-2024 Benoît Blanchon
- ed25519 (Zlib) - Copyright (c) 2015 Orson Peters
- LovyanGFX (BSD-2-Clause) - Copyright (c) lovyan03
- Adafruit_LittleFS_stm32 (BSD-3-Clause) - Copyright (c) 2017 ARM Limited
- SdFat (MIT) - Copyright (c) Bill Greiman
- Sensirion I2C Libraries (BSD-3-Clause) - Copyright (c) Sensirion
- CRC32 (MIT) - Copyright (c) bakercp
- zlib_turbo (Zlib) - Copyright (c) BitBank Software
- AsyncElegantOTA (MIT) - Copyright (c) 2019 Ayush Sharma
- ESP32-targz (MIT) - Copyright (c) tobozo
ESP32 builds include:
- ESPAsyncWebServer (LGPL-3.0) - Copyright (c) me-no-dev
Source available at: https://github.com/me-no-dev/ESPAsyncWebServer
================================================================================
OpenStreetMap Attribution
================================================================================
This software downloads map tiles from OpenStreetMap at runtime when WiFi is
available. Map data is licensed under the Open Database License (ODbL).
© OpenStreetMap contributors
https://www.openstreetmap.org/copyright
Map tiles are not distributed with this software.
================================================================================
Source Code Availability
================================================================================
This is a binary-only distribution. The MIT License permits binary-only
distribution without requiring source code disclosure.