Trail Mate
CustomOffline-first handheld firmware for navigation and LoRa communication with native MeshCore and Meshtastic packet paths, maps, team coordination and field-oriented device tools.
- Maintainer
- vicliu624 ↗
- Status
- Active
- Maturity
- Alpha
- Lifecycle
- Active
- Latest version
- 0.1.37-alpha
- Released
- 2026-07-04
- Runtime
- ESP-IDF · C++
- Distribution
- Community
- Licensing
- Open source
- License
- AGPL-3.0
Capabilities
Transports
- ✓ BLE
- ✓ USB serial
Hardware
- ✓ GPS
- ✓ Display
- ✓ Sensors
Protocol
- ✓ MeshCore compatible
Node role
CompanionStandalone UI
Features
- MeshCore and Meshtastic messaging
- GPS maps and track recording
- Team location and waypoint exchange
- USB host-link stream
Project signals
popularity 2026-07-20 verification 2026-07-20
- GitHub stars
- 424
- Forks
- 51
- Watchers
- 13
- Open issues
- 5
- Contributors
- 2
- Release downloads
- 2,736
- Latest downloads
- 211
- Source available
- Yes
- Releases available
- Yes
- CI builds
- Yes
Releases
from GitHub · updated 2026-07-04v0.1.37-alpha # Latest Pre-release 16 days ago · 2026-07-04 10:34 UTC
[0.1.37-alpha] - 2026-07-04
Changed / 变更
- Reworked the Settings Date/Time dialog into a bounded six-column datetime picker for year, month, day, hour, minute, and second, replacing free text input with scroll-only selection, explicit keyboard focus traversal, and automatic day-range clamping. / 将 Settings 的日期时间弹窗重做为有界六列 datetime picker(年、月、日、时、分、秒),用滚动选择替代自由文本输入,补上明确的键盘焦点移动顺序,并自动收口当月合法日期范围。
Fixed / 修复
- Fixed Shutdown confirmation dialog CJK rendering by routing translated labels through the shared localized font fallback instead of forcing the ASCII Montserrat font. / 修复 Shutdown 确认弹窗的中文显示:翻译文本改走共享 localized font fallback,不再强制使用只覆盖 ASCII 的 Montserrat 字体。
Full Changelog: https://github.com/vicliu624/trail-mate/compare/v0.1.36-alpha...v0.1.37-alpha
v0.1.36-alpha # Pre-release 17 days ago · 2026-07-04 09:04 UTC
[0.1.36-alpha] - 2026-07-04
Changed / 变更
- Restricted offline map tile layers to PNG tiles and removed the stale JPEG tile path so map source cache and documentation follow one supported tile format. / 将离线地图瓦片图层收口为 PNG 瓦片,并移除陈旧的 JPEG 瓦片路径,使地图源缓存与文档遵循单一受支持格式。
- Updated Pager shutdown and battery handling with an explicit power-off confirmation flow, translated shutdown notices, and more stable board ADC sampling for battery reporting. / 更新 Pager 关机与电量处理:新增明确的关机确认流程、补齐关机提示翻译,并改进板级 ADC 采样以提升电量显示稳定性。
- Made shared two-pane side filter panels vertically scrollable by default so Settings, Extensions, Contacts, Chat, and similar left-filter layouts remain reachable on small screens. / 将共享两栏布局的左侧 filter 面板默认改为可垂直滚动,使 Settings、Extensions、Contacts、Chat 等小屏左侧分类入口不会被底部遮住。
- Updated the promotional poster to show both supported Pager and T-Deck devices with the current Trail Mate UI instead of misleading generated hardware or screens. / 更新宣传海报,同时展示受支持的 Pager 与 T-Deck 设备,并使用当前 Trail Mate 界面,避免生成式硬件外观或伪界面误导用户。
Fixed / 修复
- Fixed Pager power-off failure handling so USB-connected or PMU-unavailable shutdown attempts show an explicit failure notice instead of falling back to BOOT-only deep sleep. / 修复 Pager 关机失败处理:USB 已连接或 PMU 不可用时显示明确失败提示,不再回退到只能由 BOOT 唤醒的 deep sleep。
- Fixed a Pager shutdown build regression caused by the board library depending on the UI i18n header. / 修复 Pager shutdown 构建回归:移除 board 库对 UI i18n 头文件的错误依赖。
- Fixed system notification font fallback and UTF-8 truncation so translated notifications and runtime notices can render CJK text without missing glyphs or split UTF-8 characters. / 修复系统 notification 的字体 fallback 与 UTF-8 裁剪,使翻译后的通知和运行时提示能正确显示中文等 CJK 文本,不再因缺字或截断字符产生乱码。
- Fixed the Pager BOOT long-press interaction so deep sleep starts as soon as the hold threshold is reached instead of waiting for button release. / 修复 Pager BOOT 长按交互:达到长按阈值后立即进入 deep sleep,不再等到松开按键才触发。
What's Changed
- 0.1.36-alpha by @vicliu624 in https://github.com/vicliu624/trail-mate/pull/72
Full Changelog: https://github.com/vicliu624/trail-mate/compare/v0.1.35-alpha...v0.1.36-alpha
v0.1.35-alpha # Pre-release 17 days ago · 2026-07-04 00:40 UTC
[0.1.35-alpha] - 2026-07-03
Added / 新增
- Added a Meshtastic memory model specification covering stable BLE
FromRadioslots, bounded queues, priority backpressure, MQTT downlink ownership, and hot-path allocation rules across nRF52, ESP32, and Linux. / 新增 Meshtastic 内存模型规格,覆盖稳定 BLEFromRadio发布槽、有界队列、优先级背压、MQTT 下行所有权,以及 nRF52、ESP32、Linux 共享的热路径分配规则。
Changed / 变更
- Reworked Meshtastic BLE/MQTT bridge ownership around fixed published slots, fixed retransmit/pending tables, and shared backpressure rules so high-traffic BLE, MQTT, NodeInfo, and status flows no longer depend on unbounded dynamic containers. / 围绕固定发布槽、固定 retransmit/pending 表和共享背压规则重做 Meshtastic BLE/MQTT 桥接所有权,使高流量 BLE、MQTT、NodeInfo 与状态流不再依赖无界动态容器。
- Updated GitHub Pages device copy for the 0.1.35-alpha nRF52 stabilization lane while keeping firmware download metadata generated by the Release/Pages workflows. / 更新 GitHub Pages 中 0.1.35-alpha nRF52 稳定化发布线的设备说明,同时继续保持固件下载 metadata 由 Release/Pages workflow 生成。
Fixed / 修复
- Stabilized nRF52 Meshtastic BLE connection and reconnect behavior by aligning
FromRadionotify/read liveness, stale-consume recovery, disconnect handling, and phone-visible session state with the app protocol flow. / 稳定 nRF52 Meshtastic BLE 连接与重连行为,使FromRadio通知/读取活性、陈旧消费恢复、断开处理和手机端可见会话状态与 App 协议流程对齐。 - Restored nRF52 MQTT proxy and downlink behavior under the new memory model, keeping MQTT incoming/outgoing traffic, node metadata projection, and LoRa downlink policy functional under bounded pressure. / 在新的内存模型下恢复 nRF52 MQTT proxy 与下行行为,使 MQTT 收发、节点元数据投影和 LoRa 下行策略在有界压力下保持可用。
- Fixed T-Echo Lite GPS memory-corruption exposure by moving GPS/input runtime ownership out of runtime heap and removing transient peer-key vector allocation from the hot PKI/NodeInfo persistence path. / 修复 T-Echo Lite GPS 内存损坏暴露点:将 GPS/input runtime 所有权移出运行期 heap,并从 PKI/NodeInfo 持久化热路径移除临时 peer-key vector 分配。
- Fixed resource-pack font loading so package update/reinstall paths refresh installed Chinese font resources correctly after pack operations. / 修复资源包字体加载,使包更新/重装后已安装中文字体资源能正确刷新。
What's Changed
- Fix ble by @vicliu624 in https://github.com/vicliu624/trail-mate/pull/70
Full Changelog: https://github.com/vicliu624/trail-mate/compare/v0.1.34-alpha...v0.1.35-alpha
- Added a Meshtastic memory model specification covering stable BLE