Commit Graph
33 Commits
Author SHA1 Message Date
Trail Mate Dev 1bb0ee3b35 refactor: harden shared SPI ownership and ESP memory use 2026-07-26 14:02:58 +08:00
liu weikai 792b5c79b6 refactor startup to show display boot before services 2026-07-25 16:30:53 +08:00
liu weikai 112085f709 refactor ESP shared SPI coordination 2026-07-25 15:34:21 +08:00
liu weikai 3f63baaf64 build: trim pager and tdeck dependencies 2026-07-23 19:05:33 +08:00
liu weikai 4e291eed5b fix(runtime): stabilize storage and radio arbitration 2026-07-21 08:02:13 +08:00
liu weikai eced19abfc refactor(storage): partition protocol persistence 2026-07-20 22:28:48 +08:00
liu weikai bc4303dd47 feat(esp-idf): migrate P4 storage to SdFat and split LXMF runtime 2026-07-17 16:40:39 +08:00
liu weikai fc10860e4c feat(esp-idf): harden P4 Reticulum runtime
Validate T-Display P4 TFT ESP-IDF build after Reticulum runtime integration.

Build: idf.py -B build.t_display_p4_tft -D TRAIL_MATE_IDF_TARGET=t_display_p4_tft build
2026-07-17 00:01:22 +08:00
liu weikai 051922a55e Consolidate radio SPI access 2026-07-12 03:16:57 +08:00
liu weikai a453bb372b Migrate team and blob storage SPI gates 2026-07-12 02:04:53 +08:00
liu weikai d5a0be646e Harden track storage bus backpressure 2026-07-12 01:46:41 +08:00
liu weikai d73e89b00b Harden shared SPI backpressure boundaries 2026-07-12 01:15:42 +08:00
liu weikai 5385247fff Defer Reticulum directory IO and virtualize contacts list 2026-07-09 03:22:55 +08:00
liu weikai dac78e0008 Fix Reticulum mesh task stack pressure 2026-07-09 02:31:30 +08:00
liu weikai 12ec1f77cf Implement Reticulum runtime budget policy 2026-07-09 00:25:10 +08:00
liu weikai b248c126eb Coordinate Wi-Fi access runtime
Centralize Wi-Fi/HTTP ownership for MQTT, Reticulum gateway, firmware updates, route assets, and pack downloads.

Expose Reticulum display name from the configured user name and show it in Settings.
2026-07-08 23:05:03 +08:00
liu weikai b4691db697 Integrate Reticulum mode and network UI 2026-07-08 21:25:19 +08:00
liu weikai b467ec7719 fix(map): stream route and track file loading 2026-06-28 14:33:35 +08:00
liu weikai 72501f69c4 Prepare T-Echo-Lite UF2 release artifacts 2026-06-27 22:31:57 +08:00
liu weikai 4e34e7e0d6 chore(esp): guard meshtastic stack hygiene 2026-06-27 00:30:30 +08:00
liu weikai d739ec3c95 Burn down Arduino SD audio paths 2026-06-23 01:49:44 +08:00
liu weikai c1c6c2929c Add nRF52 message sound alerts 2026-06-16 21:31:35 +08:00
liu weikai afd92cd93f feat: add Cyrillic keyboard layout pack 2026-06-13 20:34:04 +08:00
Trail Mate Dev 71c443910e feat(cardputerzero): adapt Cardputer Zero 2026-06-08 22:59:07 +08:00
Trail Mate Dev cd9bab823f Add T-LoRa Pager LR1121 support 2026-05-30 17:13:51 +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 dcba11e920 Release 0.1.20-alpha 2026-04-21 14:42:02 +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
vicliuandGitHub 7bade6ab9c Gat562 mesh evb pro (#12)
* feat(gat562): wire nrf52 board runtime and bluetooth stack

* 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

* Add NRF Fusion Pixel font and fix Meshtastic RX

Integrate Fusion Pixel 8px as the NRF mono UI font stack and switch the mono runtime to a dedicated MonoFont/TextRenderer path that can render ASCII, CJK, and symbols from one asset set.

Add the generated NRF font assets and generator script, including the compact font format with per-glyph advance support, and fix the BDF bitmap parsing bug that previously produced blank ASCII glyphs on device.

Move the LVGL Noto CJK font asset out of shared modules into the ESP-specific platform tree and update the related build/config references so the ESP-only font boundary is explicit and NRF does not compile the LVGL asset by accident.

Update the mono UI runtime to use the new renderer, normalize major menu and title labels to uppercase, and wire the GAT562 UI runtime to the Fusion Pixel font.

Fix the core mesh adapter router so Meshtastic and MeshCore backends can coexist without overwriting each other, and ensure active protocol selection is applied before mesh config changes are pushed into the runtime.

Improve GAT562 runtime diagnostics by mirroring debug output to both Serial and Serial2, logging startup radio configuration, and logging raw RX packets with RSSI/SNR so radio-path issues are visible during bring-up.

Relax SX1262 receive polling so it no longer hard-gates RX handling on DIO1 state alone, avoiding a failure mode where the board appeared alive but never delivered packets into the receive path.

Align the NRF Meshtastic adapter with the working ESP behavior for channel handling: use the default expanded public PSK for an unconfigured primary channel, compute channel hashes from the active preset name or Custom label instead of a hard-coded Primary string, and apply the same logic to self-announcement/NodeInfo packets.

Add protocol-layer Meshtastic RX diagnostics for parse, decrypt, decode, text queueing, app-data queueing, unknown-channel, and dedup events to make packet flow visible while validating interoperability.

Fix early duplicate handling for relayed packets so the first valid packet is still delivered into text processing while later relays are correctly suppressed, which restores Broadcast conversation creation and message visibility in the CHATS page.

* feat(gat562): align nrf ui and meshtastic behavior

* Refine mono UI GPS pages and board diagnostics

* 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

* Refine gat562 mono UI and persist UI settings

* Fix settings persistence and GNSS UI behavior

* Improve mono UI paging and Meshtastic RX fallback

* Align nRF52 Meshtastic BLE and PKI behavior

* Refine mono UI node and chat interactions

* Fix deferred config persistence on gat562 BLE

* Refine mono node compass and GPS layouts

* Include node position in Meshtastic phone info

* Refactor shared board contracts out of ESP platform layer

* Persist node positions across restarts

* Ignore local compile commands database

* Sync README acknowledgements updates

* Apply CI formatting
2026-03-24 16:09:14 +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
liu weikai fb668525d7 first commit 2026-01-18 21:25:18 +08:00