Site menu:

Cyclocross For Roadies: How and Why to Get Started - Buy Now!

Site search


Recording Power from CycleOps 300 Pro Indoor Bikes

I recently started an indoor cycling program at a studio that uses the CycleOps 300 Pro Indoor Cycles.

CycleOps 300 Pro Indoor Cycle

CycleOps 300 Pro Indoor Cycle

These bikes have a built in power meter, which is fantastic for training. However, they don’t use a ‘standard’ ANT+ protocol to transmit the data. They in fact use a ‘subset’ of the ANT+ frequency, that only CycleOps products can detect. This limits you to using the Joule line of head units. Unfortunately, this means that the bikes will not transmit a power and cadence value that you can pick up on a Garmin or other much more common head unit. Don’t get me started on how annoying this is, and how shitty of a business model it is to advertise your product as ANT+ when in fact it is not compatible with other ANT+ products…

However, being annoyed led me to do some research. Thinking that there had to be a way, I scoured the internet. I found one reference on the Cyclops Virtual Training website that listed the IC300 bikes as compatible with their VirtualTraining Android and iOS Apps. I emailed their tech support, who first said told me that the bikes are compatible with any ANT+ device (they are not). When I pressed them for confirmation, they retracted that statement, saying:

‘Sorry.  That generation of bikes were designed well before the explosion on handlebar mounted technology.’

Riiight. And yet you still advertise them as ANT+ compatible? I should note here that the newer CycleOps “Phantom” line of bikes claim to actually be fully ANT+ compliant, so this applies only to the older bikes (IC 300 and IC 400).

However, by this point I had already ordered a USB OTG (On The Go) Adapter cable for my phone (you can get them very inexpensively) in the faint hope that the VirtualTraining app might work. It arrived the day after my next class (of course!) so I had to wait until last night to test it out. I plugged my trusty USB ANT+ Key (see my post about why you need one here!) into the OTG cable, and plugged that into my phone. Using the VirtualTraining app (Android, iOS) I was able to start a “Free Ride” session, and connect to the bike to get cadence and power! Awesome!

USB OTG Adapter Cable

USB OTG Adapter Cable

I  should note that I also tried the IpBike app to see if the “only compatible with CycleOps products” statement held true. It does appear to be true, as IpBike did not recognize any devices. CycleOps must have done something special in their software to pick up the frequency that others do not since the ANT+ key itself seems to have no problem seeing it, thus ruling out the hardware as the issue. Very odd.

So! It is entirely possible to record the data from a CycleOps 300 Pro bike without using a Joule head unit. It can be done fairly inexpensively.. However,  having said all of this, there are a couple of issues:

  1. You will need a phone that is capable of USB OTG. See how you can determine if your phone is compatible here.
  2. You’ll have to install the ANT Radio Service and ANT USB Service apps from the Play Store (not sure how this works on iOS, but it may not be necessary)
  3. The VirtualTraining app is not free. It costs $6 per month after the initial 14 day trial period–which of course just ran out for me :(
  4. The VirtualTraining app, quite frankly, kind of sucks:
    • It’s very hard to connect to a specific device (which is an issue in a studio environment with multiple bikes) – it appears you have to just keep doing consecutive ‘searches’ for devices, and it will pick one up randomly. Another search may or may not yield a different device, while a third search may turn up a different one, or one of the original two again. I think I had to do about 10-15 searches for it to pick up the bike I was on. It would be ideal if you could manually type in a known ID, and have it just connect to that sensor, but I found no way of doing that.
    • I couldn’t get it to connect to my ANT+ heart rate monitor at all. I’ll have to try that at home when there are less other devices present to confuse it. Again, the ability to manually enter an ID would likely solve this issue.
    • The app interface is junk. The button to ‘stop’ a ride is not obvious (a little x in the corner that to me looks like it should delete something, making me hesitant to push it,) and the app itself just behaves in non-intuitive ways
  5. Saris/CycleOps clearly doesn’t care to play by standards. This makes me really not want to pay them for their app, as that reinforces their decision to make ‘vendor specific’ products, then charge for them in a world where everyone else is moving towards completely open protocols. I’m going to decide before next Tuesday if a month of data recording is worth $6 to me.


Comment from ty
Time November 19, 2015 at 12:32 pm

Have you tried to run this gig off a laptop? What phone did you use?

Comment from darrencope
Time November 19, 2015 at 8:40 pm

I haven’t tried this with a laptop, but suspect it’ll work just fine–just plug in your ANT+ stick and fire up Golden Cheetah, etc. and you should be good to go. For my experiments, I was using a Moto G (first generation) and it worked fine.

Comment from ty
Time November 19, 2015 at 12:33 pm

ps: thanks for your awesome analysis.

Comment from darrencope
Time November 19, 2015 at 8:40 pm

You’re welcome–glad you enjoyed!

Comment from jf
Time January 19, 2016 at 10:27 pm

Hi. Very good article. By any chance do you know if a cycleops300 pro indoor bike can be used with Zwift software program for virtual training ?

Comment from darrencope
Time January 23, 2016 at 7:10 am

No, unfortunately it can’t, because it’s not outputting standard ANT+ power data, as I discussed above.

Comment from rw
Time February 7, 2016 at 5:08 pm

Thanks a lot for the information, really appreciated. I use a similar CycleOps indoor bike and have a different set-up. I use the CycleOps USB stick that I had to buy separately (CycleOps don’t make them anymore but they might still have one laying around if you ask them, or online you should still be able to get them) for about $70. I plug the USB stick into the head unit which allows we to see power zones during the ride and record the ride. I upload the ride to my laptop using PowerAgent (Free CycleOps software). I don’t particularly like PowerAgent but it does allow me to export .tcx files to Golden Cheetah. Long story but generally just takes a minute, work fine for me :)

