Hi everyone,
I’m currently working on a personal project based on Garmin / Firstbeat workout labels and training load logic.
I'm not what you could call a developer, my skills in coding are very limited so I rely on AppBuilder, a customizable data field from Flowstate (all credits to him !) which collects and processes data from the sensors (HR, GPS mostly).
The idea is to build an AppBuilder data field that can estimate, in real time during a run, the likely training classification of the session — for example:
- Recovery / Base
- Tempo
- Threshold
- VO2max
- Anaerobic Capacity
- Sprints
The current test version does not try to perfectly reproduce Garmin yet. It is an experimental field intended to compare, during and after an activity, the live estimates from the data field with the final Garmin classification and Traning load distribution. I hope it will help me understand how training assesment works - and maybe make my training more efficient !
My approach is based on information from the following Firstbeat patent, especially the parts related to:
- cumulative time in intensity zones
- %LTHR
- %AnT speed
- modified intensity
- aerobic vs anaerobic training effect logic
patentimages.storage.googleapis.com/.../US20230414143A1.pdf
The most useful test sessions would probably be things like :
- easy endurance runs
- tempo or threshold runs
- long intervals
- short intervals / 30-30 / 200 m reps
- sprint sessions
What would help most is feedback such as:
- Garmin’s final workout label
- Aerobic / Anaerobic Training Effect
- load distribution (Low / High / Anaerobic)
- screenshots or observations from the data field during the activity
This is still an early test version, so I fully expect the model to need refinement. The idea is simply to improve it step by step with real-world comparisons.
If anyone is interested in testing it or discussing the logic behind Garmin / Firstbeat workout classification, the code to copy/paste (after update with your personal values for LTHR, LT pace (converted to speed) is in the post below.
PLEASE NOTE : I use a Fenix 8. I tried to optimize the code not to be too heavy on memory but if you want to give it a try, better check on a short run first if your device is capable of running the DF. It made my watch crash a few times when displaying the map screen. So I recommend not using maps or music if you are interested.
Thanks a lot !