• Connect IQ 3.1 Connects You to The World

    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
    • D2Tm Delta Series
    • fēnix® 5 Plus Series
    • Forerunner® 245 Series
    • Forerunner 645 Series
    • Forerunner 945 Series
    • MARQTm 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:

    1. In your app, call Toybox.Communications.startSync
    2. The system will call getSyncDelegate() to get your Toybox.Communications.SyncDelegate subclass
    3. The device UI will go to a sync screen
    4. In onStartSync make your first call to Toybox.Communications.makeWebRequest
    5. Request one item at a time, triggering each makeWebRequest in the callback of the previous one
    6. Call notifySyncProgress to advance the progress bar
    7. If onStopSync is called, handle shutdown of your sync
    8. 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
    9. 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

    • Jul 23, 2019
  • Legacy Bug Reports Forum Changes

    Hello All!

    Thank you all for all that you do in helping keep our developer community healthy and vibrant. In an effort to keep things moving forward we've made a few changes to the way that our Legacy Bug Reports forum works. We now have a preferred area for reporting bugs in the Bug Reports tool. We are still actively looking at and working issues that have already been reported by the community in the old forum, but things are honestly just easier to manage and it's easier to communicate with the new tools available. So here is the change that is happening:

    Effective immediately, the Legacy Bug Reports forum will not longer allow new threads to be created.

    Your content will not be lost and you can still reply, comment, etc. to existing threads held in that forum. We are just shutting off the ability for new thread to be started. If you have a new bug or new instance of an old bug that hasn't seen any traction for a while, then please make a report in the new Bug Reports tool. Thank you all so much and happy coding!

    -Coleman

    • Jul 16, 2019
  • SDK Release - 3.0.12 and 3.1.0.beta3

    Hey Developers!

    We have two SDKs for you this week. First is our Production 3.0.12 SDK. Second, is our 3.1.0.beta3 SDK and accompanied plugin.

    Here are the change logs for the two SDKs:

    3.0.12:

    General Changes

    • Update device images to avoid showing draw area behind device.
    • Fix issues escaping strings sent to the debugger output window.
    • Fix alpha transparency issues seen when rendering transparent bitmaps on Forerunner® 45.

    Simulator Changes

    • Fix a bug with ActivityRecording auto-start that would cause a new session to be created unexpectedly after a session that used auto-start was saved or discarded.
    • Fix fonts on Forerunner® 45 to match the device.

    Compiler Changes

    • Fix bug in the opcode generation logic of a try / catch statement when a Toybox exception is being caught.

    3.1.0.beta3:

    General Changes

    • Fix issue that caused System.println() and System.println() to stop working after a background process had exited.
    • Fix bug in the RunNoEvil framework, which was causing only a single test to be executed when the developer chose to execute more than one unit test.
    • Apply special handling for requests to clear buffered bitmaps to transparent.
    • Fix a thread safety issue.
    • Fix a bug with ActivityRecording auto-start that would cause a new session to be created unexpectedly after a session that used auto-start was saved or discarded.
    • Overhaul Animation APIs and introduce new WatchUi.Layer class
    • Add DeviceSettings.systemLanguage to get the language being used by the device or simulator.
    • Update the Media.CacheStatistics.size / capacity API documentation with the correct return type.
    • Fix an issue that prevented some background events from running.
    • Fix an issue that caused an unexpected type error when passing a MapMarker to MapView::setMapMarker().
    • Add SDK version to “Help > About” in the ERA Viewer.
    • Allow marking a crash report as new again in the ERA Viewer.
    • Allow drag-and-drop sorting when managing apps in the ERA Viewer.
    • Add a drop-down box to choose a sorting method for crash reports in the ERA Viewer.
    • Sort newly downloaded apps by name in the ERA Viewer.
    • Add menu option to reset the data stored by the ERA Viewer.
    • Do not require loading a project’s manifest file to select devices in the animation converter.
    • Give the Eclipse plug-in’s debugger the ability to open Monkey Barrel source code when directly linking to a barrel project.
    • Introduce a script that converts GIFs to a YUV video format and attempts to apply some optimizations, which results in a smaller encoding of the video file.
    • Fix alpha transparency issues seen when rendering transparent bitmaps on 8-color devices like the Forerunner® 45.
    • Fix non-square animation playback error.
    • Add support for the Edge® 530, Edge® 830, Forerunner® 245, Forerunner® 245 Music, Forerunner® 945, and Forerunner® 45.
    • Fix an issue that prevented some background events from running.
    • Reduce memory required to load app settings.
    • Fix an issue that caused an unexpected type error when passing a MapMarker to MapView.setMapMarker().
    • App Storage now supports saving Dictionary and Array objects that contain resources such as images and animations.

    Simulator Changes

    • Fix apparent simulator hang seen when using a many calls to System.print() or System.println().
    • Remove random GPS quality changes when simulating FIT data.
    • Fix issues handling of swipe events when using picker views.
    • Update Battery Status dialog to set the focus to the Okay button when the user is editing the the battery percentage value and presses enter.
    • Fix an issue that caused auto-lap functionality to be enabled when simulating or playing back FIT data.
    • Update device images to avoid showing draw area behind device.
    • Fix issues escaping strings sent to the debugger output window.
    • Disable unsupported options under “Settings > Connection Type” when loading a new device.
    • Avoid clearing app storage on device change. Instead, clear the requested background events so they do not run on devices that do not have backgrounding support.
    • Fix a crash that occurred when downloading jpeg image files via makeImageRequest.
    • Edit Persistent Storage dialog refactored to support resource preview and switching to use tree list for object exploration.
    • Persist simulator settings across runs.
    • Fix issue with Edge® 130 fonts.

    Compiler Changes

    • Fix bug in the MonkeyMotion video encoder, which caused pixels to be cut off if the resolution was not a multiple of 4.
    • Fix bug in the opcode generation logic of a try / catch statement when a Toybox exception is being caught.
    • Reduce memory consumption of fonts that have the antialias attribute set to true for devices that do not have the ability to render anti-aliased fonts by overriding the attribute. These devices include the the Forerunner® 45, the Forerunner® 920XT, and the Edge® 130.
    • Fix bug in variable initialization checking for switch statements containing for loops.

    Beta Layer API and Animations Change Notes:

    Yes the change log for the Beta is Massive!

    Please note, for those of you who are interested or have already started using the new Animation system in 3.1.0 Beta build in the past, we have made made breaking changes to this API structure. We found some ways to save precious memory and provide more flexibility to developers so we figured this should be done while we were still in Beta! This includes a new Layer API. It's hot off the presses and the documentation is a little scarce on it right now, but the included animated watch face in the samples with 3.1.0.Beta3 will give you some reference. Here is a super simple overview of how it works:

    1. Create one or more Layer objects, each containing a resource (bitmap, animation, etc.) positioned within a clipped region (we're essentially making BufferedBitmaps).
    2. Add all the layers you'd like to display to a View in the order they should be drawn (FIFO).
    3. When the view is displayed, all of the layers get blitted to the system Dc.

    Even more simple: Multiple new Layer objects can be created with a custom size clipping region, then merged together on an update.

    This will have ZERO effect on all of your regular Dc drawing calls if you are a developer who doesn't want to use this.

    We plan to have more complete documentation in the future, however, even if you don't use these new APIs, you should totally run the new animation sample and put the sim and toggle off Low Power Mode. You will be happy. Monkey

    Happy Coding, Connect IQ Community!!!

    • Jun 19, 2019
  • Connect IQ Summit - Power Programming Breakouts

    Here are two of the technical breakouts presented at Connect IQ Summit 2019.

    • Jun 7, 2019
  • Connect IQ 3.1 - Exceptional Crash Logging

    The Connect IQ 3.1 introduces the new Exception Reporting Application (ERA) for Connect IQ. The ERA lets you see crashes logged on user's devices for the past 30 days, making it easier to identify issues and resolve them. Even though Connect IQ 3.1 is still in beta, you can already use the ERA to get crashes for published apps.

    Once you have set up Connect IQ 3.1, you can launch the ERA from the Connect IQ Eclipse plugin

    The ERA was designed to support multiple apps under multiple developers. You can add a Developer under Settings | Manage Developers.

    Hit the + to add your developer account. To add your developer account you'll need your developer id, which is in the app store URL when you click on your developer name. You also need to add a default developer key, which is used to authenticate your account. 

    Hit Ok. The ERA will validate your apps.

    Hit Ok to return to the main view. From here you can switch between apps, and see crash logs for each app. Crashes can be sorted by the file they came from, by number of occurrences in the past 30 days, by most recent, and other ways. You can mark crashes as read after you patch them as well.

    The ERA should make it much easier to understand what's happening with your apps in the field and accelerate your ability to patch and deploy updates to your customers. Try it today and see what logs are waiting for you.

    • Jun 7, 2019
  • We Want You To Feel Seen

    Featured App

    The new Connect IQ store app makes it much easier for users to find and install your apps and has a featured app marquee at the top of the home page where we can highlight the best of Connect IQ for Garmin customers. We want your app there for everyone to see.

    Every month we will highlight a different selection of apps. Our featured app carousel is drawn directly from an app’s hero image. For us to promote we need you to make a set of hero images that:

    • Have the app name
    • A tag line that describes what the app is
    • Localize said tag lines (one images per locale)

    We recommend localizing your app, hero images, and app description to at very least English, Spanish, German, French, Italian, Chinese, and Japanese. Connect IQ is a global brand, and the more you localize the wider audience you can reach.

    If you want to be featured, do the above and then reach out to us through the forums for us to evaluate being put on the calendar. Don't be surprised if we reach out to you via your registered contact email address, as we're always looking for good content.

    • Jun 7, 2019
  • 3.0.11 SDK Out Now #NEWDEVICES

    New devices are finally here. You've been playing with "upcoming" device for long enough and we are happy to announce that we've added new wearable and cycling devices to the 3.0.11 SDK! It's a whole new world in Fitness for Garmin!

    Get the SDK through the SDK Manager in the Eclipse Plugin or download here.

    Release Notes

    General Changes

    • Fix an issue that caused an unexpected type error when passing a MapMarker to MapView.setMapMarker().
    • Reduce memory required to load app settings.
    • Add support for the Edge® 530, Edge® 830, Forerunner® 245, Forerunner® 245 Music, Forerunner® 945, and Forerunner® 45.

    Simulator Changes

    • No Changes


    Compiler Changes

    • No Changes

    New Devices

    Here is  a list of the new devices added to the SDK.

    Forerunner® 245 / 245 Music

    Forerunner® 45 / 45S

    Forerunner® 945

    Edge® 530

    Edge® 830

    • May 1, 2019
  • 2019 Connect IQ Developer Award Winners

    2019 Connect IQ Developer Award Winners

    Now that the 2019 Connect IQ Developer Summit is over, we are excited to share our winners. This year saw long-standing brands, new competitors, and successful personal developers all contribute great content in their categories. These developers work hard to make sure that Connect IQ has the best content and we at Garmin could not be prouder of our developer community. Congratulations to the winners of our 2019 Connect IQ Developer Awards!

    Best New Watch Face – Crystal – Vince Wong

    A crystal-clear watch face that adds a sense of function without sacrificing beauty. Sporting customizable colors and multiple languages, Crystal will up that wearable game with a touch of style. Vince is a powerful newcomer to the Connect IQ Developer community, and this watch face is a perfect example as to why. Released part way through last year; Crystal is coming close to breaking the ever elusive 500k download threshold.

    Best Wearable Smart App – Your QR ­ – r.485

    Make yourself known. Sharing your info from your wrist is as easy as snapping a picture. Your QR creates a custom code to share the info you want. Be high tech; be impressive. The description on this app says it is, “Probably the geekiest way to share your contact information” and we love it! Be sure to check out the whole r.485 ecosystem.

    Best Edge App – XERT Workout Player – Baron Biosystems

    All your data is working together. The Xert workout player helps you perform at your best by showing you what matters. This comprehensive experience is achieved by communicating directly with your specialized Fitness Signature. Baron Biosystems continues to be a huge player in the Connect IQ ecosystem, stretching the bounds of what is possible in Connect IQ. It’s no surprise that this makes two wins under their belt!

    Best Training App – Final Surge – Final Surge Developer Team

    Want more control of your workout? Why not build your own? Or better yet, have your coach do it for you. Final Surge offers a collaborative platform for athletes, coaches, teams, and clubs. Download your workouts straight to your device. It’s clear that the Final Surge Developer Team takes great pride in what they do. Check out the clear dedication in this app and the surrounding training platform.

    Developer Of The Year – fbbbrown – Brian Brown

    Being a pioneer is never easy. Providing things that people want can be even tougher, and people want what fbbbrown provides. With a collection of apps spanning everything from watch faces, to Yoga trackers, and everything in between, fbbbrown has made an ecosystem to be proud of. Brian Brown is all in. Check out his story and see what drives him.

    • Apr 24, 2019
  • Connect IQ 3.1 Beta Now Available

    Today Garmin is releasing Connect IQ 3.1, the latest generation of the Connect IQ platform and our most exciting update to date. Connect IQ 3.1 adds several new features and improvements to reduce friction, add tools, and make your apps more connected

    New Store

    The Connect IQ store is now available for iOS and Android. The app combines the App Store, app management, and Face It into a unified experience, and is the single location for Connect IQ on your phone.

    Reducing Friction

    Connect IQ 3.1 introduces a new TextArea class that wraps text within an area of the screen and will choose the best font for text display. The layout system has also been modified to accept relative positions and distances, making it easier to make one layout that matches numerous products.

    The Connect IQ page stack has been improved to allow for View instances to be pushed on top of native View instances, addressing a long-time issue with the user interface framework.

    In Connect IQ 3.1, the Storage module now allows all app types to store 32 KB per entry. In addition, music apps will no longer be capped at 500 MB.

    New Tools

    Connect IQ 3.1 introduces several tools to make developing your apps easier. Connect IQ 3.1 includes the new Exception Reporting Tool. Developers will now be able to collect anonymized crash log information from users, allowing for improved turnaround in finding and addressing issues.

    Our developer forums have been upgraded. The new forums are a modern solution that we hope will be a gathering place for our developer community.

    Connect IQ 3.1 introduces a new animation toolkit for importing animations into your apps. Animations can play full screen, can play over a View, or content from a View can be overlaid over an animation.

    More Connected

    Connect IQ 3.1 expands the capabilities of Connect IQ in wireless communication. Connect IQ device apps now use device Wi-Fi by implementing a SyncDelegate class, bringing higher bandwidth network access to device apps.

    Connect IQ 3.1 apps using the AntPlus can now access ANT+ manufacturer pages of paired devices. This opens up new possibilities when interfacing with paired ANT+ sensors.

    Connect IQ 3.1 also adds a new Bluetooth Low Energy (BLE) framework for interfacing with BLE devices. This opens up new frontiers for Connect IQ in the Internet of Things space. You will need a Nordic nRF52 development kit to test this feature with the Connect IQ simulator.

    Update Your Apps

    Today we have also released the Connect IQ 3.0.10 SDK. This SDK adds support for the MARQ as well as an upcoming wearable and Edge device. Get a head start on supporting the latest Garmin devices.

    Try it Today

    You can download either the Connect IQ 3.0.10 or the Connect IQ 3.1 beta from the SDK download page. There you can also get a preview Connect IQ 3.1 firmware for the Fenix 5+. Get the SDK today.

    • Apr 11, 2019
  • fēnix 5 Plus 20.01 Beta Firmware

    We have made 20.01 beta firmware available for the fēnix 5 Plus, which supports the Connect IQ 3.1.0 Beta 1 SDK.

    Although this software is believed to be reliable, it has not yet been released for production and should be used at your own risk.

    Installation Instructions:

    1. Connect your fēnix 5 Plus to your computer using a USB cable
    2. Download and unzip fenix5plus_5F00_2001Beta.zip
    3. Copy the GUPDATE.GCD file to the /GARMIN directory of the device
    4. Disconnect the device from your computer and follow the prompts on the device to complete the update

    To find out more about the Connect IQ 3.1.0 Beta SDK, check out our announcement at https://ciq.forums.garmin.com/developer/connect-iq/b/news-announcements/posts/connect-iq-3-1-beta-now-available.

    Thanks!

    • Apr 10, 2019