Comment from darrencope
Time February 8, 2016 at 5:20 pm

Hi rw; thanks for the comments! When you say ‘plug the USB stick into the head unit’ what head unit are you referring to? A Cycleops unit? And what kind of USB stick? How are you doing the connection? I’m curious!

Comment from Dale
Time March 28, 2016 at 1:36 pm

This article got me inspired to step up my training with my 300 pro. I just cant seem to get it to connect to Golden Cheetah. I bought the Garmin ant stick and am not sure what I’m missing. Saris says it wont work because it’s a closed system and wants to sell me a updated Power hub and computer for $600 bucks. I have also updated my FTDI driver. The computer I’m using is a new Surface Pro 4. From my reading here, it sounds like this is possible. Am I wrong? Any input would be greatly appreciated.

Comment from darrencope
Time March 28, 2016 at 7:14 pm

Hi Dale; Sadly, no. It will not work with Golden Cheetah. You must use the VirtualTraining App to read the ‘private’ ANT+. No other software can read it, since it’s not standard ANT+. Sorry!

Comment from tl
Time August 23, 2016 at 12:29 pm

I am corresponding with Saris right now about this same issue. I am still hoping for a workaround. Crazy that I have a 300Pro in my workout room which is transmitting power and cadence, yet there is no way to pair it to an Ant+ stick for Zwift. For that matter, I would buy a proprietary ant+ stick that reads the sub-frequency Saris uses if it meant I could utilize the Zwift network. Gotta think something like that would not be too hard for them to come up with.

Comment from darrencope
Time August 24, 2016 at 7:49 pm

Very frustrating!

Comment from Heath
Time September 21, 2016 at 10:01 am

I am very interested in a real time training environment such as Zwift. I have found a really good deal on a Cycleops 300 Pro, but from the comments above it sounds like the data may be incompatible. Is there an affordable stationary bike that you would recommend whose data plays better with others? Thanks, Heath

Comment from darrencope
Time September 21, 2016 at 6:56 pm

Hi Heath,
The new Cyclops bikes claim to be fully ANT+ compatible, but even that will just be ‘broadcasting’ power. Most of the new trainers are FE-C compatible, which means Zwift, TrainerRoad, etc. can control the resistance as well. Honestly, I would get one of those before a stationary bike (and they are cheaper!- take a look at the Tacx Vortex Smart).

Comment from Matt W
Time December 12, 2016 at 11:51 pm

Didn’t find a lot of other people talking about trying to hack this style of bike. For everyone else who happens to find this blog. I recently bought a slightly older CycleOps Pro 300PT that had no ANT at all. My guess is it used the same protocol as older wired PowerTaps. I’ve reversed engineered the protocol used between the rear hub pickup and the head unit and broadcast the power and cadence over ANT+ to be logged by any modern bike computer or to use with Zwift. I’ll be posting more and am happy to answer questions if anyone else needs to do the same to there bike.

Comment from darrencope
Time December 16, 2016 at 8:29 pm

Matt; this is awesome work! Please let us all know when you post more details of how you got this working!

Comment from Matt W
Time December 12, 2016 at 11:53 pm

Realized I posed the wrong link. Here is the corrected one

