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

 

  • Thanks!!!.

    Let's see what the developer tells us, but it must be what you say that does not interpret the data well and only counts half for some reason, because as I said, the current cadence works exactly the same in the DIY application as in the Garmin field.

  • Hi

    Sorry for the late reply. Cadence is a value directly provided by the SDK. I do not calculate it myself. But there are some calculations like the running power etc which are not public, only available on the garmin internal datafields.

    Could you post your xml, I will try it out myself.

    regards

    Erich

  • Yes, of course, but the current cadence does give correct data, the one that gives half is adv. cadence.

    C!!iQ:!ww*!LOuJ)!!!!!!"0nm!ww)q%RA)j!!!!G!"1J(!ww)r%g3"j!!!!B!!iQ*!s"b)z]XC1!!!zA!!iQ*!s"b)%+/V1!!!zA!!iQ*!s"b)$H"9n!!!$"!!iQ*!s"b)ygBk%!!!"^!!iQ*!s"b)y`Y8p!!!zA!!iQ*!s"b)yg:d@!!!"%!!iQ*!s"b)y-Mtg!!!$"!!iQ)zQOi)Ln[.@!!!!!Desnivel!!iQ)z64`(LnS@Z!!!!!C.media!!iQ)"98E%Ln[/7!!!!!Hora!!iQ)"TSNyLnSAG!!!!!R.+/-!!iQ)z64`(Ln[0/!!!!!R.medio!!iQ)z64`(Lnbr5!!!!!T.total!""_ezljr*LnbsI!!!!!Distancia!"(bH!WW3zLr%$0!!!!!$V!!lCt"onW'Lr,[]!!!!! $H:$M!z"zw!WW3zLshf%!!!!!$V!$KA("TSNyLr%%"!!!!!$m:$S!:ga6!WW3zO9!?W!!!!!$V!zYM+"TSNyLshgd!!!!!$M:$S!!m7O"TSNyLspTu!!!!!$M:$S!"k?T!WW3zN73%(!!!!!$V!"1"o!WW3z!79N,!!!!!$V!"1S:!WW3z!5nw0!!!!!$V!!iQ)!WW3zzghAH!!!!!Fc!!iQ)!WW3zzfH/L!!!!!Fm0E;(z!w3$!!!!55!w6X2!!!40!!*$!!!!3!!!*'!!!!1+!5QCc!!!.y0E;(+!w3$!!!!5+!w6X2!!!4y!!*$!!!!2b!!*'!!!!1!!5QCc!!!-q0E;(3!ri6z!!!=g!w6X2!!!?S!!*$!!!!A?!!*'!!!!D:!5QCc!!!G5!!r';!ww)s"[Qr[!!!!W!!r)`"TSNy!5ZU-!!!!!$M:$S!!iQ)"TSNy!23qS!!!!!Ritmo

    Thanks!!!

  • Ah so Current Cadence works correctly it's Average Cadence that you say doesn't.

    I can't see anything wrong with your config (I don't have a 645) so can only presume the value that the SDK is providing to CIQ app for that parameter is incorrect

  • I send the XML before I was wrong.

    <?xml version="1.0" encoding="UTF-8"?>
    <DIYLayout>
        <Device name="Forerunner 645 Music"/>
        <Designer time="25.07.2021 13:07" ver="3.2.1" ifver="C"/>
        <LayoutElement type="1" color="FFFFFF" x="120" y="120" x2="0" y2="0" eletype="CF" valuetype="FX" minval="false" maxonly="false" daynight="true" radius="120" stroke="1" nr_values="1"/>
        <LayoutElement type="1" color="FFFFFA" x="0" y="0" x2="228" y2="38" eletype="RF" valuetype="HR" minval="false" maxonly="false" daynight="false" radius="0" stroke="1" nr_values="1"/>
        <LayoutElement type="1" color="FFFFFB" x="0" y="207" x2="240" y2="240" eletype="RF" valuetype="AH" minval="false" maxonly="false" daynight="false" radius="0" stroke="1" nr_values="1"/>
        <LayoutElement type="1" color="0099C0" x="85" y="39" x2="85" y2="152" eletype="LN" valuetype="FX" minval="false" maxonly="false" daynight="false" radius="0" stroke="3" nr_values="1"/>
        <LayoutElement type="1" color="0099C0" x="155" y="39" x2="155" y2="152" eletype="LN" valuetype="FX" minval="false" maxonly="false" daynight="false" radius="0" stroke="3" nr_values="1"/>
        <LayoutElement type="1" color="0099C0" x="122" y="152" x2="122" y2="206" eletype="LN" valuetype="FX" minval="false" maxonly="false" daynight="false" radius="0" stroke="3" nr_values="1"/>
        <LayoutElement type="1" color="0099C0" x="0" y="96" x2="240" y2="96" eletype="LN" valuetype="FX" minval="false" maxonly="false" daynight="false" radius="0" stroke="3" nr_values="1"/>
        <LayoutElement type="1" color="0099C0" x="0" y="152" x2="236" y2="152" eletype="LN" valuetype="FX" minval="false" maxonly="false" daynight="false" radius="0" stroke="3" nr_values="1"/>
        <LayoutElement type="1" color="0099C0" x="0" y="39" x2="240" y2="39" eletype="LN" valuetype="FX" minval="false" maxonly="false" daynight="false" radius="0" stroke="3" nr_values="1"/>
        <LayoutElement type="1" color="0099C0" x="0" y="206" x2="206" y2="206" eletype="LN" valuetype="FX" minval="false" maxonly="false" daynight="false" radius="0" stroke="3" nr_values="1"/>
        <LayoutElement type="0" color="000000" x="44" y="94" fixedtext="true" maxonly="false" daynight="true" eletype="FX" text="Desnivel" font="S_TINY" halignment="1" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="120" y="39" fixedtext="true" maxonly="false" daynight="true" eletype="FX" text="C.media" font="S_TINY" halignment="1" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="120" y="94" fixedtext="true" maxonly="false" daynight="true" eletype="FX" text="Hora" font="S_TINY" halignment="1" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="186" y="39" fixedtext="true" maxonly="false" daynight="true" eletype="FX" text="R.+/-" font="S_TINY" halignment="1" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="197" y="94" fixedtext="true" maxonly="false" daynight="true" eletype="FX" text="R.medio" font="S_TINY" halignment="1" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="68" y="149" fixedtext="true" maxonly="false" daynight="true" eletype="FX" text="T.total" font="S_TINY" halignment="1" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="173" y="149" fixedtext="true" maxonly="false" daynight="true" eletype="DS" text="Distancia" font="S_TINY" halignment="1" precision="0" nr_values="1" sampletext="12.56"/>
        <LayoutElement type="0" color="000000" x="120" y="63" fixedtext="false" maxonly="false" daynight="true" eletype="AC" text="$V" font="S_MEDIUM" halignment="1" precision="0" nr_values="1" sampletext="188.45"/>
        <LayoutElement type="0" color="000000" x="119" y="117" fixedtext="false" maxonly="false" daynight="true" eletype="CT" text=" $H:$M" font="S_MEDIUM" halignment="1" precision="0" nr_values="1" sampletext="00"/>
        <LayoutElement type="0" color="000000" x="47" y="117" fixedtext="false" maxonly="false" daynight="true" eletype="TA" text="$V" font="S_LARGE" halignment="1" precision="0" nr_values="2" sampletext="423.66"/>
        <LayoutElement type="0" color="000000" x="191" y="63" fixedtext="false" maxonly="false" daynight="true" eletype="PE" text="$m:$S" font="S_MEDIUM" halignment="1" precision="0" nr_values="4" sampletext="1323"/>
        <LayoutElement type="0" color="000000" x="0" y="0" fixedtext="false" maxonly="false" daynight="true" eletype="PA" text="$V" font="XTINY" halignment="2" precision="0" nr_values="30" sampletext="12.45"/>
        <LayoutElement type="0" color="000000" x="195" y="117" fixedtext="false" maxonly="false" daynight="true" eletype="AP" text="$M:$S" font="S_LARGE" halignment="1" precision="0" nr_values="3" sampletext="254"/>
        <LayoutElement type="0" color="000000" x="77" y="172" fixedtext="false" maxonly="false" daynight="true" eletype="ET" text="$M:$S" font="S_LARGE" halignment="1" precision="0" nr_values="1" sampletext="20000"/>
        <LayoutElement type="0" color="000000" x="166" y="172" fixedtext="false" maxonly="false" daynight="true" eletype="DS" text="$V" font="S_LARGE" halignment="1" precision="2" nr_values="2" sampletext="12.56"/>
        <LayoutElement type="0" color="000000" x="128" y="5" fixedtext="false" maxonly="false" daynight="false" eletype="HR" text="$V" font="S_LARGE" halignment="0" precision="0" nr_values="1" sampletext="183.55"/>
        <LayoutElement type="0" color="000000" x="125" y="202" fixedtext="false" maxonly="false" daynight="false" eletype="AH" text="$V" font="S_MEDIUM" halignment="0" precision="0" nr_values="1" sampletext="154"/>
        <LayoutElement type="0" color="000000" x="148" y="5" fixedtext="true" maxonly="false" daynight="false" eletype="FX" text="Fc" font="S_LARGE" halignment="1" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="0" color="000000" x="145" y="202" fixedtext="true" maxonly="false" daynight="false" eletype="FX" text="Fm" font="S_MEDIUM" halignment="1" precision="0" nr_values="1" sampletext=""/>
        <LayoutElement type="2" replDC="FFFFFA" valDC00="1720" colDC00="FF0000" hideDC00="false" blinkDC00="false" valDC01="1630" colDC01="FF6600" hideDC01="false" blinkDC01="false" valDC02="1530" colDC02="00FF00" hideDC02="false" blinkDC02="false" valDC03="1370" colDC03="00FFFF" hideDC03="false" blinkDC03="false" valDC04="1110" colDC04="C0C0C0" hideDC04="false" blinkDC04="false" invertcolor="false"/>
        <LayoutElement type="2" replDC="FFFFFB" valDC00="1710" colDC00="FF0000" hideDC00="false" blinkDC00="false" valDC01="1620" colDC01="FF6600" hideDC01="false" blinkDC01="false" valDC02="1510" colDC02="00FF00" hideDC02="false" blinkDC02="false" valDC03="1360" colDC03="00FFFF" hideDC03="false" blinkDC03="false" valDC04="1100" colDC04="C0C0C0" hideDC04="false" blinkDC04="false" invertcolor="false"/>
        <LayoutElement type="2" replDC="FFFFFC" valDC00="2450" colDC00="FF0000" hideDC00="false" blinkDC00="false" valDC01="2600" colDC01="FF6600" hideDC01="false" blinkDC01="false" valDC02="2750" colDC02="00FF00" hideDC02="false" blinkDC02="false" valDC03="3000" colDC03="00FFFF" hideDC03="false" blinkDC03="false" valDC04="3250" colDC04="C0C0C0" hideDC04="false" blinkDC04="false" invertcolor="true"/>
        <LayoutElement type="1" color="FFFFFC" x="0" y="41" x2="84" y2="95" eletype="RF" valuetype="CP" minval="false" maxonly="false" daynight="false" radius="0" stroke="1" nr_values="1"/>
        <LayoutElement type="0" color="000000" x="83" y="63" fixedtext="false" maxonly="false" daynight="false" eletype="CP" text="$M:$S" font="S_MEDIUM" halignment="0" precision="0" nr_values="1" sampletext="1000"/>
        <LayoutElement type="0" color="000000" x="79" y="39" fixedtext="true" maxonly="false" daynight="false" eletype="FX" text="Ritmo" font="S_TINY" halignment="0" precision="0" nr_values="1" sampletext=""/>
    </DIYLayout>
    

  • Have you found any adv cadence solution with the XML you send?

    Thanks!!!

  • Hi

    I am sorry, I cannot do anything here. Average cadence is also a value I get directly from the SDK. Its a wrong value provided by garmin as some others, which take a long time to get fixed by them.

    But you could try using current cadence with a high number of values (3600 for one hour). This way you could show the average cadence at least of the last hour. You could try even higher values, but at some point you will run out of memory, you will have to try it yourself.

  • Thanks, I'll try it as you told me.

  • Hi. 

    Can you add this field to your application ?.

    Performance Condition

    As you complete your activity, such as running or cycling, the performance condition feature analyzes your pace, heart rate, and heart rate variability to make a real-time assessment of your ability to perform compared to your average fitness level. It is approximately your real-time percentage deviation from your baseline VO2 max. estimate.

    Performance condition values range from -20 to +20. After the first 6 to 20 minutes of your activity, the device displays your performance condition score. For example, a score of +5 means that you are rested, fresh, and capable of a good run or ride. You can add performance condition as a data field to one of your training screens to monitor your ability throughout the activity. Performance condition can also be an indicator of fatigue level, especially at the end of a long training run or ride.

    Thanks!!!

  • Hi

    This value is calculated by Garmin internal datafields and is not public, so I cannot add it, because I dont have access to it.

    regards

    Erich