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

 

  • Deleting a loaded screen is easy, just highlight the "Elements" in the Elements menu and click on remove. But, you may want to keep some of the elements for your own design and just move them about.

    Yes, you can build a white rectangle over the black background, but you could also build up smaller rectangles and colour them different to go behind the data screens. What you can also do if building an intricate screen is build up the background later over an existing element and then when you have it right, move it to the background so that the data field moves to the front and displays over the background.

    Also don't forget to have a colour for both day and night when you are creating elements.

    Also constantly save and rename your copies, ie once you have deleted a loaded design,  rename it and save it. Then you will always have that "Blank Template " for future projects and still have the loaded design you started from unmodified,

  • I'm building my first layout from scratch for an Edge 520 plus but when I try to add an element in the layout below, I get the message "You have reached the maximum number of elements for this device!". I don't know if I'm missing something as I can see other layouts full of data and graphics...

    <?xml version="1.0" encoding="UTF-8"?>
    <DIYLayout>
        <Device name="Edge 520 Plus"/>
        <Designer time="18.12.2022 20:43" ver="3.4.2" ifver="C"/>
        <LayoutElement type="1" color="FFFFFF" x="0" y="0" x2="200" y2="265" eletype="RF" valuetype="FX" minval="false" maxonly="false" daynight="false" radius="0" stroke="1" nr_values="1"/>
        <LayoutElement type="3" text="----------------- Seperator ------------------"/>
        <LayoutElement type="1" color="000000" x="0" y="25" x2="265" y2="25" eletype="LN" valuetype="FX" minval="false" maxonly="false" daynight="false" radius="0" stroke="2" nr_values="1"/>
        <LayoutElement type="0" color="000000" x="49" y="5" fixedtext="false" maxonly="false" daynight="false" eletype="CT" text="$H:$M" font="MEDIUM" halignment="0" precision="0" nr_values="1" sampletext="63312"/>
        <LayoutElement type="0" color="000000" x="103" y="5" fixedtext="false" maxonly="false" daynight="false" eletype="TM" text="$V" font="MEDIUM" halignment="0" precision="1" nr_values="1" sampletext="18.4"/>
        <LayoutElement type="0" color="000000" x="113" y="4" fixedtext="true" maxonly="false" daynight="false" eletype="FX" text="º" font="SMALL" halignment="0" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="168" y="5" fixedtext="false" maxonly="false" daynight="false" eletype="BV" text="$V%" font="MEDIUM" halignment="0" precision="0" nr_values="1" sampletext="87"/>
        <LayoutElement type="0" color="000000" x="192" y="5" fixedtext="false" maxonly="false" daynight="false" eletype="GA" text="$V" font="MEDIUM" halignment="0" precision="0" nr_values="1" sampletext="3"/>
        <LayoutElement type="3" text="----------------- Seperator ------------------"/>
        <LayoutElement type="1" color="000000" x="0" y="82" x2="265" y2="82" eletype="LN" valuetype="FX" minval="false" maxonly="false" daynight="false" radius="0" stroke="2" nr_values="1"/>
        <LayoutElement type="0" color="0000FF" x="46" y="34" fixedtext="false" maxonly="false" daynight="false" eletype="CS" text="$V" font="NR_THAI_HOT" halignment="0" precision="0" nr_values="1" sampletext="37"/>
        <LayoutElement type="0" color="000000" x="52" y="35" fixedtext="true" maxonly="false" daynight="false" eletype="FX" text="k" font="XTINY" halignment="0" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="53" y="46" fixedtext="true" maxonly="false" daynight="false" eletype="FX" text="p" font="XTINY" halignment="0" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="53" y="62" fixedtext="true" maxonly="false" daynight="false" eletype="FX" text="h" font="XTINY" halignment="0" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="80" y="43" fixedtext="true" maxonly="false" daynight="false" eletype="FX" text="max" font="XTINY" halignment="0" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="FF0000" x="80" y="57" fixedtext="false" maxonly="false" daynight="false" eletype="MS" text="$V" font="MEDIUM" halignment="0" precision="0" nr_values="1" sampletext="65.34"/>
        <LayoutElement type="3" text="----------------- Seperator ------------------"/>
        <LayoutElement type="0" color="000000" x="183" y="34" fixedtext="false" maxonly="false" daynight="false" eletype="DS" text="$V" font="NR_THAI_HOT" halignment="0" precision="1" nr_values="1" sampletext="45.2"/>
        <LayoutElement type="0" color="000000" x="192" y="44" fixedtext="true" maxonly="false" daynight="false" eletype="FX" text="k" font="XTINY" halignment="0" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="195" y="55" fixedtext="true" maxonly="false" daynight="false" eletype="FX" text="m" font="XTINY" halignment="0" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="3" text="----------------- Seperator ------------------"/>
        <LayoutElement type="0" color="000000" x="60" y="86" fixedtext="true" maxonly="false" daynight="false" eletype="FX" text="ASC" font="TINY" halignment="0" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="146" y="86" fixedtext="true" maxonly="false" daynight="false" eletype="FX" text="ELE" font="TINY" halignment="0" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="190" y="86" fixedtext="true" maxonly="false" daynight="false" eletype="FX" text="%" font="TINY" halignment="0" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="72" y="90" fixedtext="false" maxonly="false" daynight="false" eletype="TA" text="$V" font="NR_HOT" halignment="0" precision="0" nr_values="1" sampletext="560"/>
        <LayoutElement type="0" color="000000" x="158" y="90" fixedtext="false" maxonly="false" daynight="false" eletype="CL" text="$V" font="NR_HOT" halignment="0" precision="0" nr_values="1" sampletext="1253"/>
        <LayoutElement type="0" color="000000" x="203" y="90" fixedtext="false" maxonly="false" daynight="false" eletype="TA" text="$V" font="NR_HOT" halignment="0" precision="0" nr_values="1" sampletext="12"/>
        <LayoutElement type="1" color="000000" x="0" y="135" x2="265" y2="134" eletype="LN" valuetype="FX" minval="false" maxonly="false" daynight="false" radius="0" stroke="2" nr_values="1"/>
        <LayoutElement type="3" text="----------------- Seperator ------------------"/>
        <LayoutElement type="0" color="000000" x="53" y="140" fixedtext="true" maxonly="false" daynight="false" eletype="FX" text="BPS" font="XTINY" halignment="0" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="132" y="140" fixedtext="true" maxonly="false" daynight="false" eletype="FX" text="PWR" font="XTINY" halignment="0" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="194" y="140" fixedtext="true" maxonly="false" daynight="false" eletype="FX" text="CAD" font="XTINY" halignment="0" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="64" y="141" fixedtext="false" maxonly="false" daynight="false" eletype="HR" text="$V" font="NR_HOT" halignment="0" precision="0" nr_values="1" sampletext="183.55"/>
        <LayoutElement type="0" color="000000" x="141" y="141" fixedtext="false" maxonly="false" daynight="false" eletype="CB" text="$V" font="NR_HOT" halignment="0" precision="0" nr_values="1" sampletext="455.34"/>
        <LayoutElement type="0" color="000000" x="204" y="141" fixedtext="false" maxonly="false" daynight="false" eletype="CC" text="$V" font="NR_HOT" halignment="0" precision="0" nr_values="1" sampletext="75"/>
        <LayoutElement type="0" color="000000" x="20" y="188" fixedtext="true" maxonly="false" daynight="false" eletype="FX" text="AV" font="XTINY" halignment="0" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="17" y="209" fixedtext="true" maxonly="false" daynight="false" eletype="FX" text="Z5" font="XTINY" halignment="0" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="53" y="184" fixedtext="false" maxonly="false" daynight="false" eletype="AH" text="$V" font="SMALL" halignment="0" precision="0" nr_values="1" sampletext="154.49"/>
        <LayoutElement type="0" color="000000" x="57" y="206" fixedtext="false" maxonly="false" daynight="false" eletype="T5" text="$M:$S" font="SMALL" halignment="0" precision="0" nr_values="1" sampletext="621"/>
        <LayoutElement type="1" color="000000" x="0" y="227" x2="265" y2="227" eletype="LN" valuetype="FX" minval="false" maxonly="false" daynight="false" radius="0" stroke="2" nr_values="1"/>
    </DIYLayout>
    

  • Your device does not have enough memory for more elements. Not every device does have the same amount of memory a datafield can use.

  • hello does anyone have examples of data fields in hms DiY for a garmin edge explore I am a beginner, it is not to start from 0 thank youVVVVV

     

  • You can just load a layout from another device, EDGE 830 for example, switch the device to Edge Explore and click "Scale to device".

  • but it is that the configuration of edge 830 brings for potentiometer and edge explore no, so the data will not give the same that's why I ask the edge explore does anyone have designs

  • Is the 5 minute update interval of temperature a limitation by SDK or by the app?

  • Limitation by the SDK

  • Hi,

    my girlfriend and me have the forerunners 255S and 955.
    Currently I'm adapting the fonts.txt and in priciple it works.

    But I have some questions.

    According to this page 255 / 255S / 955 have the same fonts.
    developer.garmin.com/.../

    Question 1:

    In the fonts.txt most fonts are identical between 255 and 955.
    But at some there are differences.
    e.g.
    "Forerunner 255" - "NR_THAI_HOT" ==> FNT_006B402400_ROBOTO_BLACK_NUMBER_FONT_57
    "Forerunner 955 / Solar" - "NR_THAI_HOT" ==> FNT_NOTO_SANS_BOLD_NMBR_94PX

    "Forerunner 955 / Solar" - "S_NR_THAI_HOT" ==> FNT_006B402400_ROBOTO_BLACK_NUMBER_FONT_57
    "S_NR_THAI_HOT" seems to be ok. But normally "NR_THAI_HOT" and "S_NR_THAI_HOT" should be identical, or not?

    If I change at 955 "FNT_NOTO_SANS_BOLD_NMBR_94PX" to "FNT_006B402400_ROBOTO_BLACK_NUMBER_FONT_57", the designer shows nothing.
    If I change to 255 in the designer, it works well. On the forerunner it works also well.

    Questions 2:
    In the fonts.txt the font numbers e.g. ..._57 are different to the linked page.
    Is there an interning mapping at the datafield?

    Question 3:
    Is there an intermediate size between medium and hot. The jump is very big.


    I am still happy with the data field, but would like to understand the above.

    After the adjustment I can upload the fonts.txt for 255S/255/955. But I want to be sure that everything is ok then.

    Thanks, Christian

  • Hello,

    is there a possibility to display only hours or minutes of the time? I would like to arrange hours and minutes one below the other. If I use $m or $M, the minutes count >60.
    Currently I hide the rest with a rectangle, but this cuts off other elements.

    Christian