I’ve created a new Android app for Wear OS devices to track fitness activities on Bluetooth Smart enabled fitness trainers. Log workout metrics directly from your smart indoor bike, elliptical, rowing machine, stair stepper or treadmill. Completed workouts are stored in Health Connect, and may be optionally automatically uploaded to Strava and/or Intervals.icu. Manual export of Fit files to Google Drive are also supported.
You can find all my apps here
Testers Needed!
I’ve got to get at least 12 testers to evaluate this app for 2 weeks before I can make it publicly available in the Play store. For access to the app, join my testing Google Group here:
Any and all feedback welcome!
FYI, the app is fully functional at the moment, but I have one more big feature add in progress: External HRM support. Hope that wets your appetite!
Have done a bit of reading of your site and it looks good. I’ve something that may be addressed already but perhaps not…
I’m looking to get a treadmill with FTMS and likely will buy a Runn sensor with it and track everything via my Garmin watch.
Is your companion app likely in the future to be able to direct connect via FTMS and be a workout player? I’d love my intervals workouts to just run on my phone which would adjust speed up and down for intervals etc. appreciate there would likely be a “synced start” piece to navigate for my Garmin and phone but even just a countdown of 10 seconds on the “workout player” might solve that.
TLDR: record on non Wear OS, just use phone for trainer control based on intervals.icu workout via FTMS?
If you’ve got a garmin watch, try my FTMS Treadmill datafield. you can program your workout profile in settings: define speed and incline over time to build intervals, hills, pyramids, whatever.
the data is captured native to Connect, in fully imported by Intervals. You can even surface the custom fields to see incline and speed over time, etc.
It’s got a feature to create custom training profiles
there’s a default example profile that demonstrates a warmup, then a rolling incline/speed interval, but you can get as fancy as you want. it’s just a line of text with command syntax for setting parameters and duration
Look in Connect IQ → Device → My Datafields → FTMSTreadmill → Settings
see Profiles at the bottom of the list
FTMS All Sync also has this feature, in the form of a stand-alone app like the Android FTMS Workout.
Only three profiles… pulling today’s workout from intervals.icu and adding it as profile 1 or something would be great.
I could get by with 3 for my intervals but I love the take it from intervals.icu idea… I’m agnostic as to whether it’s the watch or the phone that actually controls the treadmill.
i’m not sure how that would work. i’ve never set up ‘workouts’ in garmin or intervals before, but looking it, i see the ability to set segments by HR zone. how would i translate that to speed, incline, and resistance values? (the ‘controls’ possible via FTMS)
My thinking is purely setting speed… which can be converted from pace targets. That’s my selfish view though - there would probably need to be development on the intervals side for incline on running I think.
A lot of the work might already be done and it would just be about converting the intervals.icu workout format to the format AbsCreations expects.
So if I implemented a mechanism that interpreted the garmin run / bike / custom workout parameters as actionable control signals (pace / cadence → speed etc.) then that would work? garmin already pulls in Intervals workouts natively?
Attached are my intervals.icu workout for tomorrow and it synced in to Garmin.
My best understanding is that Intervals translates the XX% percent to a pace figure for passing to Garmin based on the LT Pace in settings (and also has an option to sync a range around that figure to give a target range which is less relevant for treadmill workouts when conditions won’t vary as much!).
So if your app took that work out and for example converted 4:00m/km to 15kph as the treadmill speed for that it would work?
It works really well with cycling power based intervals. My FR 265 connects to my smart trainer and controls the target wattage by changing resistance.
Argument to be made that you would be implementing something Garmin should be doing but they don’t seem interested in FTMS too much.
So I’m looking into implementing Garmin Workouts natively as a controls / intensity source for dynamic profiles. I can see easily how to do treadmills, since speed and pace values translate directly to m/s values that I can forward to the treadmill on each segment.
I can also handle heart rate zone data by giving an option to translate that into resistance values for rowers, ellipticals, and bikes for example
Power is an option for some use cases, like you say (good quality bikes will take a power value and translate it dynamically to a resistance value based on your current cadence, etc.) however, this value only exists as a secondary target, which my Descent Mk2 doesn’t support. so, I need some information:
First, does Intervals translate your workouts to ‘custom power’ values, ‘power zone’ values or ‘Power Curve’ values?
Second, could I send you a debug build so I can capture exactly what type of values Garmin provides me for each of those types of data in a workout profile?
I only use pace or HR for running (intervals setting for priority, power is only in the running workout above as I haven’t bothered to delete it as it’s not used anyway and for running power you’d be more moving the Stryd direction).
For bike I use power only (I think most people do at least on smart trainers) and it works as is with intervals workouts synced to Garmin and connected to smart trainer via ANT+ (not sure if it works with Bluetooth).
Generally most people would use Power values or zones relative to their FTP which is the equivalent of the Lactate threshold pace for running… i.e. if FTP is 200w and you set the target as 75% for a segment this would have the smart trainer set to 150w by the watch.
The intervals / Garmin integration is apparently limited to like 40 or 50 “steps” or changes per workout, which for the most part isn’t an issue but I’ll try outline what I’ve seen (based on ERG mode being on).
Explicit targets i.e. 200w - works fine
% Targets i.e. 75% works fine.
Ranges either explicity stated or just as by referencing the power zone - sets the target as the middle of the range. i.e. if Z2 power is 100-150w it would set the power to 125w.
Ramps are the exception i.e. ramp Z1-Z2 you’d expect it to ramp the power up over the duration of the section but at the moment intervals just passes this similar to the range above and sets it at the midpoint. Same happens on ramp downs.
I assume the running power targets would work similarly in terms of how they are passed from intervals to Garmin but I’ve no idea how you would control a treadmill based on running power targets without it major headaches.
Below is a very short bike workout I used last weekend to see for yourself (assumes you have your FTP set up and your ride workouts set to have power as priority in intervals settings.
I’ve got a testing branch built that supports Garmin Workouts as the source for controlling the bike and treadmill settings. looking for some testers. send me a direct email to absolutebollockscreations@gmail.com or better yet use the App Support link from Connect IQ so I get the exact model of your watch. (I need to build a package for your specific watch model for testing)
Supported Target Types:
Grade (implemented, not sure if any device actually offers this as a target option, but SDK supports it, will set incline on supported devices)
Power (bikes that support Erg mode dynamic resistance from power)
Speed / Pace (treadmills)
Heart Rate Zone / Custom Heart Rate (all, translates to user specified resistance setting per HR zone)