We are looking for someone to create an *Android MODULE* that can be implemented (to our fitness equiments) using the CSAFE Protocol. More details of the. CSAFE protocol implementation for Node.js - together to host and review code, manage projects, and build software together.
One tiny step at a time Wahoo is slowly increasing their fitness related turf. This week at CES, they announced the GymConnect System, which allows you to control your treadmill and get it talking over ANT+ & Bluetooth Smart to apps of your choice. The Equipment: Now, to be super-clear: Wahoo is not selling a treadmill. Instead, they’re selling a treadmill add-on. This add-on comes in two flavors, one designed to be built into new treadmills, and another designed to retrofit that existing treadmill floating around your garage.
The product is called the GEM (Gym Equipment Module), and is designed for more than just treadmills, but any piece of cardio equipment out there in a gym from spin bikes to rowing machines to treadmills. Now they technically have two products on the market: GEM Retrofit Module: This is designed to retrofit existing treadmills with a compatible port, to provide data broadcasting and control (more on what specifically that means in a second). GEM OEM Module: This meanwhile is sold to treadmill makers that can integrate this straight inside new treadmills, so no extra retrofit necessary. Let’s first talk about the retrofit one, since that’s likely most interesting to folks here. The way this works is that Wahoo has created a small pod, roughly the size of 2-3 gel packets, that you attach to your treadmill. This pod in turn connects to the innards of your old-school treadmill using what’s known as a CSAFE port. These ports are universal on almost all commercial treadmills, but also found on some residential treadmills (“some” being the catch here).
It doesn’t much matter how old the treadmill is, these ports have been around since dinosaurs ruled the earth. The port is just an RJ-45 port, so it’s basically an Ethernet port: On some treadmills this will be found on the exterior shell (like seen above), whereas other treadmills may require a bit of ‘creativity’ to get at the port inside the unit. If you can’t find the port on the outside of the treadmill, do some Google Stalking and see if your treadmill has it somewhere else. Or, get out that screwdriver.
Meanwhile, the secondary target is really new treadmills for Wahoo as part of selling the OEM module to various companies. For example, major treadmill manufacture Star Trac has been shipping units with the OEM version since November. Thus far, they’ve shipped about 10,000 modules to various customers. Additionally, Wahoo has other major treadmill brands that haven’t yet announced their agreements with the Wahoo (beyond Star Trac).
Finally, Wahoo noted that for regular consumers in the market for a treadmill, that many times you’ll find clubs/gyms selling used treadmills for great deals (Craig’s List, eBay, direct, etc). These are all commercial units and virtually guaranteed to have the CSAFE interface port (and easily accessible), versus a residential treadmill that might not. What It Transmits & Controls: So, what does this little doohickey do? Basically, it makes your treadmill like a Wahoo KICKR, but for running. More technically though, it does the following: Transmits treadmill data over ANT+ via ANT+ FE-C standards: This includes anything that the treadmill and the FE-C standard supports. Examples include your pace, distance, incline, and heart rate (if it has a HR sensor on the treadmill).
It does not transmit as a standard ANT+ footpod unfortunately. Transmits treadmill data over Bluetooth Smart API: This includes anything that the treadmill does, but using a Wahoo Fitness Bluetooth Smart API they’ve developed. Examples include your pace, distance, incline, and heart rate (if it has a HR sensor on the treadmill). It does not transmit as a standard Bluetooth Smart footpod unfortunately. Can control incline of treadmill: The module can tell the treadmill to increase or decrease the incline automatically. Can send programs to the treadmill: For treadmills that support it, the unit can send them pre-programmed routes/efforts that change the resistance or provide guidance. One thing it can’t do – change speed in realtime.: This is done for safety/legal reasons, and in talking to Wahoo, this sounds like treadmill manufacturers view this line as a ‘over our dead bodies’ type of thing.
Which is fair, I’m not sure I’d trust all 3rd party apps to not have a bug that changes a treadmill speed from 6MPH to 15MPH in 1 second and throws me against a wall, like these. (Update: Wahoo has clarified there’s an exception to this. An app can send to the treadmill a pre-defined workout with pre-defined paces, and the treadmill will follow those over the course of the workout. Whereas it won’t allow you to adjust the pace in real-time from the app.) Ok, so a bunch of specs are all fine and dandy, but what do you do with them? Well just like when the KICKR came out, Wahoo provided that software API layer for apps to take advantage of. Now, they’re doing the same thing here. And just like then, Wahoo has a basic app available to demonstrate components, but they also expect 3rd parties will start supporting it into their apps in creative ways (just like Trainer Road, Kinomap, Zwift, and many others have on the cycling side for the KICKR).
To get folks started, Wahoo has two apps available right now: One for the end user, and one for training studios. The first one for the end user, allows you to pair the app to a treadmill you find in a gym.
On the treadmill you’ll find a QR code, so you simply use your phone to scan that QR code and it’ll pair the app to the treadmill. Alternatively, you can connect to saved treadmills/equipment. Then, the app will record any data streamed from the treadmill, such as your pace, distance, and incline. You can also add in sensors like a Bluetooth Smart heart rate strap. You’ll notice below the inclines match (2.5%), as does the pace (a stellar 2.2MPH).
Once all that’s done, you’ll be able to save the workout data just like any other Wahoo app does. Afterwards you can export or upload it to a slew of sites, like Training Peaks, Strava, and many more: In addition to the end-user app, they also have one for studios called ‘Studio Connect’. This app allows you to use hardware such as the North Pole Engineering (NPE) WASP to consolidate data back over WiFi, enabling you to see data from multiple pieces of equipment at once (even different types, as seen here: Of course, since the system uses FE-C over ANT+, as well as a developer API for Bluetooth Smart, apps can be created to show and do whatever they want.
This allows gyms (think major chains) to create applications around everything from stationary bikes to rowing equipment, without having to buy new pieces of gym equipment – just a simple retrofit module. Wrap-up For those lucky folks with the right type of treadmill this could be really cool, especially when it comes to being able to do outdoor course route videos (software app maker Outside Interactive comes to mind). Alternatively, just to be able to get all of the pace and elevation/incline data up to your Training Peaks or similar accounts (since a footpod wouldn’t get the elevation/incline profiles). The pricing for the unit will be $199 for the GEM retrofit unit (though, Wahoo noted that there are discounts for bulk purchases for gyms and such).
Shipping is planned by the end of this month. For OEM’s (treadmill makers), they’re already shipping those units out today and the treadmills are already available. Of course, it’s just a matter of actually finding one in the wild. A cursory look at the interwebs for my treadmill that I have in the DCR Cave (a ProForm Performance 1250) doesn’t seem to reveal whether or not it has a CSAFE port, so I’ll have to do some more digging when I return from CES this weekend to see if it’s something I’m able to personally use. One thing is for sure though, I’m sure as hell not.
Once was enough for that. With that – thanks for reading! – Don’t forget to, as well as a slew of updates that were only seen. It was a crazy busy week! No speed control!! I talked with a couple treadmill manufacturers at IHRSA a couple years ago and they told me their problem with speed control was the ability to burn out the motor.
“ButbutI have a control panel right in front of me that I can change the speed with!” Manufacturers need to just put some controls around that port. Just have a limit for how fast you can change the speed.
Heck, just trust Wahoo and have them put it in their API. Problem solved. Kudos to Wahoo.
This is great stuff! The title had me super excited, and the compatibility with tons of existing treadmills, but what totally killed it is this: One thing it can’t do – change speed: This is done for safety/legal reasons, and in talking to Wahoo, this sounds like treadmill manufacturers view this line as a ‘over our dead bodies’ type of thing. Which is fair, I’m not sure I’d trust all 3rd party apps This is basically useless without this and kills any thought of anything like trainerroad happening on the treadmill front. Ray, After reading your article, I was pretty excited about the announcement.
I quickly searched the interwebs for posts or YouTube videos mentioning said CSAFE port on my treadmill. After several fruitless searches, I resorted to the screwdriver. For those of you with the LANDICE L7 Executive Trainer, no RJ-45 CSAFE port to be found. Checked the motherboard behind the display, and the motherboard next to the motor. I too will not be moving this treadmill anywhere.
Works great otherwise. The lack of speed does seem like quite a stumbling block.
Once I’m running quickly I am not a great fan of hitting buttons to change settings. I am pretty sure treadmill manufacturers could program around problems if they really wanted eg.
Just limit the rate of change of speed and allows limits. Also legally if an app does something stupid I wonder if the treadmill manufacturers would be liable. And it sounds like it doesn’t transmit in any format that a watch can record, whilst no mention of the phone being able to use its inbuilt gyroscopes and force sensors to bodge a cadence. I guess third party apps could do that. I’ve had a ProForm treadmill with iFit fit a while now and it is great. I can map a route and it will adjust the incline and match to the Google Earth images it shows and with that, I can change speed in the program.
The caveat being that if I’m running sub-6:30 and the route goes to a negative incline, it slows down (not sure if it’s for safety or the motor). If Wahoo could figure out how to do that, maybe they could get past their hesitation.
I would love to be able to ride my Kickr Snap with Virtual Training and then continue my course on my treadmill controlled by this to combine the workout. That assumes CycleOps or another third party looks to do that.
Life Fitness (large equipment manufacturer in USA that seems to dominate the USA gym scene) has something not too far off from this that DOES allow for automatic speed control. Yes, you’re inputting the programs ahead of time on an account.
Basically you do the same QR code from the Life Fitness Connect ap, your treadmill opens your account and you pick your workouts that you have saved. You can make in-program changes as needed too. Afterwards it shoots your workout to MyFitnessPal (amongst others) if connected through your account where I assume it can sync with all the other workout keepers. Since I have an old footpod, I save the workout to a watch so haven’t tested the save and sync. My Scosche HR strap (and Bluetooth headphones) connects to those treadmills just fine. It’s really nice having the treadmill do all the button mashing for you, especially with shorter intervals. More info at.
However, the app has crashed every time I have tried connecting to a treadmill over the last two weeks. Not sure what’s going on there. This was one of the first I saw where I could write it online and access it on any connected LF treadmill. Previously you could write workouts on individual machines, but if somebody was on that machine you were hosed. Plus it would only separate equal time intervals.
With LFConnect, you can specify the exact amount of minutes and seconds at what speed and incline. They also have a HR based one. Too bad you can’t mix and match to have a speed based warm-up protocol, 15 minutes at.
HR range, etc. It also boggles my mind that cadence isn’t integrated into treadmills. That would be ridiculously easy. Just as a super-quick update after some more discussions with Wahoo this morning, regarding pace control. Wahoo has clarified there’s an exception to this. An app can send to the treadmill a pre-defined workout with pre-defined paces, and the treadmill will follow those over the course of the workout.
Whereas it won’t allow you to adjust the pace in real-time from the app. I gave them an example of TrainerRoad, and if they could load a workout that had both pace and incline specifications in it, and then have TR send it to the treadmill and the treadmill execute everything autonomously.
They confirmed it could. Whereas TR would not however be able to control the pace in real-time after the workout begin. Similarly, a spin-studio equivalent of a group treadmill session couldn’t have an instructor changing the pace on all the treadmills at command at once. Good to hear! Looks very interesting, keen to see what the uptake is on this commercially. If anyone can break into the gym environment I would back Wahoo to do it.
I like that it’s all intended to be seamless for the user – pretty much any personal ANT+/BLE device will be able to make use of this functionality. Came across a couple of ancient pages that list brands / models that have CSAFE capability. By no means complete, but it’s a start: Ray – also found a full parts breakdown for your ProForm and hard to say for sure (check the end of the manual): I’d check the back & underneath the treadmill base as that is where the main controller is located. Wahoo sold this portion of their technology to North Pole Engineering. We are literally working on this right now. It’s not easy, but once done, it should work as well as our iPad app, foot pod or treadmill controlled.
The treadmill will replace the foot pod, transmitting pace to the tablet, which will control the video speed. Our app will control the treadmill’s incline with the help of Bluetooth bi-directional communication. We plan to post the compatible treadmills, but it’s a short list for now. Once we start landing some major road race partners (and get funded), I’m assuming (and hoping) that will change.
It will turn the device into an FE-C unit, but only really the FE part of FE-C. As such, the Edge 520 and soon Edge 1000 can control FE-C devices such as trainers. But I don’t know what will happen when you try and pair something like a treadmill. My guess is that it’ll probably see the device, and maybe even pair – but then I suspect it’ll go to crap.
Might require a Connect IQ app to get settled.I was trying to get slightly more specific clarification from the ANT+ folks on the slight differences in terminology here since FE-C is a subset of the FE profile. But alas, the specific person who was going to explain it to me, we kept missing each other at the booth at CES this week. So I’ll follow-up via e-mail. Not yet, publicly anyway, to my knowledge, I believe they are being used in some clubs in test though. Plus, a lot of it will really come from apps adding in support. As for a list, none that I’m aware of. I’m optimistic Wahoo might consider something.
Else, if there’s an easy way to have found start crowd-sourcing compatible treadmills, I’d be up for being that point of record location with some sort of listing system (open to ideas that are easy to maintain, validate, display.).Something that’d allow someone to submit a given treadmill model as inclusive of a CSAFE port and the location, as well as allow another person to validate/dispute that result (I anticipate some people will say a treadmill doesn’t have it externally, but may find it internally later). Hi I’m working on a PHD in the area of exerGaming. I’m trying to control the speed of a treadmill in real time based on the users heart rate.
Ideally the WahooGym bluetooth connector would be great but without speed control its of no use. I’ve seen people using arduino to control treadmill motors but I was wondering if anyone else knows of any alternatives for realtime speed control?.Either based on dynamic feedback (such as heart rate) or even remote devices such as an app or remote control? Any advice would be great.
Thanks for getting back Dan. Yes I’ve come across the CSAFE protocol and have even gotten basic RS232 commands off some manufacturers. I’m hoping to communicate with these commands using an Arduino. I just have a couple of questions. Did you code the speed control software for the NordicTrack Treadmill yourself and if so what scripting language did you use to communicate with the RS232/CSAFE commands? If the software was made by NordicTrack or a thirdparty could you let me know the name of the software and the model of the treadmill. Could the speed be changed in real time or only set remotely as part of a pre-set program?
Sorry, wasn’t clear. The NordicTrack is not CSAFE – it is a completely unrelated serial protocol. Mostly worked out for an elliptical by a guy whose name escapes me at the moment – I adapted it for the treadmill.
I have bits and pieces of code for a CSAFE elliptical, but it was built prior to the Set commands being added to the protocol (and hence is read only). It is however possible to set level/resistance in realtime on a CSAFE hand bike I have, but not speed (as not relevant to that type of machine). Do you have info from the manufacturers beyond the main spec on the fitlinxx site? I’d be interested to see that if so. That’d be awesome Dan. I did manage to attach a TTL serial port to the UART pins on the console and I just get non-printable output regardless of what baud I try. Either I’m doing something wrong, or it’s a binary protocol.
I traced the lines back to the Renesas SOC, and the pins are dual-purpose serial UART or I2C so it’s possible it’s not serial at all? The thing hangs on power-on if I connect the RX line (which is also I2C clock) to the TX on my serial adapter, which furthers my suspicion.
Hit me up at iamkilomangmail.com, or via my GitHub page (should be linked from my name above the post). Available now for order here: I was working on my own project to manually read CSAFE data from my elliptical before I came across this device. I have the cable built and was getting basic CSAFE data (status and workout summary) from the elliptical but wasn’t seeming to have luck getting my Precor EFX546v2 to respond to commands asking for the real-time data i wanted from it. I just ordered the gymconnect and am excited to see if i’ll be able to record incline, watts, cadence, etc for my elliptical workouts.
I also have a freemotion FMTL8255 treadmill with the CSAFE port and will be testing it out on that as well. Interesting read of all of this. A question for all of you. I’m a Zwift user and interested in Zwift running.
Have tested with my Stryd pod. I’m gonna buy a treadmill.
I bought the wahoo GEM module ($99). In checking on treadmills I can get a refurbished Life Fitness with CSAFE port AND 3% decline or a new TRUE residential with the wahoo OEM module built in (confirming it allows both incline control and the potential for future speed control) but no decline. About $2700 for the Life Fitness refurbished or $3100 for the TRUE new residential (no decline). Which way would you guys go to ensure future compatibility and a good treadmill? The problem with RunFit is that base functionality works but not all data gets captured or saved. Somewhere there is an issue in the app.
When using Zwift you get more complete data captured. When the RunFit files are uploaded to Strava and Training peaks they are pretty bare. Min, Max and Avg heart rate and duration are about it. Not exactly what I have these tools for! A spreadsheet would be sufficient and free. So I’d say this is an issue with Wahoo and not True.
Overall I have to say that the True PS300, with its Bluetooth connectivity has impressed me so far. I do have an email from them responding to my question about the location of the CSAFE port. It is not external anywhere obvious but the console does have an RJ45 connector to the control board. Perhaps its under the cover by the motor. I’ll know as soon as I send them my serial number Apparently model number wasn’t sufficient.
That said, I have contacted True twice so far and I feel like there are people there that know what they are talking about and they are responsive. The PS300 is pretty quiet too. I have an older model Woodway treadmill and recently purchased the GymConnect with the hopes of it enabling me to record run workouts. At first, things looked great. I was able to receive speed, elevation, and HR telemetry over Bluetooth. After closer inspection, I have been largely disappointed with the results. The Woodway is old enough that it only reads Polar non-coded HRM, and I like the HR based workouts on the Woodway.
Strangely, the GymConnect sends the Polar HR data to the WahooFitness RunFit app without a problem. The app displays the HR but refuses to record it. I have been getting mixed signals from WahooFitness Support. They tell me that the RunFit app should be able to directly read the Polar HRM (it doesn’t and can’t).
Further, they tell me that the RunFit app should be able to read any ANT+ HRM with an ANT+ key. Well, it doesn’t. Its sister app, the Fitness app, happily connects to the ANT+ HRM on the same platform (iPad with ANT+ key). I’m tempted to purchase a Tickr, but have low confidence that the GymConnect will push the Tickr HR to the treadmill. I have asked WahooFitness to clarify all of these issues with no useful response. Not sure I see the utility of the GymConnect or the RunFit app. Also, the GymConnect does not transmit open ANT+ signals that any device can receive.
You have to use the WahooFitness “open” API which apparently no one else has adopted. I’ve found this time and time again with Wahoo, their running products at least. Cool innovative hardware but the software isn’t up to the task, at least on the Android side. I’ve had issue after issue with the Tickr X. Whenever I recorded a run with the Wahoo Fitness app and the Tickr X I would get insane speed values written to my fit file. Not just the occasional crazy spike but often enough that it would have my average speed over 10mph which I’m not even remotely capable of.
The time and distance was correct just the speed channel was no good. I’ve also, despite repeated calibrations, never gotten it to accurately report distance on the treadmill. I’ve spent plenty of time communicating with their support and they even sent me a replacement unit and its still no good. Really disappointing.
Finally with the RunFit app available on Android I’ve gotten good data. None of their Android apps have ever given me the promised running dynamics. As far as I can tell things work right on the iOS side. I even borrowed an iPhone to try with my Tickr X and had no issue. First off, forgive the length of this response. My company, Outside Interactive, is working with both the Wahoo retrofit GEM device as well as the integrated device. To echo other responses, it is a hit or miss as to whether a mill will support speed and incline control.
We did a pilot here in Boston a few months ago at a studio using the Wahoo retrofit on Woodways. Half worked and half didn’t. We only discovered after you need to go into the console and turn on the ability for bi-directional communication. That said, the results were SICK. I’ve been at this for about 7 years now (met Ray about 4-5 years ago and showed him) Basically, nothing in my incremental progress phases me anymore. That is until I saw the treadmill’s incline match the hills in the video. It was amazing.
We currently have the app with this capability for iPad and are working on Android right now (Note: both Android and iPad can work with any footpod and HR monitor, ANT+ or Bluetooth) In addition, we have to reformat all our videos adding incline data, which we are also doing. Currently our Central Park and Falmouth Road Race videos have incline/decline data. Hope to have them all by year’s end. If you are interested in seeing what we are doing, you can check these out: I’ve found most of the cycling folks are extremely tech savvy. Runners, not as much. But treadmill runners are our initial market.
We have to make it ridiculously easy to work. Hi, Any help appreciated on this. I have a Technogym Forma Bike (model just before they had QR codes on control panel. It has an external Ethernet port but have tried to get info from Technogym Support as to whether it is CSAFE ready so to speak. So my ask to this community is twofold: 1. Does anyone know if this bike is CSAFE ready?
If so, by adding this external module could I then connect the bike to the likes of Zwift to get a more immersive training experience in my garage without the cost of an additional direct drive trainer (Technogym Forma cost me over £2,000 a couple of years back. Many thanks in advance. Regards, Stuart.