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.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!)
-----------------------------------------------------------------------
3.4.2
* switched to new SDK 4.1.5
* added devices: Edge Explore 2, Venu Sq 2, Venu Sq 2 Music Edition
-----------------------------------------------------------------------
3.4.1
* switched to new SDK 4.1.3
* added devices: Instinct 2S / Solar / Dual Power, D2 Air X10, D2 Mach 1, Descent G1 / G1 Solar,
Edge 1040 / 1040 Solar, Forerunner 255, Forerunner 255 Music, Forerunner 255s, Forerunner 255s Music, Forerunner 955 / Solar, Instinct 2 / Solar / Dual Power / dezl Edition
* fixed crash when windspeed was not available from device
-----------------------------------------------------------------------
3.3.1
* switched to new SDK 4.0.9
* added devices: D2 Air, Descent MK2/MK2i, Descent Mk2S, Enduro, epix Gen2, Fenix 7, Fenix 7S, Fenix 7X, Forerunner 55, Forerunner 945 LTE, Venu2, Venu2 Plus,
Venus 2S, Venu Sq, Venu Sq Music,

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

 

  • You have an old designer

  • I'm not sure how to post the layout but here's an attempt. This is the one that resets the Odometer to 0 every ride. The other clone the Odometer field works fine and I can't see the difference in them.

    Outdoor 2 HMs_1.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <DIYLayout>
        <Device name="Edge 1030"/>
        <Designer time="19.05.2020 16:06" ver="2.9.7" 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="1" color="000000" x="0" y="147" x2="282" y2="147" eletype="LN" valuetype="FX" minval="false" maxonly="false" daynight="false" radius="0" stroke="1" nr_values="1"/>
        <LayoutElement type="1" color="000000" x="0" y="205" x2="282" y2="205" eletype="LN" valuetype="FX" minval="false" maxonly="false" daynight="false" radius="0" stroke="1" nr_values="1"/>
        <LayoutElement type="1" color="000000" x="0" y="354" x2="141" y2="354" eletype="LN" valuetype="FX" minval="false" maxonly="false" daynight="false" radius="0" stroke="1" nr_values="1"/>
        <LayoutElement type="1" color="000000" x="0" y="412" x2="140" y2="412" eletype="LN" valuetype="FX" minval="false" maxonly="false" daynight="false" radius="0" stroke="1" nr_values="1"/>
        <LayoutElement type="1" color="000000" x="141" y="147" x2="141" y2="205" eletype="LN" valuetype="FX" minval="false" maxonly="false" daynight="false" radius="0" stroke="1" nr_values="1"/>
        <LayoutElement type="1" color="000000" x="141" y="206" x2="141" y2="412" eletype="LN" valuetype="FX" minval="false" maxonly="false" daynight="false" radius="0" stroke="1" nr_values="1"/>
        <LayoutElement type="1" color="000000" x="141" y="412" x2="141" y2="470" eletype="LN" valuetype="FX" minval="false" maxonly="false" daynight="false" radius="0" stroke="1" nr_values="1"/>
        <LayoutElement type="0" color="000000" x="58" y="9" fixedtext="true" maxonly="false" daynight="false" eletype="FX" text="Battery" font="XTINY" halignment="1" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="61" y="29" fixedtext="false" maxonly="false" daynight="false" eletype="BV" text="$V" font="SMALL" halignment="0" precision="0" nr_values="1" sampletext="87"/>
        <LayoutElement type="0" color="000000" x="59" y="29" fixedtext="true" maxonly="false" daynight="false" eletype="FX" text="%" font="SMALL" halignment="2" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="224" y="9" fixedtext="true" maxonly="false" daynight="false" eletype="FX" text="GPS" font="XTINY" halignment="1" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="1" color="000000" x="225" y="40" x2="0" y2="0" eletype="CR" valuetype="FX" minval="false" maxonly="false" daynight="false" radius="10" stroke="1" nr_values="1"/>
        <LayoutElement type="1" color="FF000E" x="225" y="40" x2="0" y2="0" eletype="CF" valuetype="GA" minval="false" maxonly="false" daynight="false" radius="9" stroke="1" nr_values="1"/>
        <LayoutElement type="0" color="000000" x="164" y="3" fixedtext="true" maxonly="false" daynight="false" eletype="FX" text="Cadence" font="XTINY" halignment="0" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="141" y="20" fixedtext="false" maxonly="false" daynight="false" eletype="CC" text="$V" font="NR_MEDIUM" halignment="1" precision="0" nr_values="1" sampletext="167.34"/>
        <LayoutElement type="1" color="000000" x="141" y="560" x2="0" y2="0" eletype="CR" valuetype="FX" minval="false" maxonly="false" daynight="false" radius="500" stroke="1" nr_values="1"/>
        <LayoutElement type="0" color="000000" x="88" y="83" fixedtext="true" maxonly="false" daynight="false" eletype="FX" text="Speed" font="SMALL" halignment="0" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="144" y="70" fixedtext="false" maxonly="false" daynight="false" eletype="CS" text="$V" font="NR_MEDIUM" halignment="1" precision="1" nr_values="1" sampletext="45.34"/>
        <LayoutElement type="0" color="000000" x="191" y="81" fixedtext="true" maxonly="false" daynight="false" eletype="FX" text="MPH" font="MEDIUM" halignment="2" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="110" y="122" fixedtext="true" maxonly="false" daynight="false" eletype="FX" text="Avg" font="XTINY" halignment="0" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="144" y="114" fixedtext="false" maxonly="false" daynight="false" eletype="AS" text="$V" font="MEDIUM" halignment="1" precision="1" nr_values="1" sampletext="34.76"/>
        <LayoutElement type="0" color="000000" x="10" y="151" fixedtext="true" maxonly="false" daynight="false" eletype="FX" text="Ride Time" font="XTINY" halignment="2" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="79" y="166" fixedtext="false" maxonly="false" daynight="false" eletype="TT" text="$h:$M:$C" font="NR_MEDIUM" halignment="1" precision="0" nr_values="1" sampletext="4374"/>
        <LayoutElement type="0" color="000000" x="150" y="151" fixedtext="true" maxonly="false" daynight="false" eletype="FX" text="Distance" font="XTINY" halignment="2" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="264" y="166" fixedtext="false" maxonly="false" daynight="false" eletype="DS" text="$V" font="NR_MEDIUM" halignment="0" precision="2" nr_values="1" sampletext="12.56"/>
        <LayoutElement type="0" color="000000" x="64" y="208" fixedtext="true" maxonly="false" daynight="false" eletype="FX" text="BPM" font="SMALL" halignment="1" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="75" y="245" fixedtext="false" maxonly="false" daynight="false" eletype="HR" text="$V" font="NR_MEDIUM" halignment="0" precision="0" nr_values="1" sampletext="183.55"/>
        <LayoutElement type="0" color="000000" x="84" y="268" fixedtext="true" maxonly="false" daynight="false" eletype="FX" text="Zone" font="XTINY" halignment="2" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="121" y="258" fixedtext="false" maxonly="false" daynight="false" eletype="HZ" text="$V" font="SMALL" halignment="2" precision="0" nr_values="1" sampletext="4"/>
        <LayoutElement type="0" color="000000" x="8" y="300" fixedtext="true" maxonly="false" daynight="false" eletype="FX" text="Avg. HR" font="XTINY" halignment="2" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="8" y="334" fixedtext="true" maxonly="false" daynight="false" eletype="FX" text="Max. HR" font="XTINY" halignment="2" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="115" y="291" fixedtext="false" maxonly="false" daynight="false" eletype="AH" text="$V" font="MEDIUM" halignment="0" precision="0" nr_values="1" sampletext="154.49"/>
        <LayoutElement type="0" color="000000" x="116" y="321" fixedtext="false" maxonly="false" daynight="false" eletype="MH" text="$V" font="MEDIUM" halignment="0" precision="0" nr_values="1" sampletext="204.79"/>
        <LayoutElement type="0" color="000000" x="204" y="208" fixedtext="true" maxonly="false" daynight="false" eletype="FX" text="Status" font="TINY" halignment="1" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="209" y="246" fixedtext="false" maxonly="false" daynight="false" eletype="C1" text="$T" font="SMALL" halignment="2" precision="0" nr_values="3" sampletext="3"/>
        <LayoutElement type="0" color="000000" x="209" y="277" fixedtext="false" maxonly="false" daynight="false" eletype="A1" text="$T" font="SMALL" halignment="2" precision="0" nr_values="3" sampletext="3"/>
        <LayoutElement type="0" color="000000" x="210" y="308" fixedtext="false" maxonly="false" daynight="false" eletype="B1" text="$T" font="SMALL" halignment="2" precision="0" nr_values="3" sampletext="3"/>
        <LayoutElement type="0" color="000000" x="209" y="341" fixedtext="false" maxonly="false" daynight="false" eletype="J2" text="$T" font="SMALL" halignment="2" precision="0" nr_values="3" sampletext="4"/>
        <LayoutElement type="0" color="000000" x="189" y="372" fixedtext="false" maxonly="false" daynight="false" eletype="K0" text="$T" font="TINY" halignment="2" precision="0" nr_values="3" sampletext="1"/>
        <LayoutElement type="0" color="000000" x="270" y="403" fixedtext="false" maxonly="false" daynight="false" eletype="XX" text="$V" font="SMALL" halignment="0" precision="0" nr_values="3" sampletext="566"/>
        <LayoutElement type="0" color="000000" x="252" y="441" fixedtext="false" maxonly="false" daynight="false" eletype="PO" text="$V" font="TINY" halignment="2" precision="0" nr_values="3" sampletext="1"/>
        <LayoutElement type="0" color="000000" x="194" y="250" fixedtext="true" maxonly="false" daynight="false" eletype="FX" text="Speed" font="TINY" halignment="0" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="144" y="281" fixedtext="true" maxonly="false" daynight="false" eletype="FX" text="Cad." font="TINY" halignment="2" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="144" y="311" fixedtext="true" maxonly="false" daynight="false" eletype="FX" text="Sp/Cad" font="TINY" halignment="2" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="144" y="344" fixedtext="true" maxonly="false" daynight="false" eletype="FX" text="Radar" font="TINY" halignment="2" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="144" y="367" fixedtext="true" maxonly="false" daynight="false" eletype="FX" text="Radar" font="XTINY" halignment="2" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="144" y="380" fixedtext="true" maxonly="false" daynight="false" eletype="FX" text="Mode" font="XTINY" halignment="2" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="144" y="447" fixedtext="true" maxonly="false" daynight="false" eletype="FX" text="Phone Connected" font="XTINY" halignment="2" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="144" y="404" fixedtext="true" maxonly="false" daynight="false" eletype="FX" text="Free" font="TINY" halignment="2" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="31" y="356" fixedtext="true" maxonly="false" daynight="false" eletype="FX" text="Min/Max Altitude" font="XTINY" halignment="2" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="38" y="377" fixedtext="false" maxonly="false" daynight="false" eletype="MA" text="$V" font="NR_MILD" halignment="1" precision="0" nr_values="1" sampletext="143.22"/>
        <LayoutElement type="0" color="000000" x="100" y="377" fixedtext="false" maxonly="false" daynight="false" eletype="ML" text="$V" font="NR_MILD" halignment="1" precision="0" nr_values="1" sampletext="2678.22"/>
        <LayoutElement type="0" color="000000" x="24" y="414" fixedtext="true" maxonly="false" daynight="false" eletype="FX" text="2020 Outside Miles" font="XTINY" halignment="2" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="72" y="433" fixedtext="false" maxonly="false" daynight="false" eletype="OM" text="$V" font="MEDIUM" halignment="1" precision="2" nr_values="1" sampletext="1121.21"/>
        <LayoutElement type="2" replDC="FF000E" valDC00="40" colDC00="00FF00" hideDC00="false" blinkDC00="false" valDC01="30" colDC01="008040" hideDC01="false" blinkDC01="false" valDC02="20" colDC02="F8C840" hideDC02="false" blinkDC02="false" valDC03="10" colDC03="F80000" hideDC03="false" blinkDC03="false" valDC04="1" colDC04="FFFFFF" hideDC04="false" blinkDC04="false" invertcolor="false"/>
    </DIYLayout>
    

  • I did a test with your layout and had the same result as you - first.

    Then I made a test-layout with only one value: odometer.

    I did tests on Clone #4 and #6 and found out:
    -Odometer counts only if an activity is running (I think: no surprise...)
    -back to the datascreen - odometer was not updated (on both clones)
    -Odometervalue is stored correctly on both clones after ending the activity!

    THEREFOR:
    -turn off your device and let it boot again - voila: new odometer value appears!

    So - somethings seems not correct with updating the values on the device after the end of an activity.

  • That sounds pretty strange to me. I actually shut down my Edge 1030 quite often as I take the tandem in my van to begin a ride far from home and I don't need it burning battery while driving down the road. I hold the button, shut down, when I arrive, press button, start up. I also plug it on the charger every night. And.......why doesn't the other clone, in my case, Clone 4, exhibit the same behavior? That one has been gleefully updating miles all year. I compared the two side by side and the only difference I could find was Clone 1 the odometer field was Center justified and Clone 4 was right justified. Just now I changed Clone one to right justified and will see if it "remembers" itself today!!! Hard to believe THAT's the problem:)

  • I did not test on clone #1... Have to do.

  • Ok, where's the best place to get the current designer?

    The designer I'm running says 2.9.7 (B) in the title bar.

  • That is not the version you created the layouts with...

  • Ok, strange things...

    As long as there is only one odometer-field on only one of the data pages(screens) - means: only one odometer during an activity: it works on all clones but one has to reboot to update the value on the screen after ending the activity.

    If you have two odometers on 2 datapages(screen) - each one on a seperate screen, but both for the same activity, in my test the following happened:
    -load the layouts on both datascreens. Both odometers show the (different) startvalues
    -show page 1
    -start the activity
    -look at both screens: odometer count up on both
    -stop the activity, save it.

    Turn off the device, turn on, let boot:
    -both odometers show the values from the beginning of the prior activity. Means: activity was not counted (for both).

    So, that seems to be not the same as @thosj described.
    It seems to be a litte complicated if one uses more odometers on different pages during the same activity...

  • So do the layouts need to be recreated every single time there's a version update?

    Is there a method of importing & updating the layout to match the current version?

  • When you exported the layout with the latest version it is ok. Seems you did not save the layouts for some time.