Combo - source to a Complex CIQ Data Field for FR630, FR230 and FR235 screens

Former Member
Former Member
Connect IQ as a project needs more free source examples. Not snippets or rudimentary outlines, but full blown implementations that the coder would use, or is using, on actual devices. This could provide a welcome support for all kinds of potential developers, from the very neophyte to the drive by user who just want a quick way to dip a toe in - but still produce something more useful than an 'ashtray' or a 'candlestick'.

Perhaps Garmin even could establish a library in the end, with links to free source (no matter the licence) and a genuine code depository.

Meanwhile, here is my own code drop. And as stated in the posting rules for this area, it is completely free in all parts.

I am a total CIQ beginner myself, but did some Intel assembler in my early years and an open souce C project in midlife. I've constructed Combo in a simple 'fall through' manner without costly (and confusing) subroutines. The screen drawing part is hand-tooled pixel placement for _one_ screen design (the Forerunner 630/230/235). I began using the 'layout' system for a more generic approach, but ran out of memory so quickly that it was seriously unamusing.

For anyone adapting the pixel placements for another screen, I recommend the free GIMP (GNU Image Manipulation Program). Do a "File --> Save Screen Capture" from the "Connect IQ Device Simulator" and load it in GIMP. There use View --> Zoom and pull it up to 1600% where Tools --> Measure will snap the cursor to individual pixels and make it a breeze to measure.

The Fenix3 'canvas' is 218 pixels wide and 218 high, while the FR630 is 215x180. Hint, hint ;-)

The Combo archive is 458978 bytes in size because it contains six screencaps of the Data Field in different modes. That is an addition to the 170 lines of documentation at the top of the source file Combo.mc PS: The Simulator has a bug which make it display zero [0] for Average Cadence in a pure "Simulate Data" session. This is quite visible in two of the screencaps.

The overall design? Well, let's face it. There are only a limited number of ways to organize a plethora of exercise information while still remaining legible. I copied one that my oldish eyes could read at any pace, and then I supercharged it with extras discernible at best on a Long Slow Distance run.

Unique, or at least unusual, features of this Data Field are (from the documentation):

[...]
//! * 'Day/Night Mode' with White/Black background selectable at any time
//! during the activity. Default is Day-mode (White background, Black numbers).
//!
//! * 'Ticker On/Off Mode' where additional data is displayed for two seconds
//! in select positions. This can also be set at any time during the activity.
//! Default is for the Ticker to be turned On.
//!
//! * 'Heading Bug' in screen positions N, NE, E, SE, S, SW, W, NW works as
//! a true compass on the FR630 while standing still (using the internal
//! magnetometer) and shows moving direction while in motion (using GPS data).
//!
//! * 'Time of Day' column in screen centre is always shown with four digits,
//! in both 12 and 24 Hour mode (no AM/PM indication - should be obvious).
[...]


And finally, hoping it will be of some small utility, here is the source archive:

https://www.dropbox.com/s/b5v2ouyfbv4p22f/combo-Complex-CIQ-Data-Field-v1.0.zip