Commit Graph
29 Commits
Author SHA1 Message Date
Trail Mate Dev 13852e693b fix(meshcore): restore discovery and send diagnostics (#49 #50 #51)
Preserve protocol-specific send/discovery failures through the router and ChatService, restore MeshCore group fallback key handling, classify signed adverts/discovery responses on ESP/nRF52, and enable target logs plus smoke coverage so the next failure has actionable detail.
2026-06-02 04:47:37 +08:00
Trail Mate Dev 16228ecafe Add SDXC card support 2026-05-30 18:13:35 +08:00
Trail Mate Dev cd9bab823f Add T-LoRa Pager LR1121 support 2026-05-30 17:13:51 +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 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
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
liu weikai b05a4aa5b0 Gate SSTV on audio input capability 2026-04-16 00:27:11 +08:00
liu weikai 1f795dbf2f Define LoRa tx power caps per board 2026-04-12 10:05:31 +08:00
liu weikai 7bc9c18cc3 fix: gat562 settings 2026-04-11 15:24:50 +08:00
liu weikai e2a586bc1d Add T-Deck Pro board bring-up and sync pending UI fixes 2026-03-28 10:53:25 +08:00
liu weikai 9cd666ad3b Refactor shared board contracts out of ESP platform layer 2026-03-24 11:11:33 +08:00
liu weikai 530d861378 Align nRF52 Meshtastic BLE and PKI behavior 2026-03-23 21:40:47 +08:00
liu weikai 8ccb1732f2 Refine gat562 mono UI and persist UI settings 2026-03-23 14:22:25 +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 9ade3e9a85 feat(gat562): align nrf ui and meshtastic behavior 2026-03-19 23:04:42 +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
liu weikai 76d83ef7bf feat(ble,ui): align mesh BLE flows and extract shared two-pane UI
- improve MeshCore BLE security, pairing, MTU handling and passkey popup behavior

- align Meshtastic ack, traceroute and MQTT proxy handling with companion expectations

- extract shared two-pane nav/layout/style components and migrate chat, contacts and settings

- simplify tracker and contacts list interaction, scrolling and visual consistency
2026-03-08 10:41:15 +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 40fac02439 feat(audio): add protocol-agnostic message prompt tones for pager and tdeck 2026-02-22 10:20:05 +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 a0614ae690 fix(tdeck): enable touch input and reduce SD-induced UI stalls
Enable LVGL touchpad input for the T-Deck environment and wire GT911 touch initialization/point reading in TDeckBoard (with orientation mapping aligned to LilyGo reference behavior).

Improve runtime smoothness after SD insertion by raising T-Deck SD init SPI speed from 800kHz to 4MHz while keeping fallback retries, and reduce periodic SD pressure by caching Team UI snapshot reads in ui_status.

Also harden T-Deck board runtime behavior by enabling PMU battery measurement channels, adding ADC-based battery fallback/anti-drop guards, and tightening RTC readiness to require a sane epoch.
2026-02-18 20:18:27 +08:00
vicliuandGitHub 4c16f765db map (#9)
* feat: maps
2026-02-17 11:40:19 +08:00
vicliuandGitHub 0e3e7800f8 Feature walkie talkie (#5)
* feat: walkie talkie
2026-02-06 15:59:33 +08:00
liu weikai f9cfc5a7c0 feat: usb host 2026-02-05 16:13:16 +08:00
liu weikai 4b68c2f565 chore: format codebase and update changelog 2026-02-02 15:04:17 +08:00
vicliuandGitHub 4d941c5ca6 fix: ui (#4)
* feat: join team

* fix: ui
2026-02-02 03:46:17 +08:00
vicliuandGitHub 796fbcc0b9 New env t deck (#3)
* feat: support t-deck plus
2026-01-28 01:57:53 +08:00
liu weikai fb668525d7 first commit 2026-01-18 21:25:18 +08:00