Mesh Networking
TAK Can devices form an ad-hoc mesh network for CoT exchange without any server or internet connectivity. Critical for field operations with no cell coverage, military exercises, SAR in remote areas, and disaster response.
How It Works
- Enable mesh in Settings → Mesh Network
- Devices auto-discover nearby TAK Can peers via WiFi and Bluetooth
- All CoT messages (position, chat, emergency) broadcast to mesh peers
- Mesh peers appear as contacts on the map — same as server contacts
Multi-Hop Relay
Messages forward through intermediate devices with TTL-based loop prevention. If Device A can't reach Device C directly, Device B relays the message. Configurable max hops (1–5).
Device A ──30m──► Device B ──30m──► Device C
(A sees C via B's relay, ~60m effective range)
Team Filter
When enabled (default), devices only connect to peers on the same team. Prevents unintentional SA leakage to other units operating in the same area.
BLE Background Mesh
MultipeerConnectivity suspends when the app is backgrounded. BLE mesh (CoreBluetooth) maintains connectivity when the screen is locked. Messages are fragmented into 480-byte chunks for BLE MTU and reassembled on receipt.
PSK Encryption
Pre-shared key distributed via QR code at mission start. AES-GCM encryption on all BLE mesh data. HMAC-SHA256 challenge/response authentication. Key stored in Secure Enclave, rotated per mission.
Bridge Mode
One device with both mesh and server connectivity acts as a bridge, giving the entire mesh full server access.
Phone A (no internet) ──mesh──► Phone B (internet) ──TLS──► TAK Server
◄──mesh── ◄──TLS──
- Mesh → Server: CoT from mesh peers forwarded to TAK server
- Server → Mesh: CoT from server forwarded to mesh peers
- Security: Only onboarded (server-authenticated) peers' CoT reaches the server. Non-onboarded devices stay mesh-only.
Data Feeds
External situational awareness data rendered as CoT markers on the map. Accessible from Settings → Data Feeds or the map dropdown menu.
Available Feeds
| Feed | Source | Data |
|---|---|---|
| 511 Ontario | 511on.ca | Road incidents, closures, construction |
| 511 Quebec | transports.gouv.qc.ca | Road incidents |
| 511 British Columbia | DriveBC Open511 | Road incidents |
| 511 Alberta | 511.alberta.ca | Road incidents |
| Alert Ready | NAAD (Pelmorex) | Amber alerts, severe weather, wildfires, evacuations, earthquake EEW |
| Active Wildfires | NRCAN GeoServer | Canadian wildfire hotspots |
Filtering
- Configurable alert radius (10–250 km from your location)
- Route proximity — incidents near your active navigation route
- Retry on API failure (3 attempts with 5-second backoff)
- Local push notifications for new incidents
Sensors & Vitals
Device sensors broadcast as CoT extensions in every SA message.
| Sensor | Data | Source |
|---|---|---|
| Barometer | Pressure (hPa), relative altitude | CMAltimeter |
| Magnetometer | Field strength (µT), XYZ | CMMotionManager |
| Activity | Stationary/walking/running/vehicle | CMMotionActivityManager |
| Heart Rate | BPM | Apple Watch HealthKit |
| SpO2 | Blood oxygen % | Apple Watch HealthKit |
| Steps | Today's count | Apple Watch HealthKit |
| Calories | Active kcal today | Apple Watch HealthKit |
Auto-switch CoT type: when driving is detected, your icon changes to vehicle on everyone's map. Returns to dismounted when on foot.
Self-status panel: tap the compact overlay (bottom-right) to expand your own vitals and sensor readings.
Security
| Layer | Protection |
|---|---|
| Server connections | TLS 1.2+ with client certificate mutual authentication |
| MultipeerConnectivity mesh | DTLS encryption (Apple framework, automatic) |
| BLE mesh | AES-GCM encryption with pre-shared key (PSK via QR) |
| Data at rest | Core Data SQLite + log files encrypted via iOS file protection |
| Credentials | iOS Keychain with ThisDeviceOnly — never synced to iCloud |
| Mesh bridge | Only server-authenticated (onboarded) peers' CoT forwarded |
| BLE advertising | Generic device name — callsign not exposed over the air |
| Emergency | Rate-limited, guaranteed delivery via WCSession transferUserInfo |
Apple Watch Companion
The Watch acts as a sensor and quick-input terminal. All network operations flow through the paired iPhone via WCSession — the Watch never opens a direct TAK server connection.
- Vitals: Passive heart rate, SpO2, steps, and calories — battery-friendly, no workout session required
- Chat: Read and reply from your wrist
- Emergency: Trigger alert with guaranteed delivery (queued if phone temporarily unreachable)
- Compass: Heading display for field orientation
Video Streaming
Broadcasting
Stream your device camera to an RTMP server. The playback URL is announced to all connected TAK servers — other TAK clients (ATAK, WinTAK, TAK Can) can tune in automatically.
Receiving
When another TAK client broadcasts a video feed, a notification appears on your map. Tap to open the video player.
Go-To Location & Navigation
Tap the globe button to enter a destination in any format:
- DMS, DDM, MGRS, Decimal Degrees, UTM, or Address
- Route planning with elevation profile chart
- Turn-by-turn navigation with voice guidance
- Off-route detection and alternate routes
Export & Share
Accessible from the map dropdown menu. All exports open the iOS share sheet (AirDrop, Files, email, etc.).
- All CoT as JSON — single file, timestamp order, importable on another device
- TAK Data Package (.zip) — compatible with ATAK/WinTAK
- Tracks as KML — viewable in Google Earth, QGIS
- Contacts as CSV — spreadsheet-ready
- Chat log as text
- Import CoT from JSON — offline device-to-device transfer
- Photo capture — attach to CoT markers
TAK Server Connectivity
- TCP/TLS with client certificate or username/password authentication
- UDP multicast (239.2.3.1:6969)
- Multi-server support — connect to multiple servers simultaneously
- QR code import for server config (CloudTAK format)
- Certificate signing request (CSR) via HTTPS Marti API
- Channel/group selection and active-bits management
- DataSync mission subscription and content import
VPN Access (Remote Connections)
If your TAK server is behind a firewall, use a separate VPN client to connect remotely. TAK Can works transparently over any system VPN — no built-in VPN client needed.
- Download the
.ovpnfile from your TAK server admin panel - Install OpenVPN Connect (free) or WireGuard from the App Store
- Import the config and connect the VPN
- Open TAK Can — connects through the VPN tunnel automatically
Situational Awareness Map
- Apple Maps, Satellite, and Hybrid tile sources
- Custom KML/KMZ overlay import
- WMS map source support
- Offline tile caching with download UI
- CoT type picker with downloadable CoTtypes.xml
- Compass toggle — north-up / heading-up
- Range rings that follow CoT as it moves
- Geofences with entry/exit notifications
- Contact list with live last-seen, distance, and directional arrow
- Radial context menu: Go To, Track, Phone, Chat, Emergency, Rings, Fence, Photo