Skip to content

controller & interaction modes #3

@ebowwa

Description

@ebowwa

Controller & Interaction Modes

Summary

  • Build a clear path for using COLMI rings as human-input devices in addition to passive health trackers.
  • Capture the command map, firmware expectations, and UX constraints for gesture/tap/scroll interactions.
  • Deliver a prototype control loop (SwiftUI app or companion daemon) with measurable latency and battery impact data.

Background

  • Legacy projects (e.g., colmi_r0x_controller) demonstrated wave/scroll/tap interactions via accelerometer streams and gesture commands.
  • Our documentation now lists sensor capabilities and potential applications, but we have no dedicated plan for controller-focused work.
  • Real-time streaming and gesture enablement impact battery life and firmware expectations; we need structured exploration before committing.

Goals

  1. Produce a capability matrix mapping each gesture-related command to supported ring models/firmware versions.
  2. Prototype at least two interaction flows:
    • Media control: tap/scroll -> play/pause, volume.
    • Pointer/navigation: wave/tilt -> focus change or scroll.
  3. Quantify latency (packet arrival to action) and battery impact for each prototype scenario.
  4. Define reusable abstractions (e.g., RingGestureEvent, gesture pipeline) that the app or external integrations can consume.

Non-Goals (for now)

  • Shipping production-ready controller features or public APIs.
  • Building firmware mods ourselves—leverage existing community firmware when necessary.
  • Implementing persistence or cloud sync (captured separately).

Proposed Tasks

Phase 1 – Research & Capability Map

  • Translate known gesture commands (0x0204, 0x0206, 0x69 subtype 0x01) into a reference table with expected payloads.
  • Cross-check firmware dumps in Legacy/ATC_RF03_Ring to confirm gesture enablement bits and notification formats.
  • Interview/collect field data from existing community projects (colmi_r0x_controller, RingCLI) for lessons learned.

Phase 2 – Prototype Implementation

  • Add optional gesture subscription path in RingBLEManager (behind debug flag) that surfaces raw gesture events.
  • Build a minimal SwiftUI overlay that maps gestures to system controls (use MPRemoteCommandCenter / custom actions).
  • Evaluate feasibility of a macOS companion (Catalyst or menubar app) for cross-device control.

Phase 3 – Testing & Metrics

  • Instrument the prototype to log: gesture type, detection latency, BLE signal strength, and action success rate.
  • Run controlled battery-drain tests: baseline vs. gestures+realtime HR vs. gestures-only.
  • Document noise scenarios (false positives when walking, handwashing) and mitigation strategies (debounce, motion thresholds).

Phase 4 – Documentation & Next Steps

  • Publish a developer guide covering setup, commands, payload diagrams, and sample code.
  • Summarize trade-offs (accuracy vs. battery, firmware constraints) and recommend default configurations.
  • Identify prerequisites for shipping controller functionality (UX affordances, settings toggles, user education).

References

  • COLMI_RINGS_COMPREHENSIVE_DOCUMENTATION.md — “Sensor Capabilities & Application Opportunities” section.
  • Legacy/ATC_RF03_Ring — firmware mods and OTA tooling for gesture experiments.
  • COLMI_RING_FEATURES_REALITY_CHECK.md — gesture capability matrix across models.
  • Historical projects: colmi_r0x_controller, RingCLI gesture branches, Home Assistant automations.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions