DIY Data Field

Former Member
Former Member
Application is still pending to be approved, topic is created to be used as a communication hub during and after public beta test.

Do/Design It Yourself Data Field.

Disclaimer:
Application has hundreds of use-cases due to fully user-configurable setup, therefore it is prone to bugs. This project is not sponsored and I'm the only developer working on it in my own free time. Although I'd gladly accept reasonable criticism and improvement suggestions, I do not guarantee that bugs will be fixed and new features added in a timely manner/at all. If this approach is not acceptable for you, then, please, do not leave bad reviews just because I didn't resolve your specific case. Thanks for understanding.

Preface:
There's a lot of things custom activity recorders can do, which native Garmin apps cannot, but sometimes there's no need to invent a bicycle if there's one already itching for a ride. Some capabilities like local watch personal records, structured workouts information and advanced running dynamics will most certainly never be exposed to ConnectIQ API layer, therefore it's sometimes more efficient to use native software, but no one prevents us to use it with a twist. The main idea of this data-field type application is to give user a tool to design his own data field layout in WYSIWYG manner. The web application makes that possible providing cross-platform compatibility at the same time the only requirement being the HTML5 compatible browser. This app is not considered to be an ultimate DF which "replaces them all" as there's always something new and intriguing, which developer may envision, but I hope that this data field will help new and existing users to explore the Garmin ConnectIQ capabilities providing some unique features, which I didn't encounter in existing apps.

First things first: there's a web application, which allows to design data field layout and produces configuration string as a result. This configuration string can only be delivered to data field using standard settings means i.e. you will need either Garmin Express installed on compatible PC or Garmin Connect Mobile on your mobile device. Web app uses HTML5 local storage, changes are saved after each user action, therefore it's safe to leave your work half done and proceed from the same point sometime later. I do not own hardware to test with Apple devices, therefore any problems in that department can be explored and fixed only by sending me detailed explanations and, of course, the configuration string itself. Current version with the default layout setup was tested for several weeks in simulator and for several of my personal runs proving to be rather stable to go live, but of course there's no guarantee that this app will function without hitches on your specific device. Currently, I do not have a reliable hosting for my personal web apps, therefore data field designer will reside on Google Apps Engine servers using free account bandwidth/limitations (as there are almost no server-side computations, I think this will suffice for a while) at least if/until it'll become popular enough for the users to complain about page availability. Current implementation with the default layout setup works on the edge of stability and there was also a price to pay during watch code optimization, which lead to efficient but very unreadable code. This means that for older devices there may be no improvements, only bug fixes. But for modern devices like Forerunner735XT and on we still have additional 10kb of available memory, which can be used for new logic like new data values and/or additional app parameters (e.g. waypoints). Sometimes network latency and/or Google servers accessibility seems to impact resources load time and wrong font may be displayed first time the web app is started, to fix this simply press F5 (refresh page) in browser.

Current settings are 4 lines for definition itself (these should be copy/pasted without changes directly from web app), Target Pace for pacemaker values (should be entered as string in <min>:<sec> format, e.g. "5:40" as in min/km) and Milestones, which are just fixed distances comma separated list, they are expressed in kilometers and may contain fractional values using dot delimiter (e.g. 0.5,1,1.5, etc). It'necessary to enter values in kilometers, but they will be converted before display depending on watch settings.

