⌚ Apple Watch Companion

Tactical awareness on your wrist. Vitals, chat, emergency, compass, and dead man's switch — all bridged through your iPhone.

Architecture

The Watch never opens a direct TAK server connection. All network operations flow through the paired iPhone via Apple's WCSession framework. This preserves Watch battery and simplifies security — the Watch is a sensor and quick-input terminal.

┌──────────────┐   WCSession    ┌──────────────┐   TLS/Mesh   ┌────────────┐
│  Apple Watch │◄──────────────►│    iPhone     │◄────────────►│ TAK Server │
│              │                │              │              │   / Mesh   │
│ • Vitals     │  sendMessage   │ • Broadcasts │              └────────────┘
│ • Chat       │  transferUser  │   vitals in  │
│ • Emergency  │  Info (queued) │   CoT SA     │
│ • Compass    │                │ • Relays chat│
│ • Dead Man   │                │ • Sends      │
│ • Status     │                │   emergency  │
└──────────────┘                └──────────────┘
    

Features

❤️ Health & Vitals

Passive monitoring — no workout session required, minimal battery impact. Readings are event-driven (HealthKit background delivery) and sent to the phone on each new sample.

VitalSourceFrequency
Heart RateHKAnchoredObjectQuery + background deliveryEvery few minutes (Watch decides)
SpO2 (Blood Oxygen)HKObserverQueryPeriodic (Watch decides)
StepsHKStatisticsQuery (cumulative today)On each SpO2/HR update
Active CaloriesHKStatisticsQuery (cumulative today)On each SpO2/HR update

The phone injects vitals into the CoT SA broadcast as a <health> XML extension. Other TAK clients see your team's vitals in real time.

<health>
  <vitals heart_rate="72" spo2="98" steps="4521"
          active_calories="312" source="Apple Watch"
          timestamp="2026-04-06T15:30:00Z"/>
</health>
    

Per-vital sharing controls on the phone let you choose exactly which vitals are broadcast.

💬 Chat

Read and reply to messages directly from your wrist. The Watch receives the latest messages from the phone and displays them in a scrollable list. Reply via dictation, scribble, or suggested responses.

🚨 Emergency Beacon

Trigger an emergency alert from your wrist that broadcasts to all connected TAK servers and mesh peers. Designed for reliability:

Watch → Phone (transferUserInfo, guaranteed):
{
  "action": "initiateEmergency",
  "emergencyType": "911"
}

Phone broadcasts CoT:
<event uid="..." type="b-a-o-tbl" ...>
  <detail>
    <emergency type="911 Alert" cancel="false"/>
  </detail>
</event>
    

🧭 Compass

Real-time heading display using the Watch's magnetometer. Shows cardinal direction and numeric bearing. Useful for quick field orientation without pulling out your phone.

🏴 Quick Status

Send predefined status codes to your team with a single tap. Status is broadcast as a CoT message visible to all connected clients.

💀 Dead Man's Switch

Automatic safety check — if the Watch detects no movement or interaction for a configurable period, it triggers an automatic emergency alert. Designed for solo operators in hazardous environments.

Timeline:
  [Activity detected] → Timer resets
  [No activity for N minutes] → Warning vibration + screen prompt
  [No response for 30 seconds] → Auto-trigger emergency
  [User taps "I'm OK"] → Timer resets, no alert sent
    

Watch App Screens

ScreenPurposeKey Info
Main MenuNavigation hubConnection status, unread badge, emergency indicator
ChatRead/reply messagesLatest messages, dictation input
EmergencyTrigger/cancel alertEmergency type selection, active status
StatusQuick status codesOne-tap status broadcast
CompassHeading displayBearing, cardinal direction, compass rose
HealthVitals monitoringHR, SpO2, steps, calories, last reading time
Dead ManSafety timerEnable/disable, timeout config, status

Battery Considerations

Supported Devices

Apple Watch Series 5 and newer running watchOS 10.0 or later. Requires a paired iPhone running TAK Can.

← Back to Documentation