D2 Connect IQ SDK

Former Member
Former Member
Hi All,

can someone please confirm that Bravo D2/Titanium is currently unable to read bearing through Activity.Info??

I am really confused to why this information would not be available through SDK as D2 watch does offer bearing information in the navigation while in flight.
I am trying to create customised DataField.

Kind regards,
M.
  • Brandon - as a future wishlist item, what might be nice is when you get an error like this in the sim, it included that it wasn't supported on this device's VM (as it's valid, just not for this one) in addition to the "symbol not found".


    Great idea! I'll get this filed for future enhancement.
  • Former Member
    Former Member
    Can we also add bearing to Bravo D2? :)

    I've got a lot of questions, do I keep posting? :)
  • yes, keep posting! :)

    A bit of history here about ciq 1.x and 2.x. 2.x introduced a number of new things, exposes more data, etc., and was done for the new devices with more memory/features/processor power/etc. Along with that some of the new features, etc, were moved back to 1.x devices, but there was a limit due to the things I mentioned, and it seems those limits were reached on 1.x devices.

    So, you probably won't see anything new added for 1.x devices.

    This is where the API doc is important, in that "since" is lets you know. If something is "since 2.1.0" or above, it's not available on 1.x devices, and likely will never be.
  • Can we also add bearing to Bravo D2? :)

    I've got a lot of questions, do I keep posting? :)


    As Jim mentioned, the VM on the D2 Bravo (like the fēnix 3 and other derivatives) will not be upgraded to SDK 2.x and although some functionality was backported (and called VM 1.3 and VM 1.4), it is unlikely we'll see any further changes other than bug fixes to the VM. That said, the D2 Bravo belongs to the Portable Aviation group and as such they could request and/or add the functionality since they are responsible for integrating the VM into the D2B firmware. However I wouldn't hold my breath; I met the D2 Bravo team when I was at the Summit and I didn't get the feeling that changes to the VM were high on the list. And since bearing is also missing from the fēnix 3, which has a much higher user base in terms of both general users and Connect IQ developers, if there isn't enough momentum there to get bearing backported I don't see how it would happen for the D2B.

    And if all that wasn't enough of a downer when it comes to bearing, if history is any indication, there should be a next generation D2 Bravo (D2 Charlie based on the fēnix 5X?) on the horizon so I would be surprised if there is anything but small fixes to anything on the D2 Bravo since I think development is currently under way for whatever the D2B++ is called.

    Of course, this is simply speculation on my part and anything is possible. I will gladly by beers for all if I'm wrong. :)

    Cheers,
    Douglas
  • Former Member
    Former Member
    Thanks everyone for posting and explaining things. I knew somehow this would be the case, just did not want to accept it.

    D2 Bravo is a very good watch and capable instrument. I wish the important navigation data was available for developers as this is _really_ what you want to play with when it comes to this kind of devices (apart from faces etc).

    I have just started development on IQ platform and am not familiar with everything yet but now I need to somehow pull navigation information (out of FIT?), compare it to current GPS location and figure out the bearing. Hopefully this can be achieved with 1.4.x VMs.

    Out of curiosity, why did Garmin create a whole layer of running VMs and not allow native apps run on already "resource deprived" devices?

    Marko.
  • Maybe just use heading instead of bearing? It kind of depends on what you're coding for, but I use heading in my apps, and display direction and distance to known points. You can't read a .fit in CIQ...

    With CIQ, you are quite "sandboxed" in what you can and can't do, which in many ways is best, as it wants to be "cause no harm" to other things, and also, insures that you are battery friendly (I don't know many devices like this that can go a week or more without running out the battery and display a watchface all the time)

    There are many developers here that have been doing this for quite some time that like CIQ and help! The only warning is that make sure you look at the UX Guide and Programmer's guide in the SDK first! :) The sample code in the SDK will also help with techniques.
  • Former Member
    Former Member
    PersistedContent

    Oh man, and now I realize that PersistedContent is not avail in 1.4 either. :(

    That means there is no way for me to access PFLs/Courses that I have sync'd through PilotSync?

    What would be the easiest way to get a Course into the app then, through an external app? I do not really fancy a manual entry of ~10 points each time, specially knowing the course is already there.

    Marko.
  • Oh man, and now I realize that PersistedContent is not avail in 1.4 either. :(

    That means there is no way for me to access PFLs/Courses that I have sync'd through PilotSync?

    What would be the easiest way to get a Course into the app then, through an external app? I do not really fancy a manual entry of ~10 points each time, specially knowing the course is already there.

    Marko.


    It might be more helpful if you told us some more details about what you are trying to do.

    We know you are trying to build a data field. Are you building it specifically to accompany the Fly app? And if so, what are you trying to display? The Fly app has screens for bearing to the nearest airport and the next waypoint so if you could explain your use case perhaps we can offer alternatives.

    Cheers,
    Douglas
  • Out of curiosity, why did Garmin create a whole layer of running VMs and not allow native apps run on already "resource deprived" devices?


    This was done for a few reasons. Primarily:

    1. We wanted to keep Connect IQ relatively easy to learn and facilitate rapid development--part of this meant avoiding lower level languages like C and Assembly
    2. We didn't want people to have to muck around in the Garmin OS code that the Connect IQ team has to work with to make the magic happen
    3. We needed a way to adaptively run Connect IQ on all sorts of different hardware (wearables, bike computers, variable screen sizes, etc.)
  • Former Member
    Former Member
    It might be more helpful if you told us some more details about what you are trying to do.

    We know you are trying to build a data field. Are you building it specifically to accompany the Fly app? And if so, what are you trying to display? The Fly app has screens for bearing to the nearest airport and the next waypoint so if you could explain your use case perhaps we can offer alternatives.

    Cheers,
    Douglas


    Hi Robert,

    I have now switched to making an App as data field is way to restrictive (no user input, no settings etc.). Originally I did try to make a data field that would extend Fly app where the field would calculate off set from bearing based on current heading in a certain period and warn the pilot with vibration after that period has been reached.

    I've built most of the app now, where I start my own activity, have settings like "off course buffer", time to alarm, time to recover, etc., but the problem I am facing now is that I have no way of accessing synced plan from Pilot app on the phone/on the watch (through PilotSync). I can see the course in the watch of course, I can Fly it (navigate), but it seems that I can not use the same data in my app.



    I can see two options here; either insert points through "settings" which would be tedious for obvious reasons, or build a web/phone app that would sync with the app on the watch.