Wireless connectivity and Connect IQ have always been paired together. Connect IQ 1.0 included the Toybox.Ant APIs which allowed device apps to establish connections with sensors and peripherals. Connect IQ 1.1 brought ANT to data fields opening new ecosystems of sensors to interface with Garmin devices. Connect IQ 3.1 pushes these boundaries further with additions in ANT, Wi-Fi, and Bluetooth Low Energy (BLE).
ANT
On the Garmin platform, numerous ANT+ profiles are supported by the native system. Users pair these devices from the device’s sensors menu and their integrated into the workout experience. If your device isn’t supported by the native system, you can use Connect IQ to implement the profile for the device using the Toybox.Ant APIs. In this case your app must implement the logic and UI for pairing as well as the profile implementation.
If your app works with natively paired sensors, you can receive information from them using the Toybox.AntPlus APIs. These APIs give you access to the standard information defined in the ANT+ profile, but no more. This is great if you want to just capture standard information, but sometimes manufacturers provide extra information outside of the pages defined in the profile. These manufacturer pages vary by sensor maker and sometimes have additional metrics but not accessible by the AntPlus API.
In Connect IQ 3.1, device apps and data fields can now access the manufacturer pages. The Toybox.AntPlus.Device class now has a sendManufacturerMessage API for sending manufacturer messages, and the Toybox.AntPlus.DeviceListener adds a new onManufacturerInfoUpdate method for receiving them. This allows new levels of integration of Connect IQ apps and native sensors.
This API is available for:
- Edge 130
- Edge 520 Plus
- Edge Explore
- Edge 1030
- D2 Delta Series
- fēnix® 5 Plus Series
- Forerunner® 245 Series
- Forerunner 645 Series
- Forerunner 945 Series
- MARQ Series
Wi-Fi
In Connect IQ 3.0 the audio content provider app type was added for allowing developers to download music apps to music capable devices. To enable music download, audio content providers have access to kick off network transactions over Wi-Fi.
Wi-Fi is hundreds of times faster than the BLE connection available to other app types. The challenge with Wi-Fi on wearable devices is battery life. Wi-Fi is a power-hungry technology, and wearables have limited space for batteries, so enabling Wi-Fi can take your battery life from days to minutes. For this reason, Wi-Fi was limited to only audio content providers
In Connect IQ 3.1 device apps now can initiate network requests over Wi-Fi using the new Toybox.Communications.SyncDelegate. Here’s how:
- In your app, call Toybox.Communications.startSync
- The system will call getSyncDelegate() to get your Toybox.Communications.SyncDelegate subclass
- The device UI will go to a sync screen
- In onStartSync make your first call to Toybox.Communications.makeWebRequest
- Request one item at a time, triggering each makeWebRequest in the callback of the previous one
- Call notifySyncProgress to advance the progress bar
- If onStopSync is called, handle shutdown of your sync
- When you have downloaded all items, call notifySyncComplete. Pass in null if you completed successfully or pass in a string if you need to display an error message
- The Sync UI will be popped off the stack returning you to your app
The primary use case for using Wi-Fi over BLE is if you are downloading a large amount of content, or perhaps a large payload (like a long route) that would take a long time over BLE. Wi-Fi will only be available in hotspots where the device has been configured, so don’t depend on it as your only connectivity option.
This API is available for:
- Edge 530
- Edge 830
- Edge 1030
- D2 Delta Series
- fēnix 5 Plus Series
- Forerunner 245 Music
- Forerunner 645 Music
- Forerunner 945
- vívoactive® 3 Music
- MARQ Series
Bluetooth Low Energy
Not to be confused with Low Energy Blue-Tooth, the guy in gym class who drank blueberry smoothies yet always seemed to be dragging, Bluetooth Low Energy (BLE) is a growing standard for low power wireless device communication. Connect IQ 3.1 adds the Toybox.BluetoothLowEnergy module to enable generic support for communicating with BLE peripherals like sensors, IoT devices, and smart homes.
To develop your app in the simulator you will need a Nordic nRF development kit that the simulator will use as a bridge for communication. The Toybox.BluetoothLowEnergy module is available to data fields, widgets, device apps, and background services.
If you want to try developing your own BLE peripheral , you should order a Nordic Thingy52. This all in one programmable device has an accelerometer, gyroscope, barometer, thermometer, LEDs, and a programmable nRF52 microcontroller that handles ANT and BLE communication. The Thingy Connect IQ sample will let you control the Thingy from your watch.
The Connect IQ BLE APIs are available for:
- Edge 1030
- D2 Delta Series
- fēnix 5 Plus Series
- Forerunner 245 Series
- Forerunner 645 Music
- Forerunner 945
- MARQ
- vívoactive 3 Music
Conclusion
Connect IQ and wireless have been securely bonded since the beginning. Now in Connect IQ 3.1 developers have access to ANT, Wi-Fi, and BLE connectivity in their apps. This opens entirely new use cases for connecting your apps to the outside world