Data field: Yet Another Interval field - YAIF

Hi,

with Garmin's new SDK which was released some days ago, we get native lap support. I want to design a datafield (called YAIF - Yet Another Interval Field) which is carefully designed for interval training. The vision is to have a data field which shows the relevant information during the interval but also during the rest time. Therefore YAIF has two screens which switches automatically: 1st a rest screen, 2nd an interval screen.

How will the automatic switching work?
YAIF will get a configuration to set a rough interval pace. At this pace minus 60 seconds or so YAIF will detect a new interval lap. If this speed is not reached, YAIF will detect a rest lap.

I have designed a mockup for the rest screen, where
- lLap Cadence (left top field) is the Average Cadence of the last interval lap
- lLap HR (left bottom field) is the Average Heart Rate of the last interval lap
- RT is the Rest Time (up counter)
- The field next to BAT will show the Rest Distance
- lLap in the middle section shows the lap pace of the last interval lap whereas Lap, 10 Sec and 60 Sec shows pace values which are not static



If an interval lap is detected, the "lLap" at top and bottom will switch to "Lap" and will show average values of the lap. Furthermore the Rest Time field and the Rest Distance field will switch to Interval Time (IT) and Interval Distance (ID).

These are my first thoughts into the field. It's a lot of work to do. If you like my work you can donate here: click
Note also my partner data field YARF (Yet another run field) which is designed for a typical running workout.
  • I did my first real training with the field today and I have to regret that it doesn't work very good. Indeed I had crashes, the detection of high intensity and rest period did never work. Hm, I have done a really short interval cycle which I am able to feed in the simulation. I will debug things and come up with a version which is usable. Sorry for that.

    Furthermore I made some thoughts to your suggestions that a runner configures its training completely via my datafield. This would really make sense to me since I have a lot more information what the runner intends to do, so I can show things like distance left, or give an indication if the runner gets slower than intended to. I will finish YAIF project first and will implement another interval field, probably YAIF2.
  • Sound good

    This new interval field sounds good. I hope it be so good than YARF that is my favourite in all the garmin conneconnectstore.
  • I did some researches today and realized that the watch fires indeed a lap at the beginning and the ending of the high-intensity period (I could also verify that in the .FIT file which you can see in garmin connect web browser). But my datafield is not informed about that a lap has happened. Probably this is a bug in Garmins API.

    If so, I can stop my activity on this project for a while until this is fixed by Garmin. Instead I can start the work on the YAIF2 datafield for a moment. I don't need to rely on that callback from Garmin in YAIF2 and there the bug should be no problem.
  • Unfortunately I have to defer this project since it turned out that the callback of the laps during a workout is an issue in Garmin's SDK. What a pity. As soon as it is fixed by Garmin I will continue development.

    Nevertheheless, it's time to code YAIF2. Before i start some basic thoughts, specs and problems to be solved:
    Specs:
    • The layout is done on the basis of YAIF
    • The configurables are: time or distance for a rest period (in a first run I will implement time), time or distance of a high-intensity period (in a first run I will implement distance), number of intervals, warm up period, cool down period, intended average pace of a high-intensity period (in seconds per km)
    • At each change of period the watch beeps and vibrates, maybe it shall beep every second the last 5 seconds or so (like Garmin does)
    • An indicator for the average high-intensity speed relative to the configured speed
    • The shown period time is a down counter, the shown distance is an up counter if "time" is configured for this period
    • The shown distance is a down counter, the shown period time is an up counter if "distance" is configured for this period
    • Before the workout the datafield shows the planned nterval informations and some basic instructions how to use it


    Problems:
    The only problem I have currently in mind is to detect the event when the runner finishes the warm up (note that the warm up distance nor the warm up time is given upfront) and starts the first interval. Some ideas how to do this? I currently don't know whether I can observe the lap button pressed. I have to ask the community. Maybe you have any other idea?
  • nitemolestes, please provide my via a Notification (private message) your data of a typical interval training:

    How many intervals?
    Warm Up (yes or no)?
    Rest time in seconds?
    Distance of high-intensity period (in meters)?
    Your intended time per km in the high-intensity period (in seconds)?

    I will provide you a version of YAIF2 with these settings in place. I will try YAIF2 today for my own on my physical forerunner 235. If this test is ok I will provide you the version with your training specs for testing purposes.
  • Really cool is, that I can contribute to the .FIT file, the watch creates and one can see the results on garmin connect web. E. g. I could show a new graph which shows the average heart rate during your work out. A feature which I have missed since I migrated from sporttracks to Garmin connect. I furthermore can write the average pace of each interval to the detailed page of Garmin connect web.

    That said, I ran out of memory since this silly 16 kB limitation of Garmin. Unfortunately I have to depricate some features to get that running. The first feature I will remove is the color of the battery and the battery label itself. Furthermore I will remove the configurable colors. Let's see how far we can get with memory allocation.
  • nitemolestes, please provide my via a Notification (private message) your data of a typical interval training:

    How many intervals? 10
    Warm Up (yes or no)? 5 minutes
    Rest time in seconds? 1 minute
    Distance of high-intensity period (in meters)? 400 meters
    Your intended time per km in the high-intensity period (in seconds)? 4-5 min /km

    I will provide you a version of YAIF2 with these settings in place. I will try YAIF2 today for my own on my physical forerunner 235. If this test is ok I will provide you the version with your training specs for testing purposes.


    I have muscular issues, need a month at less to repare my broken fibres
  • Oh, if you are injured it probably doesn't make sense to create you a beta version. Here are some screenshots. The development is currently almost finished. Nevertheless, a trial on my physical watch is missing and I have a competition tomorrow. I will try it next week or so. The only issue I have currently is to get it running, that the average heartrate values are written to the FIT file. By doing this you can see a graph on garmin connect which eases to get your average heart rate during the high-intension periods.

    Here you can see the start screen: A short how-to-use and what values are set in the Garmin Connect Mobile settings (2 repetitions, H=high-instensity distance (or time up to user setting), R=rest time (or distance ut to user setting). Furthermore you can see in the upper left field the duration of the entire workout time (without warm up). Here it is stated 40 seconds but it is 2:18 - that was a bug which is already fixed.



    Here you can see the rest screen as well as the high-intensity screen in orange theme. Note that the upper and lower blank fields can also show recent high-intensity periods if you have more than 2.



    Here you can see the cool down screen:

  • Hi again,

    I fixed all problems and we are now going in an alpha state. Here is the prg file special to you and the start screen especially for your workout. Note, that as soon as you press the lap button the warm up check begins, this means, YAIF2 checks the next 15 seconds after the lap button whether you reach at least 5:15 min/km pace. If this is detected, YAIF2 changes the phases automatically due to your configuration.





    Installation instructions: Just de-zip the file and copy the file to your Forerunner in the App directory. Select the field as usual via your activity settings.
  • YAIF will go live after a review from Garmin. Typically this lasts some days. I will link the datafield here if the review is passed.