Comment from AB
Time January 16, 2017 at 2:53 pm

Hi. I have a cycleops pro300 and have it hooked up to zwift, getting the ant+ signal into my laptop (MacBook air) using a digikey usb ant+ key. I use the joule gps+ head unit, but that shouldn’t matter in terms of getting ant+ into the laptop. I also use an ant+ HR monitor and that pairs just fine, too.

The only thing that’s an issue is that zwift only pairs with cadence when I’m running the zwift app on my iPhone, so I’m guessing that there’s some bluetooth pairing going on with cadence. It doesn’t make sense to me that it isn’t picking it all up through the powertap, but to be honest, I’m happy enough to have watts, speed, and HR, and sometimes (most times) cadence on zwift. I don’t know if I’m just lucky, but I did want to report that my set up works. I’ve been using it for about a month.

Comment from darrencope
Time January 16, 2017 at 9:07 pm

AB; this is interesting. Are you sure it’s the older model, like in my picture above, not the newer one (which Cycleops claims to have normal ANT+ compatibility)? If so, can you walk us through exactly how you’re connecting (hardware, software, steps you took)? I’m sure the readers here would be really interested (as would I of course!)

Comment from AB
Time January 17, 2017 at 8:10 am

It is the older model. Even with the TT handlebars vs. drop bars. I bought it used about 18 months ago. It came with the joule 3.0 head unit, which broke after about 6 months and cycleops replaced it (for free!) with the joule gps+ since they don’t make the joule 3.0 any longer.

I didn’t do anything special for set up. My google research turned up the same cautions that everyone finds: the concern about whether my cycleops ant+ would work with zwift. I figured I’d take a chance since zwift has the free trial and I had the cycleops already. The digikey usb ant+ key was only $20 so I figured that was a cheap way to try this also. I also already had a usb extension

Other than that, all I do is pair to zwift normally when I start up the program. Again, cadence doesn’t pair unless I also use the zwift iPhone app, but otherwise, watts, HR and speed are all reliable.

Comment from darrencope
Time January 17, 2017 at 8:15 am

Thanks AB. Interesting. Can you confirm that it works with any software other than Zwift? Maybe try Golden Cheetah, or Trainer Road, or just about anything else? Perhaps Cycleops allowed Zwift their ‘secret sauce’ to decode the private ANT signal? Also, can you link to the exact USB key you have? Thanks!

Comment from AB
Time January 17, 2017 at 10:03 am

This is the digikey usb ant+ key that I bought:

I don’t use the other software, other than cycleops’s poweragent (which works fine). I can try those when I have time and I’ll report back.

In terms of cadence not working unless the iPhone app is used, do you think cadence is on a different part of the ant+ signal?

Comment from AB
Time January 17, 2017 at 10:11 am

I should have said, too, that poweragent loads data from my joule gps+, not directly from the cycleops. So your question is still a good one about whether software other than zwift can read the cycleops signal.

Comment from AB
Time January 17, 2017 at 8:23 pm

I tried connecting to Golden Cheetah this evening and couldn’t get it to find my cycleops. I did’t try Trainer road because that would cost me money. Zwift and cycleops must have worked out a deal. Good for zwift and those of us with the older cycleops w/powertaps!

Comment from darrencope
Time January 18, 2017 at 8:37 pm

Interesting. This actually what I suspected, but is good news for users of Zwift! Thanks for your work in looking into this for me, and reporting back here!

Comment from AB
Time January 18, 2017 at 9:16 pm

Yep, you called it.

For my own curiosity, what do you think is the reason that cadence doesn’t pair unless the iPhone app is used (which would indicate a bluetooth pairing, not ant+); could cadence be on a different part of the ant+ signal?

Comment from darrencope
Time January 21, 2017 at 9:21 am

Ya, that’s really weird. Perhaps cadence is being sent on Bluetooth, but that seems unlikely. I really have no thoughts on that one…my guess is it’s some kind of hack job to get it all to work!

Comment from chrisvn
Time January 19, 2017 at 11:21 am

I have the stock 300pro with the Joule 3. Should I just ditch the Joule and get a decent Garmin that I can use on the trainer and my road bike? Would I have to install Garmin sensors? Could it read from the powertap hub?

Comment from darrencope
Time January 21, 2017 at 9:26 am

Hi Chris; I’m not sure what you’re asking. If you have a Joule 3 that works, then you’re good to go. If you get a Garmin, it WON’T read from the 300Pro, as explained in the issue above. The Joule is the only headunit that will…

