is Zwift getting the actual power reading from my computrainer?

I have a few rides in now and though I have enjoyed the environment, I seem to be hitting higher wattages than normal. There are no ridiculous wattage spikes just an overall higher than normal average wattage. I even did a 10 minute preride/ warm up and calibrated to close to 2 so that I was confident it was on the right calibration. The resistance seems pretty good though there is a fair bit of resistance going downhill, more so than ergvideo or computrainer setup real course videos. Just wondering if this is something others have noticed? I would like to think it is real and that the game is motivating me to higher numbers :wink: !

I can’t vouch for the calibration of your computrainer, but we just use the value it gives us.

The resistance downhill might be slightly more than usual as we found it better to not have the resistance swing so dramatically between different gradients, but in a future update to zwift there’s a control knob that lets you dial in how much you want to feel the slopes.

thanks, I am quite confident in my computrainer calibration but the confirmation that the app is reading the power direct/ unfiltered or adjusted in the program is good news to me. I understand that you use this and my weight to generate both watts/kg and speed. Since speed is not overly important to me, I train by power, I am pretty certain the speed is unrealistic in my case. The watts per kg though are fairly reasonable in my case, I have never rode at the speeds generated in the program, so something in the way the program calculates speed is off in my case. Thanks for the chance to try the beta and have a chance to see how the program develops, it is fun and I am starting to get the feel of it. Have you been developing a beta version of the user’s manual? It would certainly help noobs get an understanding of power ups what they are and why… though I am not a fan, I would prefer points toward additions to your avatar. thanks again for the prompt reply.

Are you guys using the openAPI that Racermate is working on? There are issue with the methodology that Golden Cheetah uses for interacting with the Computrainer.

They have an open API in development that will allow proper control, for both the Computrainer and Velotron. You should contact Roger at Racermate if you haven’t already done so.

Jeff, what are the issues? I wrote my own code for Computrainer based on information “out there” from the Golden Cheetah folks so I’m sure we probably have the same issues you’re referring to - but I’m not aware of what they are. I’m all ears if you can shed some light on that.

We can’t use the computrainer API direct from Racermate for a few technical reasons (one being that there is no mac version)

You would have to check with Roger about the specific issues. I had spoken to him a few weeks back and he mentioned that they reviewed the Golden Cheetah code and that it did some things incorrectly.

I believe they are working on a Mac and Linux version of their Open API. I would recommend giving Roger a call. I’m pretty sure he would put you guys on the fast track to getting access to the libraries.

We have access to the libraries and have had contact with them, but we compile everything we use from code and aren’t that keen on using a prepackaged library that we can’t fix and/or control how memory is allocated.

What I’d prefer is information, and that is on lockdown at the moment unfortunately.

Yeah, it would be nice if they completely open sourced it. I think what they are trying to do is keep the interaction with the CT and VT consistent. Personally, I think they would sell a lot more of them if they just released all the code.

Just conjecture, but from what I’ve seen, they have a physics model as part of their library. Most likely the guy that deciphered the serial communication codes, captured it with some specific settings and things are just not quite the same as if it was run through their physics model. I suspect for something like erg mode it probably doesn’t matter much or at all, but for slope mode it could.

it seems only couple of applications use the “real” code from racermate, erg video and tour de giro, both are promoted by racermate as compatible applications. I think it would be a good thing to use their physics engine because it allows for drafting effects, wind effects and other things to occur in a virtual application. Perf Pro seem to have it working pretty well also, but I suspect it too is a hack. I think racermate think they have some proprietary knowledge which they want control over. Limits outside applications but it does keep them sure of how it works.

I’ve followed along with interest about the scant little bit of info available about the racermate open API, which isn’t nearly as open as it ought to be. I’ll just echo the view of others that the feel on the CT seems a bit off. The best solution for third party programs like Zwift would be access to source code. One can hope that one day even the Velotron could join along with programs like Zwift.

I’m just chiming in to say please keep the dialog going with RacerMate about this. Ideally they will see that Zwift is too significant to ignore. I don’t think they want the message to be that it work well for many, but not so well with a CT.

I did a 3 hour ride with the latest version on a properly calibrated CT and with a recently factory calibrated Quarq.

