mirror of
https://github.com/dz0ny/meshcore-sar.git
synced 2026-08-11 08:20:36 +00:00
bdbceece75205d23b080d1f186fa61e386ea782f
CMD_SEND_RAW_DATA (0x19) was passed the encoded MeshCore route descriptor (e.g. 0x41 for a 1-hop 2-byte-hash route), but the v1.15 companion firmware raw-data handler treats the path byte as a legacy literal hop count, not an encoded descriptor. It misread 0x41 as "65 path bytes" and rejected the command (ERROR: Unsupported command), so media fetch always failed while normal messaging worked. - Add ContactRouteCodec.toLegacyRawPath() converting encoded descriptor + path into legacy format (literal hop count + first byte of each hop hash). - Apply it in ConnectionProvider.sendRawVoicePacket, the single chokepoint all raw media (voice/image fragments, swarm, route probes) flows through. - Pace served fragments 350ms apart to avoid firmware "ERROR: Table full" when bursting many raw packets. - Tests for the descriptor conversion. Fixes #43 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
MeshCore SAR
Field-ready Search and Rescue coordination over MeshCore + BLE
MeshCore SAR helps teams coordinate in low-connectivity or no-connectivity environments with messaging, voice, images, maps, and live location context in one app.
It uses the MeshCore protocol over LoRa for long-range, infrastructure-free communication.
iOS TestFlight: https://testflight.apple.com/join/tngpPF12
Highlights
- Rapid mesh chat for both 1:1 and group coordination
- On-demand voice (Codec2) and image (AVIF) transfer tuned for low-bandwidth links
- Offline-first mapping with tactical overlays and SAR incident markers
- Live team location, movement trails, and shareable tactical drawings
Demo Video
Screenshots
Feature Overview
| Area | What you get |
|---|---|
| Messaging | Direct and group chat over mesh, with contact/room awareness from live telemetry |
| Voice | Push-to-talk voice clips (Codec2), fetched on demand when play is pressed, auto-play on completion |
| Images | Camera/gallery image sending (AVIF), auto-compression, tap-to-load receiving, full-screen viewer |
| Maps | Street/topo/satellite/terrain layers, offline tile downloads, optional MBTiles import |
| SAR Operations | Team markers with freshness indicators, SAR markers for incidents and staging points |
| Tracking | Continuous GPS updates, personal trails, distance/duration trail stats |
| Trail Interop | GPX export/import for trail sharing and reuse |
| Tactical Drawing | Line/rectangle drawing, distance measurement, drawing sharing to channel/room |
Voice, Image, and Maps
Voice
- Built for short, urgent field communication
- On-demand playback fetch reduces unnecessary mesh traffic
- Ideal when typing is impractical during active operations
Images
- Pre-send optimization for constrained links
- Tap-to-load receiving keeps channels lightweight
- Full-screen view supports rapid field verification
Maps
- Works in both online and offline workflows
- SAR context with team markers, incident markers, and orientation tools
- Combines location, messaging, and tactical layers in one place
Built For
- Search and Rescue field teams
- Incident command and coordination roles
- Operators working in weak/no cellular coverage
Permissions (App Use)
- Bluetooth: mesh device communication
- Location: team tracking and map position updates
- Microphone: voice clip recording
- Camera / Photos: image messaging
Description
Releases
1
MeshCore SAR v2026.0613.2
Latest
Languages
Dart
97.1%
TypeScript
1.2%
C++
0.5%
CMake
0.4%
Shell
0.2%
Other
0.3%