Companion app
Medusa has no screen on the case. The phone the case wraps is the UI — paired over BLE 5.
Today: extend NearTrace
NearTrace is HARTLE.TECH's flagship Android BLE scanner. The Medusa integration ships as a Medusa device-type module inside NearTrace — when NearTrace's scan discovers a paired Medusa case, tapping it opens a Medusa-specific panel.
Inside that panel:
- Status (battery %, current operation, free storage)
- Operations (start WiFi sniff, start BLE scan, export captures)
- Capture viewer (date-sorted list with summary metadata)
- Settings (pairing, channel preferences, retention, factory reset)
- The active-TX guard UI (enable/disable per session, BSSID allow-list editor, rate limit, audit log viewer)
Protocol
JSON envelope over BLE GATT. Single primary service + two characteristics (write + notify). Pattern similar to Nordic's NUS but with a Medusa-specific service UUID.
Full schema lives in the API spec in the repo. v1 op set:
medusa.status.get— current statemedusa.wifi.sniff.start/stop— passive 802.11 capturemedusa.ble.scan.start— BLE advertisement scanmedusa.captures.list/export/deletemedusa.config.get/setmedusa.security.unpair— explicit factory reset
iOS support
Not in v1. NearTrace is Android-only today. iOS support comes via one of three later paths:
- A native iOS companion app
- A web-Bluetooth PWA (cross-platform, no app store)
- Standalone capture export via USB-CDC when plugged into a desktop
We'll pick one when iOS users start asking for it.
Pairing
BLE bonded, LE Secure Connections required, Just Works v1 (numerical-comparison v2). The whitelist of paired centrals is stored in NVS on the case. medusa.security.unpair + factory reset is an explicit op (no implicit "forget" behavior).