Comment from tl
Time January 29, 2017 at 5:03 pm

I just read the post from AB! I have a Garmin ANT+ stick lying around, I’ve got to give this a shot! I just finished a 40 minute workout on my 300PRO and found myself wishing I could join my friends on Zwift. I will report back with results!

Comment from darrencope
Time January 29, 2017 at 8:00 pm

Please do report back–I’m excited to hear as well! If it works, I’ll put an UPDATE in the above post for everyone to see!

Comment from chrisvn
Time February 11, 2017 at 10:57 am

Thanks for the clarification. I attached an ANT+ dongle onto my notebook and using Zwift I am able to pull up the numbers from my 300pro powerhub. I wouldn’t have figured that out without your help. Thanks.

Comment from tl
Time February 16, 2017 at 6:15 pm

Confirmed – Zwift has indeed added the protocol from for the 300 Pro series bikes. I am happily Zwifting! One thing I have noticed is that while the Ant+ will pick up my power and communicate it to Zwift (which is most important), it will not for some reason send cadence from the hub. I simply look at my Joule 3.0 to get a cadence reading. Curious as to whether or not chrisvn was able to get cadence to appear?

And a general question – every time I attempt to update firmware on my Joule it freezes. Any thoughts? My firmware is pretty old, and the mileage the Joule reads out is very off.

Comment from Bobby Charlton
Time February 20, 2017 at 12:00 am

My wife rides a CycleOps 300 Pro, so I just tried pairing it to my Trainerroad account, works just fine. Also I installed an Ant+ Cadence Sensor as well as a speed sensor for her quite some time ago, she records with the Joule 3.0 as well as with her Garmin 510, of course she gets no power readout with the Garmin, but she does have spped and cadence. From the Trainerroad screen the Speed Sensor and the power meter are registering the exact same speed, that is also the case with the Joule and the Garmin, I had to play around with the wheel diameter on the Garmin to get them to match but it was not an issue. I can send pictures of the speed and cadence sensors if you would like.

Comment from Bobby Charlton
Time February 20, 2017 at 12:02 am

Oh and by the way, I have been using the same Ant+ stick from Digikey for over a year now. On the back it does not say Ant+, bit it does say Ant M.

Comment from AB
Time February 22, 2017 at 2:34 pm

Thanks for confirming that your setup works, too–and that mine wasn’t just a fluke!

My cadence does now work reliably, though I have a setup order when I start zwift. What I need to do is turn on my joule GPS+ and pedal enough so it begins reading cadence before I log in/pair with zwift. I suspect there’s some bluetooth pairing going on, but I don’t really know. In any case, that’s the order in which I start things up and I can get cadence working reliably.

I don’t have any problems with firmware updates–I’m all caught up. I do have a joule GPS+, however, not the Joule 3.0. (And BTW, I contacted saris because my original joule 3.0 stopped working, and they sent me a replacement joule GPS+ for free.)

Comment from Brian
Time March 12, 2017 at 5:10 pm

Great page Darren. I knew I wasn’t the only Zwifter struggling with my Cycleops 300PT. I’ve been Zwifting for a couple of months, connected by a Suunto ANT+ antenna. Like many others, my power has been coming in fine. I’m running a Joule 3.0, which picks up my power and cadence, just fine, but I’ve never been able to get Zwift to register my cadence. This is starting to bug me.

My setup is the same as AB’s, except I’ve only got a Joule 3.0, not a Joule GPS+. I tried his trick of getting the head unit to pair the cadence before Zwift does, but it doesn’t work.

Anybody else have any hints?

Comment from Matt W
Time April 8, 2017 at 9:22 pm

Brian. I have the older wired version of the Pro 300PT but if the newer one works anything like mine only torque and hub rotational speed get sent out as this is all that is really needed to compute power. The head unit knows the gear ratio and computes cadence from this. Zwift would not be able to do this. In the version of the Pro 300PT I have the crank to hub is fixed (no freewheel). Is your’s like this?

My first suggestion would be to create an accout on (It’s free) and download SimulANT+ from the Software section. This tool lets you see all the data that is being received by your USB ANT+ adapter. Setup the software to be a power meter display. One easy option for you may be to buy a Garmin or similar cadence sensor and use that in addition to the power signal from the hub.

Write a comment

Bookshelf 2.0 developed by

Read previous post:
Video Player Blank in Golden Cheetah?

Are you trying to get the "Train" view of Golden Cheetah set up so you can suffer all winter, but...