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

 

  • Here is a 25 min Test I just did on my trainer.
    Values are matching (nearly) perfectly.

    Only strange thing is that Garmin Connect shows little bit different values on its website (after storing).
    Edit: see below!

    What you see in the pictures below is:
    above:Garmin original HR-zone times during activity
    below: HMs HR in Zones

    .

    .

    EDIT:
    I found the discrepancy of data shown on EDGE and data shown on Garmin Connct:
    Total Activity time on GC is 25:15 - that means, it took me 14 seconds from making screenshots to store the activity. In that time the zones 0, 1 and 2 have risen a little.

  • Yesterday I did the HR zone test before I read HM's posting that the % in zones should be displayed with precision=1. Since I had nothing better to do, I did it today. Again, I only "scratched" zone 5 with only 34 seconds to reproduce fjelstens observations.

    Although the result shows inaccuracies in the range of seconds and tenths of a percent, both - within the DIY calculation and externally to the Garmin values, these differences are marginal and insignificant in the practical world - I think Wink .


  • I agree. This is not a rounding error. I will try to keep an eye out going forward.

  • Hi

    Is it possible, that you paused the activity, or auto pause was active ?

  • Is it possible to add (black (for white font) and white (for black font)) border(outline) to the fonts with a check box?

  • On a graph, when we mark the min/max values, is it possible the show the values of that mark with a small number above or below the point?

  • Hi

    Great app, thanks a lot, finally I can have all data I need on one screen on my Edge 130.

    Here is my example:

    <?xml version="1.0" encoding="UTF-8"?>
    <DIYLayout>
        <Device name="Edge 130"/>
        <Designer time="27.05.2020 21:34" ver="2.9.7" ifver="B"/>
        <LayoutElement type="1" color="000000" x="0" y="0" x2="230" y2="27" eletype="RF" valuetype="FX" minval="false" maxonly="false" daynight="false" radius="0" stroke="1" nr_values="1"/>
        <LayoutElement type="0" color="FFFFFF" x="5" y="0" fixedtext="false" maxonly="false" daynight="false" eletype="BV" text="$V%" font="TINY" halignment="2" precision="0" nr_values="1" sampletext="80"/>
        <LayoutElement type="0" color="FFFFFF" x="115" y="0" fixedtext="false" maxonly="false" daynight="false" eletype="CT" text="$H:$M" font="TINY" halignment="1" precision="0" nr_values="1" sampletext="49970"/>
        <LayoutElement type="0" color="FFFFFF" x="225" y="0" fixedtext="false" maxonly="false" daynight="false" eletype="TM" text="$V°" font="TINY" halignment="0" precision="0" nr_values="1" sampletext="29"/>
        <LayoutElement type="1" color="E0E0E0" x="0" y="27" x2="230" y2="303" eletype="RF" valuetype="FX" minval="false" maxonly="false" daynight="false" radius="0" stroke="1" nr_values="1"/>
        <LayoutElement type="0" color="000000" x="5" y="27" fixedtext="false" maxonly="false" daynight="false" eletype="HZ" text="$Vz" font="LARGE" halignment="2" precision="1" nr_values="1" sampletext="4"/>
        <LayoutElement type="0" color="000000" x="115" y="27" fixedtext="true" maxonly="false" daynight="false" eletype="FX" text="HR" font="TINY" halignment="1" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="225" y="27" fixedtext="false" maxonly="false" daynight="false" eletype="HP" text="$V%" font="LARGE" halignment="0" precision="0" nr_values="1" sampletext="84.12"/>
        <LayoutElement type="0" color="000000" x="115" y="52" fixedtext="false" maxonly="false" daynight="false" eletype="HR" text="$V" font="NR_HOT" halignment="1" precision="0" nr_values="1" sampletext="180"/>
        <LayoutElement type="0" color="000000" x="5" y="110" fixedtext="false" maxonly="false" daynight="false" eletype="AH" text="$V" font="NR_MILD" halignment="2" precision="0" nr_values="1" sampletext="0"/>
        <LayoutElement type="0" color="000000" x="105" y="124" fixedtext="true" maxonly="false" daynight="false" eletype="FX" text="AVG" font="TINY" halignment="0" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="1" color="000000" x="115" y="126" x2="115" y2="150" eletype="LN" valuetype="FX" minval="false" maxonly="false" daynight="false" radius="0" stroke="2" nr_values="1"/>
        <LayoutElement type="0" color="000000" x="125" y="124" fixedtext="true" maxonly="false" daynight="false" eletype="FX" text="MAX" font="TINY" halignment="2" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="225" y="110" fixedtext="false" maxonly="false" daynight="false" eletype="MH" text="$V" font="NR_MILD" halignment="0" precision="0" nr_values="1" sampletext="204.79"/>
        <LayoutElement type="1" color="000000" x="230" y="155" x2="0" y2="155" eletype="LN" valuetype="FX" minval="false" maxonly="false" daynight="false" radius="0" stroke="1" nr_values="1"/>
        <LayoutElement type="0" color="000000" x="5" y="155" fixedtext="true" maxonly="false" daynight="false" eletype="FX" text="ascent" font="XTINY" halignment="2" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="5" y="183" fixedtext="false" maxonly="false" daynight="false" eletype="TA" text="$V" font="NR_MILD" halignment="2" precision="0" nr_values="1" sampletext="0"/>
        <LayoutElement type="0" color="000000" x="115" y="175" fixedtext="false" maxonly="false" daynight="false" eletype="GR" text="$V%" font="LARGE" halignment="1" precision="1" nr_values="1" sampletext="0.0"/>
        <LayoutElement type="0" color="000000" x="225" y="155" fixedtext="true" maxonly="false" daynight="false" eletype="FX" text="altitude" font="XTINY" halignment="0" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="225" y="183" fixedtext="false" maxonly="false" daynight="false" eletype="CL" text="$V" font="NR_MILD" halignment="0" precision="0" nr_values="1" sampletext="478.22"/>
        <LayoutElement type="1" color="000000" x="230" y="230" x2="0" y2="230" eletype="LN" valuetype="FX" minval="false" maxonly="false" daynight="false" radius="0" stroke="1" nr_values="1"/>
        <LayoutElement type="0" color="000000" x="5" y="230" fixedtext="true" maxonly="false" daynight="false" eletype="FX" text="timer" font="XTINY" halignment="2" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="5" y="255" fixedtext="false" maxonly="false" daynight="false" eletype="TT" text="$H:$M:$S" font="NR_MILD" halignment="2" precision="0" nr_values="1" sampletext="4374"/>
        <LayoutElement type="0" color="000000" x="225" y="230" fixedtext="true" maxonly="false" daynight="false" eletype="FX" text="distance" font="XTINY" halignment="0" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="225" y="255" fixedtext="false" maxonly="false" daynight="false" eletype="DS" text="$V" font="NR_MILD" halignment="0" precision="2" nr_values="1" sampletext="25.13"/>
    </DIYLayout>
    

    Also, I played around a bit with the font settings for Edge 130

    FNT_EDGE130_ROBOTO_CONDENSED_17;     IDR_FNT_ROBOTO_COND_REG; 20;  -5; 0;  5;  0  // XTINY
    FNT_EDGE130_ROBOTO_CONDENSED_BOLD_17;IDR_FNT_BEBASNEUE_REG;   21;  -5; 0;  4;  3  // TINY
    FNT_EDGE130_ROBOTO_CONDENSED_18;     IDR_FNT_BEBASNEUE_REG;   24;  -5; 0;  5;  3  // SMALL
    FNT_EDGE130_ROBOTO_CONDENSED_BOLD_18;IDR_FNT_BEBASNEUE_REG;   24;  -5; 0;  5;  3  // MEDIUM
    FNT_EDGE130_ROBOTO_CONDENSED_BOLD_21;IDR_FNT_BEBASNEUE_REG;   25;  -5; 0;  5;  5  // LARGE
    FNT_EDGE130_BEBAS_NEUE_BOLD_32;      IDR_FNT_BEBASNEUE_REG;   46;  -9; 0;  9;  0  // NR_MILD
    FNT_EDGE130_BEBAS_NEUE_BOLD_35;      IDR_FNT_BEBASNEUE_REG;   50;  -9; 0;  9;  0  // NR_MEDIUM
    FNT_EDGE130_BEBAS_NEUE_BOLD_51;      IDR_FNT_BEBASNEUE_REG;   70; -13; 0; 13;  0  // NR_HOT
    FNT_EDGE130_BEBAS_NEUE_BOLD_64;      IDR_FNT_BEBASNEUE_REG;   88; -17; 0; 17;  0  // NR_THAI_HOT
    

  • I think it needs to be separate fields as the text may be too small based on the size of the graph itself.

  • same battery usage here, no bt and wifi disabled