BLE problem

Hello Gall,

Chatgpt and I need help...

I am developing a Connect IQ / Monkey C application on a Garmin fēnix 7.

The application connects directly to a GoPro using Bluetooth Low Energy. The GoPro exposes the Open GoPro BLE service:

  • Service UUID: 0000fea6-0000-1000-8000-00805f9b34fb

  • Query Write characteristic: b5f90076-aa8d-11e3-9046-0002a5d5c51b

  • Query Response characteristic: b5f90077-aa8d-11e3-9046-0002a5d5c51b

The application can successfully:

  • scan and find the GoPro,

  • connect using BluetoothLowEnergy.pairDevice(scanResult),

  • discover the FEA6 service,

  • find GP-0076 and GP-0077,

  • enable notifications on GP-0077,

  • write to GP-0076 using WRITE_TYPE_WITH_RESPONSE.

However, the write to GP-0076 fails with status 18, which appears to mean insufficient authentication. The Garmin device also shows that the app is using an “OPEN connection”, described as not encrypted and not authenticated.

This seems to be the root problem: the GoPro requires an authenticated/encrypted BLE connection for this characteristic, but the Connect IQ app only gets an open connection.

I tried the documented bonding/security options:

  1. BluetoothLowEnergy.setConnectionStrategy(BluetoothLowEnergy.CONNECTION_STRATEGY_SECURE_PAIR_BOND)

When called before scanning/pairing, the application crashes before the Garmin BLE permission prompt appears.

Crash details:

  • Device: fēnix 7

  • Part Number: 006-B3906-00

  • Firmware Version: 26.09

  • Connect IQ Version: 6.0.2

  • Error: System Error

  • Details: Failed invoking <symbol>

  • Time: 2026-06-11T08:04:50Z

  • Stack:

    • pc: 0x1000191e

    • pc: 0x10002360

    • pc: 0x10003a21

  1. Device.requestBond()

When called after the BLE connection is established, the app remains stuck waiting. onEncryptionStatus() is not called, and the GoPro does not become usable as an authenticated BLE peripheral.

The result is:

  • default/open connection works but GP-0076 write fails with authentication error 18;

  • requestBond() does not complete;

  • setConnectionStrategy(CONNECTION_STRATEGY_SECURE_PAIR_BOND) crashes the app on the fēnix 7.

Could you please confirm:

  1. Is BluetoothLowEnergy.setConnectionStrategy() supported on fēnix 7 with firmware 26.09 / Connect IQ 6.0.2?

  2. If not, what is the supported way for a Connect IQ app on fēnix 7 to establish an encrypted/authenticated BLE connection to a peripheral?

  3. Is Device.requestBond() expected to trigger onEncryptionStatus() on fēnix 7?

  4. Is there any current limitation preventing Connect IQ apps from using authenticated GATT characteristics on fēnix 7?

This looks less like a GoPro protocol issue and more like a Connect IQ BLE security/bonding issue, because the app reaches the characteristic correctly and the failure occurs at the GATT authentication level.

Thank you,
Jerome