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
=======================================================================

 

  • Fantastic, thank you very much! Will try it tomorrow.

    All the best,

    Evgeny

  • New version 2.3.0 is on all clones.

  • Hi Erich,

    I did a run today with pacer current ahead time and everything worked just fine, great job! The data field now shows me everything that I need during the run.

    I seem to have problems with free memory on my FR935 if I choose higher averaging number for the speed. Is the used memory proportional to the averaging number?

    Best regard,

    Evgeny

  • Hi

    Yes, the value is stored in an array which stores the average value every 30s, so needed memory increases a little bit every 30s until the time for the avering value is reached, so if set to 600s, memory consumptions increases a little bit for 10mins and then should stay stable.

    Could you post your xml, then I could take a look how much is left.

    regards

    Erich

  • There is obviously a problem with the new current lap avg power und current lap avg heartrate fields. If your lap is too long you will run out of memory.

    Sorry for that, I will tweak the saving of the average value, so it does not happen anymore in the next release.

    regards

    Erich

  • Hi Erich,

    I have FR935. It had 1140 bytes free just  before the run start, after the start it gradually decreased down to 202. Sometimes the free memory restored to about 380 and then again slowly decreased to 202. This is with 300s averaging and no saving to the fit file. I also have the cadence averaging over 60 measurements that probably affecting the memory.The xml file is attached.

    Best regards,

    Evgeny

    my_FR935_pacer_7.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <DIYLayout>
        <Device name="Forerunner 935"/>
        <LayoutElement type="1" color="FFFFFF" x="0" y="0" x2="240" y2="240" eletype="RF" valuetype="FX" radius="0" stroke="1" nr_values="1"/>
        <LayoutElement type="3" text="----------------- Pacer------------------"/>
        <LayoutElement type="0" color="000000" x="0" y="0" fixedtext="false" eletype="PA" text="$V" font="XTINY" halignment="2" precision="0" nr_values="300"/>
        <LayoutElement type="1" color="008002" x="80" y="91" x2="159" y2="160" eletype="RF" valuetype="PE" radius="0" stroke="1" nr_values="1"/>
        <LayoutElement type="1" color="008002" x="75" y="125" x2="196" y2="159" eletype="CF" valuetype="PE" radius="35" stroke="1" nr_values="1"/>
        <LayoutElement type="1" color="008002" x="165" y="125" x2="196" y2="159" eletype="CF" valuetype="PE" radius="35" stroke="1" nr_values="1"/>
        <LayoutElement type="0" color="FFFFFF" x="120" y="98" fixedtext="false" eletype="PE" text="$m:$S" font="NR_HOT" halignment="1" precision="2" nr_values="1"/>
        <LayoutElement type="2" replDC="008002" valDC00="2" colDC00="008000" valDC01="1" colDC01="E60000" invertcolor="false"/>
        <LayoutElement type="3" text="----------------- Heart rate------------------"/>
        <LayoutElement type="1" color="E0E0E0" x="120" y="120" x2="180" y2="360" eletype="AC" valuetype="FX" radius="110" stroke="23" nr_values="1"/>
        <LayoutElement type="1" color="C0C0C1" x="120" y="120" x2="180" y2="360" eletype="AF" valuetype="HZ" radius="110" stroke="23" nr_values="1"/>
        <LayoutElement type="0" color="000000" x="120" y="32" fixedtext="false" eletype="HR" text="$V" font="NR_HOT" halignment="1" precision="0" nr_values="1"/>
        <LayoutElement type="0" color="000000" x="168" y="52" fixedtext="false" eletype="HZ" text="/$V" font="MEDIUM" halignment="2" precision="0" nr_values="1"/>
        <LayoutElement type="2" replDC="C0C0C1" valDC00="50" colDC00="E60000" valDC01="40" colDC01="FF8000" valDC02="30" colDC02="008000" valDC03="20" colDC03="0F82F8" valDC04="10" colDC04="828282" valDC05="1" colDC05="828282" invertcolor="false"/>
        <LayoutElement type="3" text="----------------- GPS------------------"/>
        <LayoutElement type="2" replDC="00B014" valDC00="40" colDC00="00CC00" valDC01="1" colDC01="C0C0C0" invertcolor="false"/>
        <LayoutElement type="2" replDC="00B013" valDC00="30" colDC00="00CC00" valDC01="1" colDC01="C0C0C0" invertcolor="false"/>
        <LayoutElement type="2" replDC="00B012" valDC00="20" colDC00="00CC00" valDC01="1" colDC01="C0C0C0" invertcolor="false"/>
        <LayoutElement type="2" replDC="00B011" valDC00="20" colDC00="00CC00" valDC01="10" colDC01="FF0000" valDC02="1" colDC02="C0C0C0" invertcolor="false"/>
        <LayoutElement type="1" color="808080" x="106" y="227" x2="114" y2="237" eletype="RF" valuetype="FX" radius="0" stroke="1" nr_values="1"/>
        <LayoutElement type="1" color="808080" x="113" y="223" x2="121" y2="237" eletype="RF" valuetype="FX" radius="0" stroke="1" nr_values="1"/>
        <LayoutElement type="1" color="808080" x="120" y="219" x2="128" y2="237" eletype="RF" valuetype="FX" radius="0" stroke="1" nr_values="1"/>
        <LayoutElement type="1" color="808080" x="127" y="215" x2="135" y2="237" eletype="RF" valuetype="FX" radius="0" stroke="1" nr_values="1"/>
        <LayoutElement type="1" color="00B011" x="107" y="228" x2="113" y2="236" eletype="RF" valuetype="GA" radius="0" stroke="1" nr_values="1"/>
        <LayoutElement type="1" color="00B012" x="114" y="224" x2="120" y2="236" eletype="RF" valuetype="GA" radius="0" stroke="1" nr_values="1"/>
        <LayoutElement type="1" color="00B013" x="121" y="220" x2="127" y2="236" eletype="RF" valuetype="GA" radius="0" stroke="1" nr_values="1"/>
        <LayoutElement type="1" color="00B014" x="128" y="216" x2="134" y2="236" eletype="RF" valuetype="GA" radius="0" stroke="1" nr_values="1"/>
        <LayoutElement type="0" color="000000" x="144" y="212" fixedtext="false" eletype="GA" text="$V" font="S_TINY" halignment="1" precision="0" nr_values="1"/>
        <LayoutElement type="3" text="----------------- Cadence ------------------"/>
        <LayoutElement type="1" color="008080" x="120" y="120" x2="45" y2="0" eletype="AF" valuetype="CC" radius="110" stroke="23" nr_values="60"/>
        <LayoutElement type="1" color="000000" x="120" y="120" x2="45" y2="0" eletype="AC" valuetype="FX" radius="99" stroke="1" nr_values="60"/>
        <LayoutElement type="0" color="000000" x="159" y="166" fixedtext="false" eletype="CC" text="$V" font="NR_MEDIUM" halignment="1" precision="0" nr_values="60"/>
        <LayoutElement type="2" replDC="008080" valDC00="1740" colDC00="008000" valDC01="1700" colDC01="0000FF" valDC02="1650" colDC02="FF8040" valDC03="1630" colDC03="E60000" valDC04="1600" colDC04="800040" invertcolor="false"/>
        <LayoutElement type="3" text="----------------- Additional------------------"/>
        <LayoutElement type="0" color="000000" x="97" y="166" fixedtext="false" eletype="DS" text="$V" font="S_NR_MEDIUM" halignment="0" precision="1" nr_values="1"/>
        <LayoutElement type="0" color="000000" x="33" y="67" fixedtext="false" eletype="XX" text="$V" font="XTINY" halignment="2" precision="0" nr_values="1"/>
        <LayoutElement type="3" text="----------------- Decorations ------------------"/>
        <LayoutElement type="1" color="008000" x="70" y="208" x2="170" y2="208" eletype="LN" valuetype="FX" radius="0" stroke="1" nr_values="1"/>
        <LayoutElement type="1" color="000000" x="0" y="120" x2="23" y2="120" eletype="LN" valuetype="FX" radius="0" stroke="2" nr_values="1"/>
        <LayoutElement type="1" color="000000" x="217" y="120" x2="240" y2="120" eletype="LN" valuetype="FX" radius="0" stroke="2" nr_values="1"/>
        <LayoutElement type="1" color="000000" x="120" y="166" x2="120" y2="206" eletype="LN" valuetype="FX" radius="0" stroke="2" nr_values="1"/>
        <LayoutElement type="1" color="000000" x="188" y="188" x2="210" y2="210" eletype="LN" valuetype="FX" radius="0" stroke="2" nr_values="1"/>
        <LayoutElement type="0" color="000000" x="89" y="202" fixedtext="true" eletype="FX" text="km" font="TINY" halignment="0" precision="0" nr_values="1"/>
    </DIYLayout>
    

  • Hi

    The cadence average value of 60 is the problem. 

    Pacer average value is stored different than the other values. I will take a look if I can change that. This will take some time...

    For now reduce the cadence average to 10 and remove 2 or 3 elements, then you should be ok. In the meantime I will try

    to squeeze out some memory.

    To test if you are ok you will have to wait 5mins after timer start (because pacer average is 300s), when it still runs then, you are good.

    regards

    Erich

  • Hi

    This one should work, it ran for 5mins.

    <?xml version="1.0" encoding="UTF-8"?>
    <DIYLayout>
        <Device name="Forerunner 935"/>
        <LayoutElement type="1" color="FFFFFF" x="0" y="0" x2="240" y2="240" eletype="RF" valuetype="FX" radius="0" stroke="1" nr_values="1"/>
        <LayoutElement type="3" text="----------------- Pacer------------------"/>
        <LayoutElement type="0" color="000000" x="0" y="0" fixedtext="false" eletype="PA" text="$V" font="XTINY" halignment="2" precision="0" nr_values="300"/>
        <LayoutElement type="1" color="008002" x="80" y="91" x2="159" y2="160" eletype="RF" valuetype="PE" radius="0" stroke="1" nr_values="1"/>
        <LayoutElement type="1" color="008002" x="75" y="125" x2="196" y2="159" eletype="CF" valuetype="PE" radius="35" stroke="1" nr_values="1"/>
        <LayoutElement type="1" color="008002" x="165" y="125" x2="196" y2="159" eletype="CF" valuetype="PE" radius="35" stroke="1" nr_values="1"/>
        <LayoutElement type="0" color="FFFFFF" x="120" y="98" fixedtext="false" eletype="PE" text="$m:$S" font="NR_HOT" halignment="1" precision="2" nr_values="1"/>
        <LayoutElement type="2" replDC="008002" valDC00="2" colDC00="008000" valDC01="1" colDC01="E60000" invertcolor="false"/>
        <LayoutElement type="3" text="----------------- Heart rate------------------"/>
        <LayoutElement type="1" color="E0E0E0" x="120" y="120" x2="180" y2="360" eletype="AC" valuetype="FX" radius="110" stroke="23" nr_values="1"/>
        <LayoutElement type="1" color="C0C0C1" x="120" y="120" x2="180" y2="360" eletype="AF" valuetype="HZ" radius="110" stroke="23" nr_values="1"/>
        <LayoutElement type="0" color="000000" x="120" y="32" fixedtext="false" eletype="HR" text="$V" font="NR_HOT" halignment="1" precision="0" nr_values="1"/>
        <LayoutElement type="0" color="000000" x="168" y="52" fixedtext="false" eletype="HZ" text="/$V" font="MEDIUM" halignment="2" precision="0" nr_values="1"/>
        <LayoutElement type="2" replDC="C0C0C1" valDC00="50" colDC00="E60000" valDC01="40" colDC01="FF8000" valDC02="30" colDC02="008000" valDC03="20" colDC03="0F82F8" valDC04="10" colDC04="828282" valDC05="1" colDC05="828282" invertcolor="false"/>
        <LayoutElement type="3" text="----------------- GPS------------------"/>
        <LayoutElement type="2" replDC="00B014" valDC00="40" colDC00="00CC00" valDC01="1" colDC01="C0C0C0" invertcolor="false"/>
        <LayoutElement type="2" replDC="00B013" valDC00="30" colDC00="00CC00" valDC01="1" colDC01="C0C0C0" invertcolor="false"/>
        <LayoutElement type="2" replDC="00B012" valDC00="20" colDC00="00CC00" valDC01="1" colDC01="C0C0C0" invertcolor="false"/>
        <LayoutElement type="2" replDC="00B011" valDC00="20" colDC00="00CC00" valDC01="10" colDC01="FF0000" valDC02="1" colDC02="C0C0C0" invertcolor="false"/>
        <LayoutElement type="1" color="00B011" x="107" y="228" x2="113" y2="236" eletype="RF" valuetype="GA" radius="0" stroke="1" nr_values="1"/>
        <LayoutElement type="1" color="00B012" x="114" y="224" x2="120" y2="236" eletype="RF" valuetype="GA" radius="0" stroke="1" nr_values="1"/>
        <LayoutElement type="1" color="00B013" x="121" y="220" x2="127" y2="236" eletype="RF" valuetype="GA" radius="0" stroke="1" nr_values="1"/>
        <LayoutElement type="1" color="00B014" x="128" y="216" x2="134" y2="236" eletype="RF" valuetype="GA" radius="0" stroke="1" nr_values="1"/>
        <LayoutElement type="3" text="----------------- Cadence ------------------"/>
        <LayoutElement type="1" color="008080" x="120" y="120" x2="45" y2="0" eletype="AF" valuetype="CC" radius="110" stroke="23" nr_values="60"/>
        <LayoutElement type="0" color="000000" x="159" y="166" fixedtext="false" eletype="CC" text="$V" font="NR_MEDIUM" halignment="1" precision="0" nr_values="10"/>
        <LayoutElement type="2" replDC="008080" valDC00="1740" colDC00="008000" valDC01="1700" colDC01="0000FF" valDC02="1650" colDC02="FF8040" valDC03="1630" colDC03="E60000" valDC04="1600" colDC04="800040" invertcolor="false"/>
        <LayoutElement type="3" text="----------------- Additional------------------"/>
        <LayoutElement type="0" color="000000" x="97" y="166" fixedtext="false" eletype="DS" text="$V" font="S_NR_MEDIUM" halignment="0" precision="1" nr_values="1"/>
        <LayoutElement type="3" text="----------------- Decorations ------------------"/>
        <LayoutElement type="1" color="008000" x="70" y="208" x2="170" y2="208" eletype="LN" valuetype="FX" radius="0" stroke="1" nr_values="1"/>
        <LayoutElement type="1" color="000000" x="0" y="120" x2="23" y2="120" eletype="LN" valuetype="FX" radius="0" stroke="2" nr_values="1"/>
        <LayoutElement type="1" color="000000" x="217" y="120" x2="240" y2="120" eletype="LN" valuetype="FX" radius="0" stroke="2" nr_values="1"/>
        <LayoutElement type="1" color="000000" x="120" y="166" x2="120" y2="206" eletype="LN" valuetype="FX" radius="0" stroke="2" nr_values="1"/>
        <LayoutElement type="1" color="000000" x="188" y="188" x2="210" y2="210" eletype="LN" valuetype="FX" radius="0" stroke="2" nr_values="1"/>
        <LayoutElement type="0" color="000000" x="89" y="202" fixedtext="true" eletype="FX" text="km" font="TINY" halignment="0" precision="0" nr_values="1"/>
    </DIYLayout>
    

    I just removed the 4 little gray rectangles from gps and the value. (And cadence to avg of 10s)

    regards

    Erich

  • Thanks, Erich. I did a run today and everything went fine!

    I think I will use the current ahead time and cadence for the training data field and both ahead times without cadence for the race data field. I suppose I can decrease the averaging for the speed to minimum without loosing accuracy for the current ahead time?

    Best regards,

    Evgeny