Skip to content

Protocol

macOS and the "Mouse"·

Why macOS bonds the ring as a Mouse, why that breaks phones, and why it is the fastest transport on a Mac.

  • Mac users whose ring will not connect
  • 1 min read
  • 224 words

In 10 seconds

macOS bonds the ring as a HID Mouse within minutes of any session and then holds the link — phones can no longer see it, but ring-cli attaches in ~10 ms without a scan. Decide per ring: phone or Mac, never both. Hand it back: System Settings → Bluetooth → ⓘ → Forget This Device.

Why: the ring advertises HID 0x1812 with Apple PnP ids (05AC:0220) and itself sends an SMP Security Request; bluetoothd pairs Just-Works and auto-connects it whenever it advertises. The driver cannot avoid it.

Consequences·

field value
phones go blind LoraFit and the tiny app scan into silence. Forget the device in System Settings, then keep CoreBluetooth apps off it. blueutil cannot remove LE bonds; read them with /usr/sbin/system_profiler SPBluetoothDataType
the Mac gets a gift retrieveConnectedPeripheralsWithServices([56FF]) returns the held ring; BleakClient(device).connect() attaches in ~10 ms — ring-cli battery end-to-end in 0.28 s instead of ~10 s. Several processes can attach at once; detaching keeps the system link. Ring.__aenter__ tries this first (ring.transport.system_connected_rings())
bridges never reconnect the bonded ring stays connected on and off the charger while in range

Policy: the phone (tiny iOS/Android gateway) is the default owner of the link; the Mac driver is the reference and capture toolkit, and the bridge is for a ring that lives at a desk.