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

 

  • it would be great if we could share our custom data screen, so we can learn and maybe adapt to our needs. when i get home i will share mine here, if its ok 

  • Hi

    If you are using last lap XX value you need the current lap XX value as well on your layout. The value is calculated there and stored then for the last lap value when a new lap occurs.

    Could you show some examples, which values seem to be wrong?

    regards

    Erich

  • it would be great if we could share our custom data screen

    Everybody is welcome to post the code of his layout here - but I also want to point out the examples-collection in the download-zip-file.

  • Hi. My field layouts can be added to the collection, language and value to be changed as desired. RegardsLayout.rar

  • I am not sure what you mean by showing.

    Tuesday - and today - there was no content in the Last lap value for e.g. heart rate all through my run - unless I actually press the lap button. Auto-laps (from the Garmin coach plan and are available as laps in Garmin Connect) did not at any stage update Last lap HR.

    Also, total average HR includes HR from before the timer i started: Current lap average and total average does not match in the first lap. I wonder is this is related to the fact I am using Pacer corrected pace?

    Anyway, XML attached (WIP)

    <?xml version="1.0" encoding="UTF-8"?>
    <DIYLayout>
        <Device name="fenix 6 Pro / 6 Sapphire"/>
        <LayoutElement type="1" color="FFFFFF" x="0" y="0" x2="360" y2="360" eletype="RF" valuetype="FX" radius="0" stroke="1" nr_values="1"/>
        <LayoutElement type="3" text="*** BOTTOM-ELEMENTS   ***"/>
        <LayoutElement type="1" color="000000" x="0" y="86" x2="282" y2="86" eletype="LN" valuetype="FX" radius="0" stroke="1" nr_values="1"/>
        <LayoutElement type="1" color="C0C0C0" x="5" y="87" x2="84" y2="96" eletype="RF" valuetype="FX" radius="0" stroke="1" nr_values="1"/>
        <LayoutElement type="1" color="38C8F8" x="85" y="87" x2="131" y2="96" eletype="RF" valuetype="FX" radius="0" stroke="1" nr_values="1"/>
        <LayoutElement type="1" color="00F500" x="132" y="87" x2="162" y2="96" eletype="RF" valuetype="FX" radius="0" stroke="1" nr_values="1"/>
        <LayoutElement type="1" color="FF8080" x="163" y="87" x2="190" y2="96" eletype="RF" valuetype="FX" radius="0" stroke="1" nr_values="1"/>
        <LayoutElement type="1" color="FF0000" x="191" y="87" x2="253" y2="96" eletype="RF" valuetype="FX" radius="0" stroke="1" nr_values="1"/>
        <LayoutElement type="3" text="***   HR-ZONE % BARS   ***"/>
        <LayoutElement type="3" text="***   Zone 1 ***"/>
        <LayoutElement type="1" color="C0C0C1" x="5" y="1" x2="84" y2="87" eletype="RV" valuetype="P1" radius="0" stroke="1" nr_values="1"/>
        <LayoutElement type="0" color="FFFFFF" x="46" y="59" fixedtext="false" eletype="P1" text="$V" font="TINY" halignment="1" precision="0" nr_values="1"/>
        <LayoutElement type="0" color="000000" x="45" y="58" fixedtext="false" eletype="P1" text="$V" font="TINY" halignment="1" precision="0" nr_values="1"/>
        <LayoutElement type="2" replDC="C0C0C1" valDC00="1000" colDC00="C0C0C0" valDC01="1" colDC01="C0C0C0" invertcolor="false"/>
        <LayoutElement type="3" text="***   Zone 2   ***"/>
        <LayoutElement type="1" color="38C8F9" x="85" y="1" x2="131" y2="87" eletype="RV" valuetype="P2" radius="0" stroke="1" nr_values="1"/>
        <LayoutElement type="0" color="FFFFFF" x="109" y="59" fixedtext="false" eletype="P2" text="$V" font="TINY" halignment="1" precision="0" nr_values="1"/>
        <LayoutElement type="0" color="000000" x="108" y="58" fixedtext="false" eletype="P2" text="$V" font="TINY" halignment="1" precision="0" nr_values="1"/>
        <LayoutElement type="2" replDC="38C8F9" valDC00="1000" colDC00="38C8F8" valDC01="1" colDC01="38C8F8" invertcolor="false"/>
        <LayoutElement type="3" text="***   Zone 3 ***"/>
        <LayoutElement type="1" color="00F501" x="132" y="1" x2="162" y2="87" eletype="RV" valuetype="P3" radius="0" stroke="1" nr_values="1"/>
        <LayoutElement type="0" color="FFFFFF" x="149" y="59" fixedtext="false" eletype="P3" text="$V" font="TINY" halignment="1" precision="0" nr_values="1"/>
        <LayoutElement type="0" color="000000" x="148" y="58" fixedtext="false" eletype="P3" text="$V" font="TINY" halignment="1" precision="0" nr_values="1"/>
        <LayoutElement type="2" replDC="00F501" valDC00="1000" colDC00="00F500" valDC01="1" colDC01="00F500" invertcolor="false"/>
        <LayoutElement type="3" text="***   Zone 4   ***"/>
        <LayoutElement type="1" color="FF8081" x="163" y="1" x2="190" y2="87" eletype="RV" valuetype="P4" radius="0" stroke="1" nr_values="1"/>
        <LayoutElement type="0" color="FFFFFF" x="178" y="59" fixedtext="false" eletype="P4" text="$V" font="TINY" halignment="1" precision="0" nr_values="1"/>
        <LayoutElement type="0" color="000000" x="177" y="58" fixedtext="false" eletype="P4" text="$V" font="TINY" halignment="1" precision="0" nr_values="1"/>
        <LayoutElement type="2" replDC="FF8081" valDC00="1000" colDC00="FF8080" valDC01="1" colDC01="FF8080" invertcolor="false"/>
        <LayoutElement type="3" text="***   Zone 5   ***"/>
        <LayoutElement type="1" color="FF0001" x="191" y="1" x2="253" y2="87" eletype="RV" valuetype="P5" radius="0" stroke="1" nr_values="1"/>
        <LayoutElement type="0" color="FFFFFF" x="222" y="59" fixedtext="false" eletype="P5" text="$V" font="TINY" halignment="1" precision="0" nr_values="1"/>
        <LayoutElement type="0" color="000000" x="221" y="58" fixedtext="false" eletype="P5" text="$V" font="TINY" halignment="1" precision="0" nr_values="1"/>
        <LayoutElement type="2" replDC="FF0001" valDC00="1000" colDC00="FF0000" valDC01="1" colDC01="FF0000" invertcolor="false"/>
        <LayoutElement type="3" text="***   HR CURRENT   ***"/>
        <LayoutElement type="0" color="FFFFFF" x="128" y="0" fixedtext="false" eletype="HR" text="$V" font="NR_MEDIUM" halignment="1" precision="0" nr_values="1"/>
        <LayoutElement type="0" color="FFFFFF" x="132" y="0" fixedtext="false" eletype="HR" text="$V" font="NR_MEDIUM" halignment="1" precision="0" nr_values="1"/>
        <LayoutElement type="0" color="FFFFFF" x="128" y="4" fixedtext="false" eletype="HR" text="$V" font="NR_MEDIUM" halignment="1" precision="0" nr_values="1"/>
        <LayoutElement type="0" color="FFFFFF" x="132" y="4" fixedtext="false" eletype="HR" text="$V" font="NR_MEDIUM" halignment="1" precision="0" nr_values="1"/>
        <LayoutElement type="0" color="000000" x="130" y="2" fixedtext="false" eletype="HR" text="$V" font="NR_MEDIUM" halignment="1" precision="0" nr_values="1"/>
        <LayoutElement type="3" text="***   HR-BAR   ***"/>
        <LayoutElement type="1" color="000001" x="5" y="87" x2="253" y2="96" eletype="RH" valuetype="HR" radius="0" stroke="1" nr_values="1"/>
        <LayoutElement type="2" replDC="000001" valDC00="1750" colDC00="000011" valDC01="1020" colDC01="000011" invertcolor="false"/>
        <LayoutElement type="3" text="----------------- Seperator ------------------"/>
        <LayoutElement type="1" color="000000" x="84" y="96" x2="260" y2="262" eletype="RF" valuetype="FX" radius="0" stroke="1" nr_values="1"/>
        <LayoutElement type="1" color="F7F7F7" x="156" y="142" x2="260" y2="174" eletype="RF" valuetype="CW" radius="0" stroke="1" nr_values="1"/>
        <LayoutElement type="1" color="F7F7F7" x="156" y="176" x2="261" y2="210" eletype="RF" valuetype="AH" radius="0" stroke="1" nr_values="1"/>
        <LayoutElement type="1" color="F7F7F7" x="156" y="211" x2="261" y2="244" eletype="RF" valuetype="CY" radius="0" stroke="1" nr_values="1"/>
        <LayoutElement type="0" color="000000" x="207" y="142" fixedtext="true" eletype="FX" text="C" font="XTINY" halignment="2" precision="0" nr_values="1"/>
        <LayoutElement type="0" color="000000" x="158" y="136" fixedtext="false" eletype="CW" text="$V" font="LARGE" halignment="2" precision="0" nr_values="1"/>
        <LayoutElement type="0" color="FFFFFC" x="150" y="137" fixedtext="false" eletype="CE" text="$m:$S" font="LARGE" halignment="0" precision="0" nr_values="1"/>
        <LayoutElement type="1" color="000000" x="149" y="175" x2="260" y2="175" eletype="LN" valuetype="FX" radius="0" stroke="2" nr_values="1"/>
        <LayoutElement type="0" color="000000" x="208" y="176" fixedtext="true" eletype="FX" text="T" font="XTINY" halignment="2" precision="0" nr_values="1"/>
        <LayoutElement type="0" color="FFFFFC" x="151" y="170" fixedtext="false" eletype="PP" text="$m:$S" font="LARGE" halignment="0" precision="0" nr_values="1"/>
        <LayoutElement type="0" color="000000" x="159" y="170" fixedtext="false" eletype="AH" text="$V" font="LARGE" halignment="2" precision="0" nr_values="1"/>
        <LayoutElement type="1" color="000000" x="149" y="210" x2="260" y2="210" eletype="LN" valuetype="FX" radius="0" stroke="2" nr_values="1"/>
        <LayoutElement type="0" color="000000" x="218" y="210" fixedtext="true" eletype="FX" text="L" font="XTINY" halignment="0" precision="0" nr_values="1"/>
        <LayoutElement type="0" color="FFFFFC" x="151" y="204" fixedtext="false" eletype="LP" text="$m:$S" font="LARGE" halignment="0" precision="0" nr_values="1"/>
        <LayoutElement type="0" color="000000" x="159" y="204" fixedtext="false" eletype="CY" text="$V" font="LARGE" halignment="2" precision="0" nr_values="1"/>
        <LayoutElement type="0" color="000000" x="79" y="140" fixedtext="false" eletype="TT" text="$H:$M:$C" font="MEDIUM" halignment="0" precision="0" nr_values="1"/>
        <LayoutElement type="0" color="FFFFFF" x="130" y="241" fixedtext="false" eletype="CA" text="$V" font="XTINY" halignment="1" precision="0" nr_values="1"/>
        <LayoutElement type="0" color="000000" x="53" y="214" fixedtext="false" eletype="GA" text="$V" font="XTINY" halignment="2" precision="0" nr_values="1"/>
        <LayoutElement type="0" color="000000" x="76" y="222" fixedtext="false" eletype="GH" text="$V" font="XTINY" halignment="0" precision="0" nr_values="1"/>
        <LayoutElement type="2" replDC="F7F7F7" valDC00="1800" colDC00="FF0002" valDC01="1570" colDC01="FF8082" valDC02="1490" colDC02="00F502" valDC03="1400" colDC03="38C8F7" valDC04="1260" colDC04="C0C0C2" valDC05="1" colDC05="F8F8F8" invertcolor="false"/>
        <LayoutElement type="3" text="----------------- Seperator ------------------"/>
        <LayoutElement type="1" color="008002" x="0" y="96" x2="85" y2="142" eletype="RF" valuetype="PE" radius="1" stroke="1" nr_values="1"/>
        <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="FF8000" x="75" y="210" x2="0" y2="0" eletype="CF" valuetype="OI" radius="4" stroke="1" nr_values="1"/>
        <LayoutElement type="0" color="FFFFFF" x="77" y="96" fixedtext="false" eletype="PE" text="$m:$S" font="LARGE" halignment="0" precision="2" nr_values="1"/>
        <LayoutElement type="0" color="FFFFFC" x="179" y="87" fixedtext="false" eletype="CP" text="$m:$S" font="NR_MILD" halignment="0" precision="0" nr_values="5"/>
        <LayoutElement type="0" color="000000" x="80" y="171" fixedtext="false" eletype="CD" text="$V" font="MEDIUM" halignment="0" precision="2" nr_values="1"/>
        <LayoutElement type="0" color="FFFFFF" x="258" y="104" fixedtext="false" eletype="PD" text="$h:$M:$S" font="TINY" halignment="0" precision="0" nr_values="1"/>
        <LayoutElement type="2" replDC="008002" valDC00="600" colDC00="006A00" valDC01="300" colDC01="009F00" valDC02="0" colDC02="808080" valDC03="-300" colDC03="E10000" valDC04="-600" colDC04="970000" invertcolor="false"/>
        <LayoutElement type="2" replDC="FFFFFC" valDC00="2850" colDC00="FFB7B7" valDC01="3000" colDC01="FED5BC" valDC02="3100" colDC02="FEF3DA" valDC03="3250" colDC03="F0FEA0" valDC04="3400" colDC04="B7FFB7" valDC05="3500" colDC05="B7FFB7" valDC06="3600" colDC06="DFF8FF" valDC07="4200" colDC07="FFFFFC" invertcolor="true"/>
    </DIYLayout>
    

  • Hi

    The difference in the heartrates is because the total average hr is a value I get directly from the SDK and it is calculated there. The current lap average hr is calculated by me after timer started. Thats why there is a difference. Maybe I could also calculate the total average hr by myself, I will think about it.

    Pacer corrected pace: Only difference is, that I use the corrected distance (rounded to the nearest km when lap is pressed) for calculation. It Does not influence the other values.

    Regarding Autolap: I will try to test this, there shouldn't be a difference between autolap and button press.

    regards

    Erich

  • Hi

    I cannot reproduce your problem with autolap and last lap avg hr. Are you sure, that it is an autolap event, not an interval?

    I think it is not an "lap" event in the garmin coach.

    The problem is, I cannot differ if the lap button is pressed or an autolap occured, even if I wanted to!

    regards

    Erich

  • I get this error after updating to V2.4.1 on edge explore. I can load the screen but when I start the timer the error screen is displayed.

    Here's a simple test layout:

    Test_layout.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <DIYLayout>
        <Device name="Edge Explore"/>
        <LayoutElement type="1" color="FFFFFF" x="0" y="0" x2="240" y2="400" eletype="RF" valuetype="FX" radius="1" stroke="1" nr_values="1"/>
        <LayoutElement type="0" color="000000" x="119" y="79" fixedtext="false" eletype="CS" text="$V" font="NR_THAI_HOT" halignment="1" precision="0" nr_values="1"/>
        <LayoutElement type="0" color="000000" x="113" y="215" fixedtext="false" eletype="TT" text="$H:$M:$S" font="NR_MEDIUM" halignment="1" precision="0" nr_values="1"/>
    </DIYLayout>
    

    thanks in advance.

  • Hi

    Sorry, there was a bug when using currentpower. It crashed when used by devices which dont support it.

    I uploaded a version 2.4.2 to clone #4. I hope your problem is fixed now.

    2.4.2
    * fixed a bug where the datafield crashed when device did not have power values available

    regards

    Erich