Garmin Edge not connecting to BLE peripheral service from iOS

Former Member
Former Member

Hi, I'm developing an iOS app that uses the iPhone bluetooth to offer a BLE peripheral service for heart rate. It works with some fitness equipment like Peloton but the Garmin Edge won't properly connect to it. To users it appears to be a bug because the peripheral may be added as a sensor within the Garmin interface but never finishes connecting. This is the result:

The "Connecting" state never resolves. (tested on a Garmin Edge 1030 and 530)

I speculate that the Garmin software discriminates against smart phone hardware when connecting a sensor peripheral because there is a separate functionality for syncing with the Connect app (which would also live on the iPhone). Can any Garmin engineers please chime in on this issue?

  • From the 2.2.2 Change Log:

    • Remove support for communicating with the mobile Connect IQ SDK in the API for Edge, Oregon, and Rino devices.

    If you are taking CIQ BLE, understand that is a minimal BLE implementation, with things like a max of 20 bytes being received at a time.  With this app, you can see all devices that can seen by a BLE scan on a garmin device,


    https://apps.garmin.com/en-US/apps/9bcc8b66-8385-4afb-b93e-f69e01422284

    By using something like Nordic's rfConnect, you can  see more info on devices, such as the flags used when advertising.  Is the iPhone even advertising?  Can it be seen with rfConnect?

  • Thanks for suggesting those tools. I have been using a tool called LightBlue, which I run on my Macbook, It displays the following when I scan a real heart rate sensor that I have no trouble connecting to my 530.

    When I scan my iPhone (device name redacted) I see the following:

    You can see the advertised heart rate service. Furthermore, when I select the Heart Rate measurement characteristic I can see the heart rate data:

  • That's similar to the info in nfConnect, and based on that, you have the info to do a CIQ app that connects to it.

    If you're doing CIQ BLE, you can do a bunch of testing in the sim, but you'll need some HW.  The dongle in this doc was about $10US last I looked:

    https://forums.garmin.com/developer/connect-iq/w/wiki/19/getting-started-with-connect-iq-ble-development

  • Thanks again!

    I've never written a CIQ app, but I'm up for giving it a go.

    Rather than creating a CIQ BLE app (with all its complexities) is there a way that I could send the heart rate data from my iOS app to the iOS Connect app via an API and then somehow get that data transferred down to the Garmin 530 via the Bluetooth link that it already has established with the iPhone? I see that there are CIQ apps with companion iOS apps, so there must be some sort of communication link between them. If this is a good option then would you know of any sample code where a companion app sends data to its paired CIQ app which then displays the data in a cell on the device?