Commit Graph
50 Commits
Author SHA1 Message Date
Trail Mate Dev 8448b46712 chore: prepare 0.1.29-alpha release 2026-06-11 10:00:29 +08:00
Trail Mate Dev 71c443910e feat(cardputerzero): adapt Cardputer Zero 2026-06-08 22:59:07 +08:00
Trail Mate Dev 9862b6c1c3 docs(cardputerzero): record Pager-derived adaptation state 2026-06-02 11:56:49 +08:00
Trail Mate Dev bda67d17dc feat(cardputerzero): record Linux session contracts 2026-06-02 11:21:16 +08:00
Trail Mate Dev 091c155950 feat(cardputerzero): add dedicated Linux device shell 2026-06-02 10:48:46 +08:00
Trail Mate Dev fde1e028f3 docs(release): document 0.1.28-alpha validation (#43 #44 #46 #47 #48 #49 #50 #51) 2026-06-02 09:43:40 +08:00
Trail Mate Dev cd9bab823f Add T-LoRa Pager LR1121 support 2026-05-30 17:13:51 +08:00
Trail Mate Dev 7e40b55923 Refactor team runtime 2026-05-30 15:01:59 +08:00
vicliuandGitHub bf7068b02b 0.1.26-alpha release
* refactor: render chat rows from presentation state

* Fix Meshtastic channel sync and add MeshCore CN preset

* Add granular chat notification settings

* Add SD settings backup and restore

* Prepare 0.1.26-alpha release

---------

Co-authored-by: vicliu624 <vicliu@outlook.com>
2026-05-19 16:04:42 +08:00
vicliuandGitHub adf33068d7 v0.1.25-alpha (#30)
* Add uConsole GTK shell with SQLite map cache

* Improve uConsole GTK overview dashboard

* Detect uConsole hardware endpoints

* Add uConsole hardware binding and map fallback

* Improve uConsole settings and map UI

* feat: adapt uConsole Linux shell

* docs: document GPS settings and T-Deck UART noise

* style: apply clang-format

* site: update 0.1.25 release highlights

---------

Co-authored-by: vicliu624 <vicliu@outlook.com>
2026-05-12 01:24:04 +08:00
Trail Mate Dev 7fbd654c43 docs: specify uConsole AIO2 Linux target 2026-05-09 14:28:59 +08:00
vicliuandGitHub 71f10ae6d0 Feature/cardputer zero (#27)
* fix(tdeck): improve display startup and brightness handling

* fix(energy-sweep): use instant RSSI and only lock LoRa while scanning

* feat(cardputer-zero): add linux shells and M5 SDK baseline

* feat(cardputer-zero): add linux runtime baseline and shell ui simulator

* feat(cardputer-zero): unify linux shell boot and polish simulator

* docs(cardputer-zero): define final-shape adaptation spec

* feat(cardputer-zero): integrate shared linux runtimes and pages

* fix(linux-sim): mount repo root in dev container

* Fix GPS runtime semantics and transport init

Add a GPS specification and align platform runtimes around explicit GPS enable, power, receiver configuration, and external NMEA export semantics.

Keep internal NMEA parsing independent from external export settings, stop treating gps_mode as an enable flag, and update phone/UI config paths to use gps_enabled.

Decouple board-level GPS transport readiness from UBX receiver probing on T-Deck, T-Deck Pro, and T-LoRa Pager, and let boards own UART teardown.

Verified with pio run -e tdeck, pio run -e tlora_pager_sx1262, pio run -e gat562_mesh_evb_pro, and pio run -e tdeck_pro_a7682e.

* Add Russian localization pack

Add an installable European Cyrillic Extended locale bundle with Russian translations, Cyrillic font metadata, and package catalog entry.

Credit polarikus for the Russian translations based on the polarikus/trail-mate localization PR.

* Prepare 0.1.23-alpha release

* Fix T-Watch Morse release build

* Format CI-checked sources

* Fix Cardputer Linux CI dependencies

* Fix WSL validation smoke target build

* Prepare 0.1.24-alpha release

* fix: unblock Cardputer Zero Linux CI
2026-05-09 14:03:49 +08:00
liu weikai c4e300a57f feat(ui): converge shared map viewport and localization contracts 2026-04-22 22:10:45 +08:00
liu weikai 063f0960e5 Optimize startup flow and split zh-Hans font packs 2026-04-21 10:20:01 +08:00
vicliuandGitHub b2229138ed Tdeck (#24)
* fix(tracker): apply localized labels on tracker page

* feat: add runtime locale packs and font fallback

* release: prepare 0.1.19-alpha
2026-04-21 03:19:05 +08:00
vicliuandGitHub e5c11d6473 Feature/localization from main (#23)
* feat(ui): add runtime English and Chinese localization

* fix(meshtastic): harden t-deck send and ack recovery

Align the T-Deck SX1262 setup with the reference firmware, switch critical radio SPI paths to blocking access, and share RX restart state between direct send paths and the radio task so TX-to-RX handoff cannot silently get stuck.

Also unify Meshtastic wire transmission through a single helper, keep wire packets for ACK-tracked sends, retry ACK timeouts up to three times, and document the issue #21 repair checklist.

Validation: local builds passed for tdeck, tlora_pager_sx1262, lilygo_twatch_s3, and gat562_mesh_evb_pro; clang-format check passed.

Testing status: not fully tested on hardware yet.

* Refactor LXMF runtime toward full Reticulum alignment

Split adapter runtime state into transport, link, and propagation domains.

Add pending path request tracking, stronger link teardown semantics, outbound link establishment, deferred link payload flushing, link keepalive/stale handling, and inbound split-resource assembly.

Document the authoritative Reticulum/LXMF runtime alignment plan and mark the older device-mode plan as historical context.

* feat(web): add pages site and web flasher release flow
2026-04-19 21:08:59 +08:00
liu weikai d636eb6398 WIP: rescue misbranched LXMF and RNode work 2026-04-17 10:03:08 +08:00
liu weikai f2a964e9e8 docs(map): update base tile directory examples 2026-04-15 21:52:39 +08:00
liu weikai 379fce15c1 Refactor GAT562 runtime and stabilize Meshtastic BLE
Refactor the GAT562 board runtime by extracting dedicated GPS and input runtime components and routing config application through a focused runtime apply service.

Narrow the nRF52 BLE manager dependencies, rework the Meshtastic BLE transport to better match the Android client handshake, and harden the FromRadio/FromNum flow with improved staging, read pacing, diagnostics, and stack-safe config snapshot generation.

Also repair repository text encoding issues in docs and UI comments, and add Meshtastic BLE timing documentation to capture the expected Android/firmware interaction model for future debugging.
2026-04-10 10:03:22 +08:00
liu weikai e0076d707b Align Meshtastic phone sync and chat UI refresh 2026-03-27 22:32:51 +08:00
liu weikai 054018d814 Fix board ownership drift and restore pager walkie support 2026-03-25 12:37:04 +08:00
liu weikai 25381c5c22 refactor: align board runtimes, GAT562 app shell, and BLE integrations
- migrate ESP board-specific implementations and runtime adapters into boards/*
- continue GAT562/Tab5/UI runtime alignment across app and board layers
- sync BLE and runtime integrations, and apply repository clang-format rules
2026-03-23 11:20:39 +08:00
liu weikai 9cf12df3e8 Refine mono UI GPS pages and board diagnostics 2026-03-20 02:07:55 +08:00
liu weikai 9ade3e9a85 feat(gat562): align nrf ui and meshtastic behavior 2026-03-19 23:04:42 +08:00
liu weikai 6edfd084f3 refactor(chat): align shared BLE cores and nrf meshtastic routing
- extract Meshtastic and MeshCore phone/business flows into shared core_chat BLE cores with owner hook seams for ESP and nRF backends

- replace nrf-specific lite adapters with board/platform adapters that consume shared cores and shared storage contracts

- extend nrf Meshtastic radio path with packet history dedupe, flooding rebroadcast, route discovery/traceroute responses, routing ACK/error handling, observed relay learning, retransmit queueing, and next-hop persistence

- persist nrf device identity and node metadata more explicitly, including next-hop state and node-id initialization support

- move nrf chat/contact/blob storage further toward InternalFS-backed persistence and update contact/node store behavior accordingly

- wire gat562 protocol/app facade pieces to the concrete nrf stores/adapters and add supporting app time-sync hooks used by platform runtimes

- add owner-hook split files and planning/status docs to document the ongoing alignment with the reference meshtastic-firmware multi-platform structure
2026-03-19 11:19:02 +08:00
liu weikai de975f54a3 feat(gat562): wire nrf52 board runtime and bluetooth stack 2026-03-18 19:28:31 +08:00
vicliuandGitHub d320b6511d Unify PlatformIO and ESP-IDF around a shared UI/runtime shellRefactor/repo structure (#11)
* Unify PlatformIO and ESP-IDF around a shared UI/runtime shell
2026-03-12 01:17:46 +08:00
vicliuandGitHub e429db9797 Feature ble (#10)
* Implement TDeck touch-friendly home grid and power management updates

* Add initial M5Stack Tab5 ESP-IDF environment and board skeleton

* BLE/Meshtastic: apply config at runtime and fix Admin/Telemetry for app compatibility

Meshtastic Admin set_* immediate responses:
- After set_channel: respond with get_channel_response (echo applied channel).
- After set_config: respond with get_config_response for the config type that was set.
- After set_module_config: respond with get_module_config_response after saveModuleConfig().
- After store_ui_config: respond with get_ui_config_response.
This prevents the Meshtastic app from marking these operations as failed when the device applied config but did not send a reply.

DeviceMetrics and Telemetry:
- Add buildDeviceMetrics() in meshtastic_ble (battery from board, uptime_seconds from millis).
- Set has_device_metrics and device_metrics in buildSelfNodeInfo() so the app receives battery and uptime for the local node.
- Give Telemetry module config explicit defaults in loadModuleConfig() (device_update_interval, device_telemetry_enabled, etc.) so get_module_config returns a valid structure.

Apply config at runtime (so BLE-written config takes effect):
- Add AppContext::applyPositionConfig() to push gps_interval_ms and gps_mode to GpsService (setCollectionInterval, setGnssConfig). Call it from BLE set_config when position config is written.
- Add screen_sleep.h with getScreenSleepTimeout() / setScreenSleepTimeout() declarations (implemented in main.cpp). BLE display, device_ui, and store_ui_config now call setScreenSleepTimeout() instead of writing Preferences only, so the in-memory screen timeout updates immediately without reboot.
- Settings UI includes screen_sleep.h and uses the same API.

Other:
- BLE topbar asset and icon when BLE is enabled (ble_topbar.png/c, ui_status, LV_Helper).
- Node store: PersistedNodeEntry and INodeStore gain hw_model; mt_adapter and contact_service pass/store it for Meshtastic app compatibility.
- Variant env tweaks (tlora_pager, tdeck). Event bus and minor cleanups.

* feat: align Meshtastic BLE/iOS flow and add T-Deck keyboard support

- add BLE pairing popup and align more Meshtastic admin/status behavior with iOS expectations
- complete BLE MQTT client proxy bridge and persist OK-to-MQTT / ignore-MQTT channel settings
- add native T-Deck I2C keyboard input, backlight control, and SPACE-to-menu behavior
- fix chat bubble wrapping, contact removal sync, and pager wake/menu regressions

* fix: restore lilygo_twatch_s3 build

- remove duplicate M5Tab5Board isGPSReady declaration
- exclude M5Tab5Board.cpp from T-Watch S3 source filters to avoid duplicate board singletons
- verified with pio run -e lilygo_twatch_s3
2026-03-06 21:01:35 +08:00
liu weikai 3b7355fea7 Add boot splash screen and update assets 2026-02-24 01:39:10 +08:00
liu weikai c948461269 feat(mesh): align MeshCore behavior and unify discovery UX
- complete MeshCore protocol alignment work across chat/team/hostlink paths

- refactor Contacts Discover into a mode-based action list for consistent UI behavior

- add MeshCore identity/crypto persistence plumbing and related protocol handlers

- document Meshtastic + MeshCore dual-compatibility in README (EN/CN)
2026-02-22 09:33:38 +08:00
liu weikai 72e51f23f8 docs: add Energy Sweep docs and release notes for 0.1.11-alpha 2026-02-21 11:15:25 +08:00
liu weikai a9e28c352a feat: add Energy Sweep app with region-based scan range 2026-02-21 10:57:17 +08:00
liu weikai 832a215e4a feat(team-hostlink): add semantic team location flow and HostLink CMD_TX_APP_DATA
This commit closes the PC-to-device app-data send path and wires team location semantics end to end across protocol, service, and UI.

HostLink protocol and runtime:

- Add CMD_TX_APP_DATA (0x15) frame type and CapTxAppData capability bit.

- Implement command parsing for portnum/to/channel/flags/payload and validate payload bounds.

- Add a pending command queue and process commands from AppContext::update() to keep IO task light and avoid direct service execution in the USB thread.

- Route Team app portnums (300..304) to TeamController send paths, including Team mgmt wire decoding and plain/encrypted mgmt selection via flags.

- Preserve generic mesh sendAppData fallback for non-Team app portnums.

- Update hostlink protocol docs with CMD_TX_APP_DATA payload, flags, and Team source mapping/compat notes.

Team service/controller send path:

- Extend TeamController and TeamService send APIs with dest and want_ack parameters for mgmt/chat/position/waypoint/track.

- Add explicit send error mapping for hostlink result reporting and improve last_send_error assignment on encode/encrypt/mesh failures.

UI and data model for semantic location markers:

- Add TeamLocationMarker icon enum helpers and integrate source->icon mapping in UI rendering.

- Update team chat compose Position action to open a marker picker dialog with icon choices and cancel flow.

- Encode selected marker in TeamChatLocation.source, auto-fill label, and send as TEAM_CHAT location payload.

- Extend ChatMessage model with team_location_icon and geo fields so conversation and map can render marker semantics.

- Show semantic icon in team conversation message bubble when location source is a known marker.

- Add GPS map overlay for recent semantic team location markers with member/time labels and lifecycle cleanup.

Assets and docs:

- Add LVGL image assets for AreaCleared/BaseCamp/GoodFind/Rally/SOS markers and source PNGs.

- Update TEAM/HostLink docs with source enum mapping and unknown-value fallback guidance for PC clients.

Other platform-specific input adjustment:

- Refine T-Deck LVGL encoder data reset path to avoid stale state interactions in the input callback.
2026-02-18 00:41:51 +08:00
vicliuandGitHub 4c16f765db map (#9)
* feat: maps
2026-02-17 11:40:19 +08:00
vicliuandGitHub 3ed34fbbc6 Sstv (#8)
* feat: add SSTV docs and fix chat compose input
2026-02-12 16:23:01 +08:00
vicliuandGitHub 27bc13c920 feat: sky plot (#7)
* feat: sky plot
2026-02-09 01:51:08 +08:00
liu weikai d64ff2080a docs: edit 2026-02-08 21:46:30 +08:00
vicliuandGitHub b4a5055092 Feature aprs (#6)
* feat: PA adjust

* feat: topbar status icon

* fix: settings bug

* feat: unify UI theme and node info link stats

* Improve mesh handling, input back actions, and keyboard alt symbols

- add IRQ/NVS diagnostics for radio and persistence
- refresh link stats and adjust NodeInfo/Position reply handling
- handle Backspace to trigger page back actions
- make Alt act as symbol modifier and rename GPS menu to Map
* fix: hostlink
* style: format
2026-02-08 20:21:51 +08:00
vicliuandGitHub 0e3e7800f8 Feature walkie talkie (#5)
* feat: walkie talkie
2026-02-06 15:59:33 +08:00
liu weikai 03afe5fc88 fix: settings 2026-02-04 19:12:41 +08:00
liu weikai 6fbcbce48c feat: team tracker 2026-02-04 11:06:53 +08:00
liu weikai 2a6e374ce8 chore: update ci formatting check and docs 2026-02-02 15:15:00 +08:00
vicliuandGitHub 4d941c5ca6 fix: ui (#4)
* feat: join team

* fix: ui
2026-02-02 03:46:17 +08:00
liu weikai 2a91fc3aec fix: error node id 2026-01-29 11:19:15 +08:00
vicliuandGitHub 796fbcc0b9 New env t deck (#3)
* feat: support t-deck plus
2026-01-28 01:57:53 +08:00
vicliuandGitHub 48129b9cea Refactor UI lifecycle (#2)
* refactor: prepare UI lifecycle restructuring
2026-01-26 21:25:59 +08:00
vicliuandGitHub e466060fbd Develop team (#1)
* draft

* Adjust IME candidate scrolling and space behavior

* Remove IME buffer label and update remaining counter

* Align Meshtastic handling and stabilize chat UI

- Align Meshtastic send/receive flow: add routing ACK decoding/log mapping, ack timeouts, channel tracking, and richer RX/TX diagnostics.

- Persist and manage PKI peer keys; add PKI backoff on NO_CHANNEL/UNKNOWN_PUBKEY and fall back to PSK when needed.

- Improve chat UI state handling: safer app switching with exit callbacks, active app clearing on menu return, and safer chat container cleanup.

- Fix Contacts → Compose parent selection to avoid UI tree mismatch; add broadcast compose support and refine action button behavior.

- Add UI debug logging for screen/parent validity and child counts to diagnose black-screen/stacking issues.

- Apply timezone offset helpers for display-time formatting and reuse in screenshot timestamps.

* Add changelog entry and time helpers
2026-01-21 04:36:27 +08:00
liu weikai ad6969fd58 docs: fix 2026-01-20 01:20:17 +08:00
liu weikai 04a4f91aed Update mesh protocol handling and settings 2026-01-20 01:11:51 +08:00
liu weikai fb668525d7 first commit 2026-01-18 21:25:18 +08:00