Hey all, I am a software engineer with a thing for embedded systems, and a relatively new TrainerRoad user. I recently acquired a Computrainer for pretty cheap that I wanted to use for erg mode training. I tried out Perfpro CT Smart, and while it did work, my combination of ANT dongles made each training session take an extra 20 minutes of setup to get everything connected and working. I also don’t love needing a second computer device to run the bridge software on (I am running TrainerRoad on a tablet).
After my 3rd training session that got started 20 minutes late I decided I could probably create a bridge using a small embedded device that worked over BLE or ANT+. A few weeks later I finished what I would call the proof of concept. This morning I did Centennial -3 on my Computrainer using an nRF52840 dev kit broadcasting as an indoor bike over BLE. I have not implemented everything required by the FTMS spec, but I can report the Computrainer telemetry (power, speed, heart rate, and cadence), and receive power target setting commands in Erg mode.
I would also like to say that I borrowed heavily from the GoldenCheetah code base for the Computrainer telemetry. Its not a 1 for 1 but all of the details of translating from Computrainer speak to usable numbers came from them. If anybody has ideas about the best way to credit them I happy to do so.
All that said, here is a link (hope this is OK?) to the firmware I wrote, it is ugly, incomplete, and has plenty of references to the example I built from. I am open to suggestions, pull requests, etc. I have just started the schematic for the PCB, and will probably be slowly working on it as time allows.
I don’t have a computrainer, but this looks like a very cool project. If this keeps computrainers out of the landfill that is definitely a win. (Hopefully they would be recycled instead.) I hope this is something that becomes a thing.
As far as credit goes, I see two main options, or maybe just 1 depending on if you copied code or just used ideas. I think mentioning Golden Cheetah in the readme is a good way to do it, as this is helpful both for giving credit and identifying the source of the algorithms as there may have been bugs copied as well. If you are copying code, the original authors retain copyright and that should be indicated in the files that contain the copied code.
Unfortunately the “5-Clause Nordic License” is terrible IMHO, and in my somewhat educated (but IANAL) opinion is also incompatible with the GPL. Golden Cheetah is licensed under the GPL v2, so it is not possible to legally distribute a binary built combining code from Nordic under the 5 (or 4) clause license and GPL licensed code. You can legally distribute the source code - it’s the binaries that are the problem. (I guess copying source with the two licenses into a single file could also be problematic, but that is a much finer point.)
I would think that this interface could make it look like a ‘normal’ smart trainer, so TR and Zwift wouldn’t need to care that it is a computrainer.
I guess this could cause problems with things like TR know the response lag of different trainers and not know of how to deal with that, but I would think most things would work.
Thanks for the advice @toyman, and yes you are correct. The microcontroller handles the Computrainer part of the communication and appears to be an “Indoor Bike” that conforms to the FTMS spec, so you can use your Computrainer with modern training apps. I was able to do my workout this morning on the latest version of the android app.
The only way support could be dropped is if support for all FTMS Bluetooth devices is dropped.
Hello! I am in need of help with my computrainer! I used to use my CT on zwift and trainer road on an old computer… I have recently upgraded to a new Mac and Monterey OS won’t recognize the racermate control. I am told the drivers are internal and have been for about 5 years. I confirmed that when I tried to install them. Any ideas of what I can do to get my new Mac to see the CT? I thought of using the old legacy TR app but my new computer software is too new.