HMs DIY #1-6

Store Link

Because I want to keep this datafield and the app free for use I would be very grateful about a small donation to PayPal

A detailed description of how to use it can be found here: 

HMs_DIY_GUIDANCE.pdf
HMs_DIY_ANLEITUNG.pdf

Thanks very much to mcinner1 for putting so much time into this documentation!

Designer download

You can contribute on my github page.
You can upload your layout so others can use it as well.
Also any changes to the fonts.txt can be updated there as well.

Garmin_HMsDIY

=======================================================================
RELEASE NOTES
=======================================================================
-----------------------------------------------------------------------
3.6.2
* switched to new SDK 7.2.1
* added devices: Approach S7 42mm, Descent Mk3 43mm /Mk3i 43mm, Descent Mk3i 51mm, Edge 1050, epix Pro Gen2 42mm, epix Pro Gen2 47mm / quatix 7 pro, epix Pro Gen2 51mm / D2 mach 1 pro / tactix 7
Fenix 7 Pro, Fenix 7 Pro Solar, Fenix 7S Pro, Fenix 7X Pro, Fenix 7xPro Solar, Forerunner 165, Forerunner 165M, Venu 3, Venu 3S, Vivoactive 5
-----------------------------------------------------------------------
3.5.1
* switched to new SDK 4.2.4
* added devices: FR265, FR265S, FR965, GPSMAP 67/67i, Marq (Gen 2), Marq (Gen 2) Aviator, EDGE 540, EDGE 840, Instinct 2x Solar
* added two new font types GLANCE, GLANCENR (only available if device supports it!)

