Hello Connect IQ developers,
I am developing RaceCue, a start-training app. Our phone owns the start audio and stopwatch. Ordinary Connect IQ messaging works for controls and returning the phone's final result, but we are investigating whether a supported channel can also provide bounded phone/watch clock alignment for wrist-movement reaction feedback.
Environment used in the investigation:
- fenix 7 Pro (fenix7pro / 47 mm); last recorded firmware 26.09.
- Motorola moto g55 5G, Android 16 / API 36.
- Garmin Connect 5.30.1; Connect IQ Android companion SDK 2.2.0.
- Watch app exported with Connect IQ SDK 9.2.0. These observations have not yet been repeated with SDK 9.3.0.
Observed behaviour:
1. With normal Garmin Connect pairing active and both apps foreground, the Android companion advertises a custom GATT service. The watch registers its profile, discovers the service and calls BluetoothLowEnergy.pairDevice.
2. pairDevice returns a Device, but in repeated attempts it does not progress to a usable connected/subscribed/authenticated application link. Device.isConnected remains false and pairing eventually times out; the watch reported available connection slots.
3. Independent radio-only watch-to-Android GATT round trips have succeeded. In a controlled diagnostic retaining the same production advertisement/session, temporarily suspending Garmin Connect also allowed the custom link to subscribe and authenticate. Garmin Connect was restored afterward; no bonds were deleted. This is diagnostic evidence only, not a customer workaround or proof of the underlying cause.
4. Ordinary Connect IQ message round trips were around 1.5–2 seconds in the measured setup, too variable for the intended reaction feedback. We do not claim that this latency applies to every device or that a working direct link establishes physical timing accuracy.
Our public approach therefore remains conservative: the phone owns phone-started timing and sends its exact final result back to Garmin. We withhold precise reaction against a phone-played gun when clock alignment is not reliable.
Questions:
- Is there a supported way for a Connect IQ app to access a custom GATT service on its already paired Android phone while normal Garmin Connect functionality remains active?
- Does this require a second/reverse-role BLE connection, and is coexistence supported for this combination?
- If not, is there a supported handoff or another companion transport intended for low-latency timestamp exchange, without disabling Garmin Connect or removing pairing?
- What minimal reproduction and watch/controller diagnostics would best distinguish permission/firmware behaviour from a connection-role conflict? We have not established the cause and do not want to file speculation as a confirmed SDK bug.
I have also asked ConnectIQ support privately. Any documented constraints or recommended architecture would be appreciated.
Thank you,
RaceCue