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

 

  • You're welcome  ;-)

  • Great to see all those ANT+ values now being available for the datafield. However, I tried to add my Di2 values for battery and gear indexes or gear sizes to the DIY4 datafield and have only zero values (with or without an activity started). Did anyone get those values up and running?

  • Hi

    Did you connect the device before opening the datafield?

    Which version did you use (datatfield and designer)?

    Please post your xml file.

    Maybe it was connected via bluetooth?

  • It's a rather huge XML :) I used designer 2.6.0 and DIY Datafield #4 Version 2.6.1. Here's my XML. I only connect bluetooth occasionally (never to be precise, because the shimano app ain't nice :)) I tried both, connecting Di2 before and after adding or starting the datafield. It's Dura-Ace Di2 9150 by the way, but that shouldn't matter.

    <?xml version="1.0" encoding="UTF-8"?>
    <DIYLayout>
        <Device name="Edge 1030"/>
        <LayoutElement type="1" color="FFFFFF" x="0" y="0" x2="282" y2="470" eletype="RF" valuetype="FX" radius="0" stroke="1" nr_values="1"/>
        <LayoutElement type="3" text="***   DATAFIELD LINES   ***"/>
        <LayoutElement type="1" color="000000" x="0" y="148" x2="282" y2="148" eletype="LN" valuetype="FX" radius="0" stroke="1" nr_values="1"/>
        <LayoutElement type="1" color="000000" x="0" y="205" x2="282" y2="205" eletype="LN" valuetype="FX" radius="0" stroke="1" nr_values="1"/>
        <LayoutElement type="1" color="000000" x="0" y="354" x2="282" y2="354" eletype="LN" valuetype="FX" radius="0" stroke="1" nr_values="1"/>
        <LayoutElement type="1" color="000000" x="0" y="411" x2="282" y2="411" eletype="LN" valuetype="FX" radius="0" stroke="1" nr_values="1"/>
        <LayoutElement type="1" color="000000" x="141" y="148" x2="141" y2="205" eletype="LN" valuetype="FX" radius="0" stroke="1" nr_values="1"/>
        <LayoutElement type="1" color="000000" x="141" y="354" x2="141" y2="410" eletype="LN" valuetype="FX" radius="0" stroke="1" nr_values="1"/>
        <LayoutElement type="1" color="000000" x="86" y="412" x2="86" y2="470" eletype="LN" valuetype="FX" radius="0" stroke="1" nr_values="1"/>
        <LayoutElement type="1" color="000000" x="196" y="412" x2="196" y2="470" eletype="LN" valuetype="FX" radius="0" stroke="1" nr_values="1"/>
        <LayoutElement type="3" text="*** NAVIGATION ***"/>
        <LayoutElement type="0" color="000000" x="141" y="4" fixedtext="false" eletype="NN" text="Eribor" font="MEDIUM" halignment="1" precision="0" nr_values="1" sampletext="Eribor"/>
        <LayoutElement type="0" color="000000" x="141" y="30" fixedtext="true" eletype="FX" text="/" font="SMALL" halignment="1" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="151" y="30" fixedtext="false" eletype="NC" text="$M:$S" font="SMALL" halignment="2" precision="0" nr_values="1" sampletext="425"/>
        <LayoutElement type="0" color="000000" x="131" y="30" fixedtext="false" eletype="DN" text="$V" font="SMALL" halignment="0" precision="2" nr_values="1" sampletext="28.34"/>
        <LayoutElement type="3" text="***   BATTERY   ***"/>
        <LayoutElement type="1" color="000000" x="38" y="40" x2="56" y2="52" eletype="RF" valuetype="FX" radius="0" stroke="1" nr_values="1"/>
        <LayoutElement type="1" color="000000" x="56" y="42" x2="58" y2="50" eletype="RF" valuetype="FX" radius="0" stroke="1" nr_values="1"/>
        <LayoutElement type="1" color="FFFFFF" x="40" y="42" x2="54" y2="50" eletype="RF" valuetype="BV" radius="0" stroke="1" nr_values="1"/>
        <LayoutElement type="1" color="FF0000" x="40" y="42" x2="54" y2="50" eletype="RF" valuetype="BV" radius="0" stroke="1" nr_values="1"/>
        <LayoutElement type="1" color="00B001" x="40" y="42" x2="54" y2="50" eletype="RH" valuetype="BV" radius="0" stroke="1" nr_values="1"/>
        <LayoutElement type="2" replDC="00B001" valDC00="1000" colDC00="00E000" hideDC00="false" valDC01="200" colDC01="00E000" hideDC01="false" valDC02="110" colDC02="F8C840" hideDC02="false" valDC03="1" colDC03="FF0000" hideDC03="false" invertcolor="false"/>
        <LayoutElement type="0" color="000000" x="35" y="40" fixedtext="false" eletype="BV" text="$V%" font="XTINY" halignment="0" precision="0" nr_values="1" sampletext="87"/>
        <LayoutElement type="0" color="000000" x="35" y="24" fixedtext="false" eletype="D1" text="$V%" font="XTINY" halignment="0" precision="0" nr_values="1" sampletext="90"/>
        <LayoutElement type="0" color="000000" x="37" y="24" fixedtext="true" eletype="FX" text="Di2" font="XTINY" halignment="2" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="3" text="***   GPS   ***"/>
        <LayoutElement type="0" color="000000" x="270" y="40" fixedtext="true" eletype="FX" text="GPS" font="XTINY" halignment="0" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="1" color="000000" x="236" y="46" x2="0" y2="0" eletype="CR" valuetype="FX" radius="8" stroke="1" nr_values="1"/>
        <LayoutElement type="1" color="FF000E" x="236" y="46" x2="0" y2="0" eletype="CF" valuetype="GA" radius="7" stroke="1" nr_values="1"/>
        <LayoutElement type="2" replDC="FF000E" valDC00="40" colDC00="00A800" hideDC00="false" valDC01="30" colDC01="00FC00" hideDC01="false" valDC02="20" colDC02="F8C840" hideDC02="false" valDC03="10" colDC03="F80000" hideDC03="false" valDC04="1" colDC04="FFFFFF" hideDC04="false" invertcolor="false"/>
        <LayoutElement type="3" text="***   DATA FIELDS IN UPPER REGION   ***"/>
        <LayoutElement type="1" color="C0C0C0" x="0" y="60" x2="282" y2="70" eletype="RF" valuetype="FX" radius="500" stroke="1" nr_values="1"/>
        <LayoutElement type="1" color="804040" x="0" y="60" x2="282" y2="70" eletype="RH" valuetype="CS" radius="500" stroke="1" nr_values="1"/>
        <LayoutElement type="2" replDC="804040" valDC00="600" colDC00="804040" hideDC00="false" valDC01="0" colDC01="804040" hideDC01="false" invertcolor="false"/>
        <LayoutElement type="0" color="000000" x="141" y="75" fixedtext="true" eletype="FX" text="gear" font="XTINY" halignment="1" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="121" y="70" fixedtext="false" eletype="D2" text="$V" font="SMALL" halignment="0" precision="0" nr_values="1" sampletext="2"/>
        <LayoutElement type="0" color="000000" x="160" y="70" fixedtext="false" eletype="D5" text="$V" font="SMALL" halignment="2" precision="0" nr_values="1" sampletext="2"/>
        <LayoutElement type="0" color="000000" x="141" y="100" fixedtext="true" eletype="FX" text="(c) km/h (a)" font="XTINY" halignment="1" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="12" y="80" fixedtext="false" eletype="CS" text="$V" font="NR_MEDIUM" halignment="2" precision="1" nr_values="1" sampletext="45.34"/>
        <LayoutElement type="0" color="000000" x="270" y="80" fixedtext="false" eletype="AS" text="$V" font="NR_MEDIUM" halignment="0" precision="1" nr_values="1" sampletext="34.76"/>
        <LayoutElement type="0" color="000000" x="141" y="124" fixedtext="true" eletype="FX" text="(c) rpm (a)" font="XTINY" halignment="1" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="270" y="120" fixedtext="false" eletype="AC" text="$V" font="MEDIUM" halignment="0" precision="0" nr_values="1" sampletext="188.45"/>
        <LayoutElement type="0" color="000000" x="12" y="120" fixedtext="false" eletype="CC" text="$V" font="MEDIUM" halignment="2" precision="0" nr_values="1" sampletext="167.34"/>
        <LayoutElement type="3" text="***   TIMER AND DISTANCE   ***"/>
        <LayoutElement type="0" color="000000" x="12" y="151" fixedtext="true" eletype="FX" text="Timer" font="XTINY" halignment="2" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="131" y="151" fixedtext="false" eletype="TV" text="noch  $H:$M:$C" font="XTINY" halignment="0" precision="0" nr_values="1" sampletext="825"/>
        <LayoutElement type="0" color="000000" x="12" y="170" fixedtext="false" eletype="TT" text="$H:$M:$C" font="NR_MILD" halignment="2" precision="0" nr_values="1" sampletext="4374"/>
        <LayoutElement type="0" color="000000" x="151" y="151" fixedtext="true" eletype="FX" text="Distanz" font="XTINY" halignment="2" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="270" y="151" fixedtext="false" eletype="DD" text="noch $V" font="XTINY" halignment="0" precision="1" nr_values="1" sampletext="25.56"/>
        <LayoutElement type="0" color="000000" x="238" y="170" fixedtext="false" eletype="DS" text="$V" font="NR_MILD" halignment="0" precision="1" nr_values="1" sampletext="12.56"/>
        <LayoutElement type="0" color="000000" x="270" y="178" fixedtext="true" eletype="FX" text="km" font="SMALL" halignment="0" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="3" text="***   TRAININGS EFFEKT   ***"/>
        <LayoutElement type="1" color="E2C7C7" x="91" y="206" x2="191" y2="234" eletype="RF" valuetype="FX" radius="0" stroke="1" nr_values="1"/>
        <LayoutElement type="0" color="000000" x="141" y="212" fixedtext="true" eletype="FX" text="zone" font="XTINY" halignment="1" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="106" y="207" fixedtext="false" eletype="HZ" text="$V" font="MEDIUM" halignment="2" precision="0" nr_values="5" sampletext="4"/>
        <LayoutElement type="0" color="000000" x="176" y="207" fixedtext="false" eletype="PZ" text="$V" font="MEDIUM" halignment="0" precision="0" nr_values="5" sampletext="4"/>
        <LayoutElement type="3" text="***   HEART PICTURE   ***"/>
        <LayoutElement type="1" color="F80001" x="67" y="218" x2="0" y2="0" eletype="CF" valuetype="FX" radius="7" stroke="1" nr_values="1"/>
        <LayoutElement type="1" color="F80001" x="78" y="218" x2="0" y2="0" eletype="CF" valuetype="FX" radius="7" stroke="1" nr_values="1"/>
        <LayoutElement type="1" color="F80001" x="73" y="224" x2="0" y2="0" eletype="CF" valuetype="FX" radius="6" stroke="1" nr_values="1"/>
        <LayoutElement type="1" color="F80001" x="62" y="221" x2="74" y2="232" eletype="LN" valuetype="FX" radius="6" stroke="3" nr_values="1"/>
        <LayoutElement type="1" color="F80001" x="83" y="221" x2="72" y2="232" eletype="LN" valuetype="FX" radius="6" stroke="3" nr_values="1"/>
        <LayoutElement type="3" text="***   POWER PICTURE   ***"/>
        <LayoutElement type="1" color="0F4FFF" x="209" y="212" x2="220" y2="221" eletype="LN" valuetype="FX" radius="0" stroke="7" nr_values="1"/>
        <LayoutElement type="1" color="0F4FFF" x="200" y="223" x2="211" y2="232" eletype="LN" valuetype="FX" radius="0" stroke="7" nr_values="1"/>
        <LayoutElement type="1" color="0F4FFF" x="212" y="218" x2="207" y2="225" eletype="LN" valuetype="FX" radius="0" stroke="5" nr_values="1"/>
        <LayoutElement type="3" text="***   HEARTRATE   ***"/>
        <LayoutElement type="0" color="000000" x="71" y="238" fixedtext="true" eletype="FX" text="bpm" font="XTINY" halignment="1" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="34" y="216" fixedtext="true" eletype="FX" text="200" font="XTINY" halignment="1" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="1" color="D0D0D0" x="141" y="283" x2="157" y2="204" eletype="AC" valuetype="FX" radius="122" stroke="20" nr_values="1"/>
        <LayoutElement type="1" color="F80001" x="141" y="283" x2="158" y2="203" eletype="AF" valuetype="HR" radius="122" stroke="16" nr_values="1"/>
        <LayoutElement type="1" color="FF000A" x="141" y="283" x2="158" y2="203" eletype="AF" valuetype="AH" radius="106" stroke="8" nr_values="1"/>
        <LayoutElement type="1" color="000000" x="141" y="283" x2="158" y2="203" eletype="AC" valuetype="FX" radius="102" stroke="1" nr_values="1"/>
        <LayoutElement type="2" replDC="FF000A" valDC00="2000" colDC00="AA0000" hideDC00="false" valDC01="1550" colDC01="F80000" hideDC01="false" valDC02="1350" colDC02="00C000" hideDC02="false" valDC03="1200" colDC03="38A8F8" hideDC03="false" valDC04="500" colDC04="C0C0C0" hideDC04="false" invertcolor="false"/>
        <LayoutElement type="2" replDC="F80001" valDC00="2000" colDC00="F80000" hideDC00="false" valDC01="500" colDC01="F80000" hideDC01="false" invertcolor="false"/>
        <LayoutElement type="0" color="000000" x="32" y="334" fixedtext="true" eletype="FX" text="50" font="XTINY" halignment="1" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="78" y="272" fixedtext="false" eletype="HR" text="$V" font="NR_MILD" halignment="1" precision="0" nr_values="1" sampletext="183.55"/>
        <LayoutElement type="0" color="000000" x="43" y="325" fixedtext="false" eletype="AH" text="$V" font="MEDIUM" halignment="2" precision="0" nr_values="1" sampletext="222"/>
        <LayoutElement type="3" text="***   POWER   ***"/>
        <LayoutElement type="0" color="000000" x="211" y="238" fixedtext="true" eletype="FX" text="Watt" font="XTINY" halignment="1" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="248" y="216" fixedtext="true" eletype="FX" text="400" font="XTINY" halignment="1" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="1" color="D0D0D0" x="141" y="283" x2="384" y2="336" eletype="AC" valuetype="FX" radius="122" stroke="20" nr_values="1"/>
        <LayoutElement type="1" color="F80002" x="141" y="283" x2="383" y2="337" eletype="AF" valuetype="CB" radius="122" stroke="16" nr_values="1"/>
        <LayoutElement type="1" color="007FFA" x="141" y="283" x2="383" y2="337" eletype="AF" valuetype="AB" radius="106" stroke="8" nr_values="1"/>
        <LayoutElement type="1" color="000000" x="141" y="283" x2="383" y2="337" eletype="AC" valuetype="FX" radius="102" stroke="1" nr_values="1"/>
        <LayoutElement type="2" replDC="007FFA" valDC00="4000" colDC00="800080" hideDC00="false" valDC01="3000" colDC01="F80000" hideDC01="false" valDC02="2000" colDC02="00A800" hideDC02="false" valDC03="1000" colDC03="0F82F8" hideDC03="false" valDC04="1" colDC04="F8C840" hideDC04="false" invertcolor="false"/>
        <LayoutElement type="2" replDC="F80002" valDC00="4000" colDC00="F80000" hideDC00="false" valDC01="10" colDC01="F80000" hideDC01="false" invertcolor="false"/>
        <LayoutElement type="0" color="000000" x="250" y="334" fixedtext="true" eletype="FX" text="0" font="XTINY" halignment="1" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="205" y="272" fixedtext="false" eletype="CB" text="$V" font="NR_MILD" halignment="1" precision="0" nr_values="5" sampletext="455.34"/>
        <LayoutElement type="0" color="000000" x="237" y="325" fixedtext="false" eletype="AB" text="$V" font="MEDIUM" halignment="0" precision="0" nr_values="1" sampletext="222"/>
        <LayoutElement type="3" text="***   GEAR   ***"/>
        <LayoutElement type="1" color="E2C7C7" x="141" y="270" x2="0" y2="0" eletype="CF" valuetype="FX" radius="32" stroke="5" nr_values="1"/>
        <LayoutElement type="1" color="FFFFFF" x="141" y="273" x2="0" y2="0" eletype="CF" valuetype="FX" radius="28" stroke="0" nr_values="1"/>
        <LayoutElement type="0" color="000000" x="141" y="258" fixedtext="false" eletype="TE" text="$V" font="NR_MILD" halignment="1" precision="1" nr_values="3" sampletext="4.2"/>
        <LayoutElement type="0" color="000000" x="142" y="304" fixedtext="true" eletype="FX" text="TE" font="TINY" halignment="1" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="141" y="327" fixedtext="true" eletype="FX" text="-" font="XTINY" halignment="1" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="136" y="328" fixedtext="false" eletype="E9" text="$V%" font="TINY" halignment="0" precision="0" nr_values="1" sampletext="100"/>
        <LayoutElement type="0" color="000000" x="146" y="328" fixedtext="false" eletype="F1" text="$V%" font="TINY" halignment="2" precision="0" nr_values="1" sampletext="100"/>
        <LayoutElement type="3" text="***   DATA FIELDS IN BOTTOM REGION   ***"/>
        <LayoutElement type="0" color="000000" x="10" y="358" fixedtext="true" eletype="FX" text="Uhrzeit" font="XTINY" halignment="2" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="131" y="358" fixedtext="false" eletype="EV" text="ETA  $H:$M:$C" font="XTINY" halignment="0" precision="0" nr_values="1" sampletext="2334"/>
        <LayoutElement type="0" color="000000" x="10" y="375" fixedtext="false" eletype="CT" text="$H:$M" font="NR_MILD" halignment="2" precision="0" nr_values="1" sampletext="63312"/>
        <LayoutElement type="0" color="000000" x="131" y="380" fixedtext="false" eletype="TM" text="$V" font="MEDIUM" halignment="0" precision="0" nr_values="1" sampletext="18.4"/>
        <LayoutElement type="0" color="000000" x="138" y="381" fixedtext="true" eletype="FX" text="°" font="TINY" halignment="0" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="151" y="358" fixedtext="true" eletype="FX" text="Runde" font="XTINY" halignment="2" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="270" y="358" fixedtext="false" eletype="LD" text="$V km" font="XTINY" halignment="0" precision="2" nr_values="1" sampletext="2.23"/>
        <LayoutElement type="0" color="000000" x="151" y="380" fixedtext="false" eletype="LR" text="$V" font="MEDIUM" halignment="2" precision="0" nr_values="1" sampletext="17"/>
        <LayoutElement type="0" color="000000" x="270" y="375" fixedtext="false" eletype="LT" text="$H:$M:$C" font="NR_MILD" halignment="0" precision="0" nr_values="1" sampletext="1326"/>
        <LayoutElement type="0" color="000000" x="12" y="415" fixedtext="true" eletype="FX" text="kCal" font="XTINY" halignment="2" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="12" y="433" fixedtext="false" eletype="CA" text="$V" font="NR_MILD" halignment="2" precision="0" nr_values="1" sampletext="1563.77"/>
        <LayoutElement type="0" color="000000" x="141" y="415" fixedtext="false" eletype="CL" text="Anstieg ($Vm)" font="XTINY" halignment="1" precision="0" nr_values="1" sampletext="478.22"/>
        <LayoutElement type="0" color="000000" x="141" y="433" fixedtext="false" eletype="TA" text="$V" font="NR_MILD" halignment="1" precision="0" nr_values="1" sampletext="423.66"/>
        <LayoutElement type="0" color="000000" x="270" y="415" fixedtext="true" eletype="FX" text="Neigung" font="XTINY" halignment="0" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="272" y="433" fixedtext="false" eletype="GR" text="$V%" font="NR_MILD" halignment="0" precision="0" nr_values="16" sampletext="6.69"/>
    </DIYLayout>

  • Hi

    I fear that the DI2 will not work at all.

    https://developer.garmin.com/downloads/connect-iq/monkey-c/doc/Toybox/AntPlus/Shifting.html#getShiftingStatus-instance_method

    >>>> Get current shifting system status Will not provide status for Shimano shifting systems.

    Are there any other datafields which support DI2 other than Shimano one?

  • I actually did not read the "not" in this sentence. What a pity! :( No there are no connectiq fields for Di2, you're right. There are only datafields which are provided by Garmin itself. Strange enough. So maybe the shifting status is only for SRAM eTap?!

  • Actually it seems to be here, not in AntPlus:

    developer.garmin.com/.../Info.html

    as quoted in another forum thread:

    "I can't comment on getShiftingStatus, but I use info.rearDerailleurSize in compute() to find out what cassette gear I'm currently in and display in my App."

  • Hi

    I am sorry for that. I cant really do much about that, other to hope the Garmin will implement it in the future.

  • Ah, these values are no problem, will add them in the next release

  • Can confirm that SRAM eTap works