for full releasenotes see: releasenotes.txt
=======================================================================

 

  • New version 2.9.8 on clone #6:

    http://public.stattegg.info/HM_DIYD_2.9.8.zip

    -----------------------------------------------------------------------
    2.9.8
    * Moved FR645M and FR245M to medium devices
    * Added "Load from clipboard" button to designer. You can now load you layout from the created string for restoring a lost xml file
    (of course not all elements can be recovered (seperators and which device for example, default device is the edge 1030)
    * new value: "Difference Avg-Curr speed"
    * descreased max number of elements of medium devices to 35
    * odometer value is now saved every 30s and calculated differently during activity
    * $T can now be used with addional text like all other replacements

  • Thanks mate. It will be possible add the W' data (W Balance)?, or dFRC in other platfomrs

    Regards

  • Sorry, but I dont have time for such a complicated algorithm to implement at the moment.

  • DIFFERENCE SPEED

    I made up a small code as an example for using the new value "Difference avg.-curr.Speed"

    <?xml version="1.0" encoding="UTF-8"?>
    <DIYLayout>
        <Device name="Edge 1030"/>
        <Designer time="19.06.2020 17:13" ver="2.9.8" ifver="B"/>
        <LayoutElement type="1" color="FFFFFF" x="0" y="0" x2="282" y2="470" eletype="RF" valuetype="FX" minval="false" maxonly="false" daynight="false" radius="0" stroke="1" nr_values="1"/>
        <LayoutElement type="3" text="***   Equality CIRCLE   ***"/>
        <LayoutElement type="1" color="38A8F8" x="130" y="237" x2="0" y2="0" eletype="CF" valuetype="DE" minval="false" maxonly="false" daynight="false" radius="9" stroke="1" nr_values="1"/>
        <LayoutElement type="2" replDC="38A8F8" valDC00="21" colDC00="000000" hideDC00="true" blinkDC00="false" valDC01="-21" colDC01="38A8F8" hideDC01="false" blinkDC01="false" valDC02="-1000" colDC02="000000" hideDC02="true" blinkDC02="false" invertcolor="false"/>
        <LayoutElement type="3" text="***   Triangle UP   ***"/>
        <LayoutElement type="1" color="FF0005" x="130" y="230" x2="0" y2="0" eletype="CF" valuetype="DE" minval="false" maxonly="false" daynight="false" radius="5" stroke="1" nr_values="1"/>
        <LayoutElement type="1" color="FF0005" x="130" y="224" x2="138" y2="235" eletype="LN" valuetype="DE" minval="false" maxonly="false" daynight="false" radius="0" stroke="2" nr_values="1"/>
        <LayoutElement type="1" color="FF0005" x="130" y="224" x2="122" y2="235" eletype="LN" valuetype="DE" minval="false" maxonly="false" daynight="false" radius="0" stroke="2" nr_values="1"/>
        <LayoutElement type="1" color="FF0005" x="137" y="235" x2="122" y2="235" eletype="LN" valuetype="DE" minval="false" maxonly="false" daynight="false" radius="0" stroke="2" nr_values="1"/>
        <LayoutElement type="1" color="FF0005" x="136" y="233" x2="123" y2="234" eletype="LN" valuetype="DE" minval="false" maxonly="false" daynight="false" radius="0" stroke="2" nr_values="1"/>
        <LayoutElement type="2" replDC="FF0005" valDC00="21" colDC00="FF0000" hideDC00="false" blinkDC00="false" valDC01="-1000" colDC01="000000" hideDC01="true" blinkDC01="false" invertcolor="false"/>
        <LayoutElement type="3" text="***   Triangle DOWN   ***"/>
        <LayoutElement type="1" color="00A805" x="130" y="244" x2="0" y2="0" eletype="CF" valuetype="DE" minval="false" maxonly="false" daynight="false" radius="5" stroke="1" nr_values="1"/>
        <LayoutElement type="1" color="00A805" x="130" y="250" x2="138" y2="239" eletype="LN" valuetype="DE" minval="false" maxonly="false" daynight="false" radius="0" stroke="2" nr_values="1"/>
        <LayoutElement type="1" color="00A805" x="130" y="250" x2="122" y2="239" eletype="LN" valuetype="DE" minval="false" maxonly="false" daynight="false" radius="0" stroke="2" nr_values="1"/>
        <LayoutElement type="1" color="00A805" x="137" y="240" x2="122" y2="239" eletype="LN" valuetype="DE" minval="false" maxonly="false" daynight="false" radius="0" stroke="2" nr_values="1"/>
        <LayoutElement type="1" color="00A805" x="136" y="240" x2="123" y2="241" eletype="LN" valuetype="DE" minval="false" maxonly="false" daynight="false" radius="0" stroke="2" nr_values="1"/>
        <LayoutElement type="2" replDC="00A805" valDC00="-21" colDC00="000000" hideDC00="true" blinkDC00="false" valDC01="-1000" colDC01="00A800" hideDC01="false" blinkDC01="false" invertcolor="false"/>
        <LayoutElement type="3" text="*** Arrow UP   ***"/>
        <LayoutElement type="1" color="000005" x="153" y="226" x2="153" y2="249" eletype="LN" valuetype="DE" minval="false" maxonly="false" daynight="false" radius="0" stroke="3" nr_values="1"/>
        <LayoutElement type="1" color="000005" x="153" y="226" x2="148" y2="234" eletype="LN" valuetype="DE" minval="false" maxonly="false" daynight="false" radius="0" stroke="3" nr_values="1"/>
        <LayoutElement type="1" color="000005" x="153" y="226" x2="158" y2="234" eletype="LN" valuetype="DE" minval="false" maxonly="false" daynight="false" radius="0" stroke="3" nr_values="1"/>
        <LayoutElement type="2" replDC="000005" valDC00="-21" colDC00="000000" hideDC00="false" blinkDC00="false" valDC01="-1000" colDC01="000000" hideDC01="true" blinkDC01="false" invertcolor="false"/>
        <LayoutElement type="3" text="*** Arrow DOWN   ***"/>
        <LayoutElement type="1" color="000006" x="153" y="226" x2="153" y2="249" eletype="LN" valuetype="DE" minval="false" maxonly="false" daynight="false" radius="0" stroke="3" nr_values="1"/>
        <LayoutElement type="1" color="000006" x="148" y="241" x2="153" y2="249" eletype="LN" valuetype="DE" minval="false" maxonly="false" daynight="false" radius="0" stroke="3" nr_values="1"/>
        <LayoutElement type="1" color="000006" x="158" y="241" x2="153" y2="249" eletype="LN" valuetype="DE" minval="false" maxonly="false" daynight="false" radius="0" stroke="3" nr_values="1"/>
        <LayoutElement type="2" replDC="000006" valDC00="21" colDC00="000000" hideDC00="true" blinkDC00="false" valDC01="-1000" colDC01="000000" hideDC01="false" blinkDC01="false" invertcolor="false"/>
        <LayoutElement type="3" text="***   DATA   ***"/>
        <LayoutElement type="0" color="000000" x="77" y="222" fixedtext="false" maxonly="false" daynight="false" eletype="CS" text="$V" font="NR_MILD" halignment="1" precision="1" nr_values="1" sampletext="45.34"/>
        <LayoutElement type="0" color="000000" x="201" y="222" fixedtext="false" maxonly="false" daynight="false" eletype="AS" text="$V" font="NR_MILD" halignment="1" precision="1" nr_values="1" sampletext="34.76"/>
        <LayoutElement type="0" color="000000" x="141" y="279" fixedtext="false" maxonly="false" daynight="false" eletype="DE" text="$V" font="NR_MILD" halignment="1" precision="1" nr_values="1" sampletext="4.36"/>
        <LayoutElement type="0" color="000000" x="77" y="260" fixedtext="true" maxonly="false" daynight="false" eletype="FX" text="curr. Speed" font="XTINY" halignment="1" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="201" y="260" fixedtext="true" maxonly="false" daynight="false" eletype="FX" text="avg. Speed" font="XTINY" halignment="1" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="141" y="317" fixedtext="true" maxonly="false" daynight="false" eletype="DE" text="diff. Speed" font="XTINY" halignment="1" precision="0" nr_values="1" sampletext="4.36"/>
    </DIYLayout>
    

    It's up to you to change the meaning of the direction and color of triangles and arrows...

    I made it for:
    too fast: triangle/arrow up, green
    in avg. range (+-2 km/h): blue circle, both arrows
    too slow: triangle/arrow down, red

  • New version 2.9.9 on #6

    -----------------------------------------------------------------------
    2.9.9 (datafield only)
    * fixed some memory problems on medium devices

  • Just out of interest:
    If you use the Imperial System, do you have to give distance, speed, altitude (etc.) values for dynamin colors in miles and feet or do you have to enter the values in meters?
    Because, as far as I know, the Garmin devices internally always calculate in meters.

  • Dynamic color values also have to be in imperial units. I am storing the converted values in an array, calculate the average from it and use it then for comparing.

  • I am curious if anyone has worked on the fonts for vivoactive 4S.  I started to a while ago, but did not get very far.  It seems to take a bit of work to get that figured out.

  • I can help you, but I don't have that watch. So you would have to test my work several times and send me the resulting screenshots.
    If you want that, send me a PM.