Default setup is considered to be a "component showcase" and consists of basic building blocks:
- Data values, which are simply text representation of corresponding activity information bits like time or speed, for data values it's possible to change screen coordinates, font, color, number of samples to smooth the value over specified amount of seconds and add optional outline for data to become more readable or dynamically colored on less contrast backgrounds; if text font is selected, then it's also possible to append data value with custom text, e.g. create label with value for another data block;
- Data graphs, these are just rolling data value charts, which represent one selected data value over a set period of time, minimum and maximum graph values are adjusted automatically, number of samples is calculated automatically based on width of graph area and graph bar, all of the other options are similar to data values;
- Graphics elements, these are basic graphical primitives, which allow to customize the layout, add visibility to some values etc; parameters for these elements are mostly self explanatory except for two specific elements of type Arc. These may not only serve as a static view elements, but also can be used to represent a dynamic data value in a manner of a progress bar. For this to happen you need to tick the "Variable" option and select base Data value (currently there's only a limited selection, but this may be a subject to change) accompanied by min and max initial values, these range values are indeed initial as when the underlying data value falls outside of this range, then range is adjusted automatically. For example in bundled layout this feature is used to display the progress to the next kilometer: Elapsed distance is selected as a base value, initial range is specified as 0 to 100 (in this case 100 means 1000m, as the distance values are displayed as 00.00), which means that this arc will grow from start angle to the maximum width angle as the elapsed distance increases during activity acting as a progress bar to the next kilometer. When elapsed distance will become greater than 1000 meters, then ranges will be readjusted using the same range difference as before, in this case minimum value will become 1000m while maximum one will increase to 2000m. Here's a little demo of what you can make using variable value arc (this config is created for semi-round devices, copy/paste this configuration string into import window of web app).
AGUAJA[HIWaVFAJNATXDEAODZQVELEUA[HIWaVFAODU]`DEAOEOQVEVE_A[HIWaVFAABG`[DEAOFDQWE`FHA[HIWaVFAABHGRDEAOF[QWFIFRA[HIWaVFAJNA\ODEAOGQQVFSF\A[HIWaVFAOE]CPCWAODZTMELF\A[HIWaVFAAAAAACWAPDWTMELF\ASADILDAPOE]CPFEABAVDVENQAPQAAAFDJCFACB

Selected element options can be adjusted using the properties panel to the right of the designer canvas. In addition to pixel-by-pixel adjustments, designer canvas allows to drag currently selected element. To drag data value it's not necessary to start drag at any specific point, but for graphs and graphical elements the drag point will be determined based on mouse pointer coordinates: e.g. to resize graph area or rectangle click and drag somewhere around the lower right corner, to adjust the radius of circles and direction arrow start drag outside of the outer radius, to change coordinates - click somewhere near the circle center. For the arcs it's currently possible to change start angle and arc width by activating drag-and-drop near the corresponding arc vertex. Touch support for mobile devices is implemented.

There are still some limitations like direction arrow points only to north or some data values available only on high-end devices like power are not yet implemented etc, but as I already mentioned above, this app is subject to improve especially for the newer devices, where there's a lot of memory available even for the data field type of app. The web app is also meant to be improved especially in a direction to provide the nearest possible WYSIWYG snapshot of what you'll actually see on device, but there are also some limitations like, for example, font, which is used as numeric font in the latest Fenix5/FR935 models is not and won't be publicly available (confirmed by Garmin officials explicitly) and I used nearest lookalike, therefore there still may be some couple of pixel differences here and there between device and web app. For these kinds of problems I can only test and fix using the user-provided layouts in specific device simulator as I'm a simple FR230 owner for real testing and I'm afraid this won't change in the nearest year unless generous users will help me to upgrade.

Web app may eventually become mobile application based on the user feedback (but not for the Apple devices, Android only).
  • Former Member
    Former Member over 7 years ago
    Hi,
    for me DIY is the best datafield in the store. I customized a data field for cycling and it works perfect. Thanks a lot for the development. I'd like to create another data field for running. Is it possible to create 2 different data fields on the watch or is it possible to install the DIY datafiled twice on the watch (FR935)?

    edit:
    I've read the complete thread and after beta version the developer will duplicate the data field. So we have to wait...
    &#8203;&#8203;&#8203;&#8203;&#8203;&#8203;&#8203;
  • Former Member
    Former Member over 7 years ago
    I'd like to create another data field for running. Is it possible to create 2 different data fields on the watch or is it possible to install the DIY datafiled twice on the watch (FR935)?

    Hi, along with a 0.65 update I've released cloned version of this data field which will be available there after it's approved. This one can be used either as a companion within the same activity (for example, Rafael designed very complex but effective data field, which doesn't fit into 26kb already, two-field setup will allow to split definition and have almost the same result with two-field per data screen setup) or as a storage for a separate definition for the same or another activity. Main reason why I did release only one additional field although I planned to make somewhere around four in total is that I'm still trying to figure out how to make symbolic links within Eclipse environment effectively.
  • Getting the following error on Edge 820: Unable to save setting. DIY has a character limit for settings. Here is my layout:
    ALEBFASHaZAUAAOE]CPHIJHAHIEGKEABG`[C[AIFPVPAAETRA[HIEGKFGQACQDCRAJFPRNBMGCA[HIEGKGHQABZVCRAJAARNBMDVAWHIEGKACAAAAAC`ACFPFPAUHCR^MABAAAAAAWABDAAUHNVUGABAAAAAFMABDAAUHIEDMABAAAAADBABAMAUHEKEEABAAAAABOACBKAUHL`EJABAAAAAEWACBLAWHIEGKADAAAAACMACUCBNAWHIEGKACAAAAACWACFPFPAWHIEGKACAAAAACMACJRBNASAFXFGABAAAAAECABAXAFVKCCDAAAAAACABClockASAF]YBAMAAAAAFCABAUAFXCQCDAAAAAACABMiASAFYa_AJAAAAAHCABAUAFYa_CDAAAAAACABMiAUAF[^KCDAAAAAACAB/hASAC_AHAVAAAAAEAABAVAC_BFCDAAAAAAAABBpmASALB_^APAAAAAEAABAVAK`GXCDAAAAAAAABRpmAWAEDR`CDAAAAAACABTimeAVAI^RBCDAAAAAACABLapAXAAJSRCDAAAAAAEABTotalASAGHEUADAAAAADAABAVAAJTKCDAAAAAAEABAvgASOP_CIACAAAAADAABASAGFJLAKAAAAADAABAVAC]HBCDAAAAAAAABSpdASALCARAWAAAAADAABAUAI^SPCDAAAAAAAABHrASAELENAYAAAAAEAACAVAFN^ECDAAAAAAAABCalASAJ_OLA[AAAAAEAABATAKRYCDAAAAABAAB%

    This was working until the 0.65 update

    Thanks
  • Former Member
    Former Member over 7 years ago
    Getting the following error on Edge 820: Unable to save setting. DIY has a character limit for settings ... This was working until the 0.65 update

    Hi, I already answered you that I was unable to import your definition, this almost certainly means, that you were using some kind of old designer version to make this layout. The fact that this was working until you updated to 0.65 should mean that app version on watch was also not updated for some reason (e.g. to make sure app is updated properly I always reboot and sometimes even uninstall the app and install from scratch after reboot. I can send you previous version assembled specifically for your device so that you sideload it and test if it's working, but my guess is that the app wasn't updated properly, which happens every now and then especially if you use the data field in your current activity, some parts of which may be still precached even after you exit to the watch face.

    Therefore, the most reliable way to sync everything is to (don't consider me paranoid, but you never know when something is cached on Garmin watch):
    - exclude DIY from your activity;
    - reboot watch;
    - connect watch to PC and uninstall DIY;
    - reboot watch;
    - connect watch to PC and install the watch;
    - disconnect watch from PC to let watch update installed apps local files;
    - reconnect watch to pc and only then transfer settings.

    But before attempting that I insistently recommend you to clear you browser cache to make sure you're using the latest designer app version (as of today it's v.0.65 and you shuld see this number in the upper left corner of device image).
  • Hi, along with a 0.65 update I've released cloned version of this data field which will be available there after it's approved.


    Thanks so much for the second cloned version... soon I'l be in data heaven :)

  • Former Member
    Former Member over 7 years ago
    Thanks for your very good ap. I realy love it.
    But for using in bike with a powermeter it will be perfect if we can display power average on 3 and 10 sec and maybe power lap average. these date are available on garmin display.

    Thanks an other time for your ap.
  • Former Member
    Former Member over 7 years ago
    Thanks for your very good ap. I realy love it.
    But for using in bike with a powermeter it will be perfect if we can display power average on 3 and 10 sec and maybe power lap average. these date are available on garmin display.
    Thanks an other time for your ap.

    You can already do that: if you tick the "Lap" option for "Current power", then power value will be displayed as an average for current lap, or you can increase the number of "Samples" to average value over <number of samples> seconds.
  • For some reason the latest update isn?t working for me, my fenix5 displays the IQ symbol when the data field is selected. I?ll do some more digging in the morning as I left my laptop at work.
  • Hi Thanks for adding the E1000. I'm experiencing the same problems as in post #134 when adding the definition below from Garmin Express. Being a newbie I also followed the steps in your reply above just in case I was doing something wrong. I am using v0.65 of the designer and the latest version of the datafield.
    Even when I open the default settings in GE & hit save without making any changes it generates the same error
    Hope you can find the cause. Cheers HD



    ANUBPASHCP_LAAOE]CPHHMBAVABA]FCDQAF_PBCABGPSASAG\WKABAAAHYBCABAVANM`KA[QADCVBAAB%s%A_AG\W[CDAAAAABCABElapsed TimeASAG\XIADAAAAAHCABAXAG\YVCDAAAAABCABSpeedAVAG\ZFAJAAAAAHCAB%fFA]AG\[SCDAAAAABCABAvg. SpeedAVAG\\EAKAAAAAFCAB%fFAUACJNHCDAAAAAACABHRASACJNUAVQACQDFCABASABE\NAWAAAAABCABASADOB\AXAAAAABCAB AZAG\]CCDAAAAAACABCadenceASAG\]PAPAAAAAFCABASAFXJIAQAAAAABCABASAHaQWARAAAAABCABA[ALNJ_CDAAAAAACABPower 3sASALNKKBBQAEA_FCADASAKIYDBCAAAAABCABASAMR`RBDAAAAABCABA_ADOCPCDAAAAABCABTotal AscentASADOCaATAAAAAFCABA`AKIYYCDAAAAABCABTotal DescentASAKIZIAUAAAAAFCABAXAG\_UCDAAAAAACABGradeAWAG\_aBTJNATXBCAC%fE%AaADODaCDAAAAABCABCrs. Pt. Dist.AVADOEQBVAAAAAGCAB%fGAaAKI[ICDAAAAABCABDist. to Dest.AVAKI[ZBUAAAAAGCAB%fGASAG]AOCAAAAAACCABAUHCODSABAAAAAHJACCKAUHCOFPABAAAAAHJACEHAUHCOHCABAAAAAHJACF\AUHGaV_ABAAAAACOACH[AUHLSDZABAAAAAE]ACH[AUHCOINABAAAAAHJABHFAUHEXP\ABAAAAABHABH[AUHJI_WABAAAAADVABH]AUHN\MRABAAAAAGCABH[AUHCOJBABAAAAAHJACH[AUHJI`KABAAAAADVACINAUHIATTAFAAAAABJACA^AUHCOKRABAAAAAHJACJJAUHJIaZABAAAAADVACK_AUHCOMFABAAAAAHJACK_

    Edit: If I enter the same definition strings via Android GCM It accepts them and shows the datafield, However the layout is missing most of the dividing lines between my data values

    https://goo.gl/photos/RQUw33eGrUKyWLsP8

    Edit2: It appears that the lines that are not being displayed have stroke width of 2 when I change the lines to a stroke width of 1 the lines are being displayed. However they seem to be offset compared to the layout in the designer app

    https://goo.gl/photos/g9BRmRyhwJRjwmzc8
  • Former Member
    Former Member over 7 years ago
    For some reason the latest update isn?t working for me, my fenix5 displays the IQ symbol when the data field is selected. I?ll do some more digging in the morning as I left my laptop at work.

    This is very strange as changes were just minor fixes and I tested them via usual routine for the major device families. Please, also check whether this behavior is the same for the base and new data field, will anything change if you delete settings file on watch file system?