When I do ride in erg mode the power readings between the 2 are pretty spot on (approximately 3% higher on Quarq due to drivetrain loss for CT reading).

In slope mode in Racermate1 the readings are within 4% (due to the more stochastic nature of a slope mode ride).

In Zwift, the differences were closer to 10%. I haven’t tried running the exact same profile in RM1, but it just felt off.

I suspect that the difference is related to the weight settings that make their way into the physics engine and me being lighter (135-140) I probably fall outside

My recommendation is to do testing in Zwift and RM1 with 3 riders (weight 130, 160, 220) and compare the power profile and averages. I’m going to bet that 160 is going to be very close but the 130 and 220 will be off.

Also noticed with the latest Zwift version, I had a much harder time drafting, especially when going over hills. I was riding with a friend of mine who is much weaker in real life, and had to kick my w/kg up to 5-6 after ever hill just to stay on. He was doing approximately 150 watts and I would get dropped at any output below 300. It didn’t feel quite this bad in the previous version.

The sequence of data sent to the Computrainer can include weight and is set with the command 0x18, and additionally windspeed with the 0x10 command. I believe CdA can also be sent, but never bothered to decode it. It would be fairly easy to reverse engineer using a USB sniffer.

In GC we always use the same values, which doesn’t make any difference for ERG mode. For slope mode its more important. Racermate seem keen to keep simple stuff like this a secret.

Any more discussions around this taking place?


I get that there is no Mac version, however, if someone has a Mac and wants Velotron or official Computrainer support they can still run the Windows version.


I get that you would like source code for all this, but saying that you compile all code is a bit of an exageration.  Unless you designed this in assembler (and probably even then), I think it is fair to say you are using at least 1 (and probably more) dll in your project.


Btw, you could of course decompile their library into non managed C++ code (which is what I believe it was written in) and use it from that code base.  The RM folks would actually appreciate that as I suspect the reason for the “lockdown” has more to do that the folks who wrote the library are no longer around, and less to do with they want to keep it secret.

“The RM folks would actually appreciate that as I suspect the reason for the “lockdown” has more to do that the folks who wrote the library are no longer around, and less to do with they want to keep it secret.”

You could not be more wrong.

You think the folks that wrote their libraries are still there?  What makes you believe that?

There are certainly no more secrets to be kept as no one in their right mind will design a new trainer using a controller similar to what they use.  Or do you think there is actually something innovative about their 1980s era serial communication controller?


I am the guy that spent 3 months reverse engineering the CT protocol. I did that because they will not share the detail. They /still/ will not share the detail.

Before following up, try and licence their “open” SDK.


Interesting.  So let me ask you this.  Based on what you reverse engineered, do you agree or disagree with what they are claiming?

From what they say, the implication is the feel/load will not be correct if you bypass their physics engine (and it did feel different to me).  So while you may have reverse engineered the protocol, it may seem to work, but not quite correctly?

If they are correct, then I think the Zwift folks need to use the SDK, especially if folks want to compete virtually. 


Software for use with CompuTrainer created by non-RacerMate supported sources usually lacks complete implementation of the correct acceleration curves and inertial effects which all RacerMate products enjoy. Due to the proprietary nature of its physics control system, the CompuTrainer can create a virtual flywheel proportionate to the full weight of the rider and his or her bike. Even Velotron’s comparatively massive flywheel creates much too small an inertial effect and must also be augmented electronically. The use of our developers API is the only method assuring access to this critical function. Developers will also benefit from including SpinScan data in their applications – something non-RacerMate approved applications cannot supply. Arguments have been made regarding the importance of this tool, but it is important to consider whether these arguments may stem from an inability to reverse engineer it adequately. So whether you [as a developer] add a SpinScan function to your application or not, the fact that you can assures – to the purchaser of your application - that you are using the correct development tools.

In slope mode the headunit sets load based upon some calculations isomg the weight, windspeed, CdA type data you can send it. I hard coded values in my implementation. Easy as hell to fix.

I took a really quick look to see how this all works for a Kickr and don’t you also need to use the wahoo api for that?  Do they give you the source code for their WFConnector?

Wahoo will share their API with anyone. They’re tarts !