Support for Tacx older smart trainers

(David Winter) #201

Kjetil, that’s encouraging, but I’m not out of the woods yet. I don’t really follow how I connect the turbo to the computer. I have a head unit TACX FLOW WIT_T2202 (A110719-1302963) and I don’t see how I can connect using a USB cable (if that is how it’s supposed to be done) ?

(Kjetil Kirkholt) #202

David, you need the t1932 head unit.

(Kjetil Kirkholt) #203

David, you need the t1932 head unit.

(Kaul Rolf) #204


I’am an owner of tacx Cosmos T1970 with the SW Fortius 1.29 (runs only on WinXP). I’am quite interested in

  1. buying an PC VR-Interface with the TTS4 SW (for Win7 and later for Win10)
  2. and make the Cosmos smart (FE-C conform) with the Antifier to use it with Golden Cheetah, Zwift, and hopefully others.
  1. Currently I identified two shops which sell PC VR-Interfaces
    1a) T1925: unfortunately the shop is not in my country -> “issues”: Internationalshipment, VAT, Custom, … According to this blog and other user comments in the internet this interface should work with my Comsos T1970.

Is that correct?

1b) “Tacx Upgrade PC i-Flow, TTS4 Software Basic” see
Does this work as well for the Cosmos T1970?

If the answer is yes that would mean that the White head with the Blue ring is the T1932 Unit which can work with many legacy trainers (e.g. Cosmos, Fortius, Flow, …).

Unfortunately the two shops didn’t answer my questions and directed me to the tacx support. No answers since several days and no information on their web.

  1. I’am very happy to found this Community Blog. The idea is brilliant to make those legacy trainers smart. I really estimate the work done by John and the others :=). As soon as I received the VR Interface based on your answers I will implement Antifier in my environment. I’am owner of several ANT+ sticks (2 different from Garmin and one from Aliexpress (aprox. $ 10: works fine with garmin express / Golden Cheetah and FR910XT, Powertap Hub G3 and Vector 2). May be I could support you in testing as well.


(F udgy Pumpkins (B-) kiss) #205

AHHA!  I have a Fortius and TWO ant plus dongles.

And I have a powertap.   


Additionally, I wish I had found this thread before I started writing my own code.   I wrote this same thing for linux in C++ not python.


Well, does the python software simulate the grade using your weight?  If not how do you get the weight of the rider?


I can submit a power profile with my powertap.  I need to download the code you wrote and run it.

(F udgy Pumpkins (B-) kiss) #206

Ok, I read your code and I have a suggestion.  (I can help code it myself).

The way I did my power was this:

Read a slope from zwift (over the ant stick).  Read current speed from Fortius (usb).

Use user weight as input and do the math to calculate the required power.

The math is here:

I got a good simulation based not just on grade but also on wind speed.

The only problem I have now is that I want to request the page 55 “User Configuration” to find out how much the user weight (so I don’t have to enter it in my code).  I can’t seem to get zwift/ant+ stick to respond with that page.


I hard coded in my weight and used a typical road by Crr (coefficent of rolling resistance), drag coefficient, and frontal area.


The ride seems pretty accurate.  On flat ground it is hard to go above 25mph.  Hills are a bit “sharp” as the grade factors into the required power.


I would be happy to share my code if it would help with this development.


(F udgy Pumpkins (B-) kiss) #207

Ok one last thing:  Here is my code in github.


Look at fortius_code/CANTMaster.cpp for the main loop that reads from the ANT stick.

The Fortius code is from golden cheetah with a few minor modifications and the ant code is from the ANT-SDK.

(Barry Gaunt(1947)) #208

For the Tacx Fortius, must the Tacx cadence sensor be installed to use Antifier? Normally with the TTSx it must be installed for safety purposes.



(Pim Hertogs) #209

Hey guys,


Just installed antifier icw 2x ANT+ dongles and Zwift using a Tacx Fortius with T1932 head unit in Windows 10 x64.


Trainer gets detected ok but in Antifier I see the connection status continuously flipping between connected and not connected.

I believe that as a result of this, the average speed and power reported to Zwift is extremely low.

Any idea what I can do to resolve this?




(Pim Hertogs) #210

After taking a look at the debug logs, it seems like every other read from the device returns all zero values which results in the “cannot read from trainer” message. As this forces all values to zero, it probably also causes the speed and other parameters returned to Zwift to stay very low…

(Mark Haney) #211

I figured out an issue with the TACX fortius trainer cal factors file - it had a repeat of grade -2.2 and -1.9.  When I change the -2.2 to -2.25 for one of them and -1.9 to -1.95 for the other I got antifier to work and connect from my raspberry pi zero to the pc running swift.  

I changed the runoff grade from 6 to 4 so I could pedal faster during the runoff test.  Not sure if this helped.  

I rode for 35 minutes on zwift - the power seemed fairly close to TACX but the grade  (motorbike intensity) never changed even though the speed reported by swift changed according to grade.  

It was like I was riding a constant power (that corresponded with me going 27mph on a slightly negative grade.)  My Garmin reported my actual speed from the speed/cadence sensor as 27mph with a power (from zwift) of 267 and a cadence of 84.  Cadence was the same for zwift.

(Pim Hertogs) #212

@Mark, what were the symptoms you were experiencing due to the duplicate grades in the calc file?

(Pim Hertogs) #213

Btw, I did a quick 'n dirty fix to my alternate zero readings from the fortius devices by disregarding the values when 0. I only update when not zero. Zwift seems to be working fine now in resistance mode. ERG mode is still not working properly but I am not sure if that is a result of this issue.

(Kjetil Kirkholt) #214

I have had alot of the same experience were grade dont change on Antifier but has changed in zwift. I found to my suprice i get less issues if i run the python file trough IDLE and choose debug in Antifier menu. I cant ever run the built exe file, it will allways fail and lock to a grade and never change.

Could you share your dirty fix?
ERG mode works 80% of the times for me. What happen every time in ERG mode is a variable delay when changing from one resistance to another. Delay can vary from 1 sec to 10 sec, making some shorter sprints in ERG mode a challenge.

(Pim Hertogs) #215

@Kjetil I’ll post the fix later this week as I am not in front of my trainer anymore right now.

If you experience different behavior when running the .exe vs python script with debug, this sounds to me like there is a timing dependency in the code, ie the read/write from and towards the trainer is happening too quickly in some cases.

Typically the debug lines will introduce additional delay so that might be why it is working better with debug switched on. Unfortunately I don’t understand the entire fortius protocol so it is a bit of guess work.

I will try later this week to experiment with some additional delay settings to see if that has impact.

(Hamish Mckay) #216

Hamish here.  Great work on the Antifier project.  I have some trouble :frowning:

I have a 1932 Fortius head unit.  When I remove the Jungo driver and then select browse for the new driver (after unplugging, waiting for  the de dunk, de dup, and plugging it back in), there are three options that lead to drivers, Jungo, Windriver and Tacx.  No ANT USB Stick 2 (my two ANT+ sticks are already installed and the simulate mode works).


BTW, I have some Garmin Vectors I can use for a power curve if you need any more for the Fortius.

UPDATE 20172812 10:35: I have located an ANT+ driverpackge (for training peaks) so will see if I can install the Fortius driver as the ANT driver.  I’ll report back with the results.

UPDATE 20172812 21:04: Bah, that was no good, but I did manage to delete the Jungo drivers a different way (via the driver update screen within the device manager, not the device manager).  The sunto appears to transmit.  The ANT+ dongle that came with my power pedals seems not to be receiving.  We are getting there though as the Fortus is now detected and controlled.  (The rolldown’s hard to get up to 40kph!)

UPDATE 20172812 21:04: Reboot, unplug, replug all devices.  BINGO!

(Mark Haney) #217

Here is my fortius cal factor file:


(Mark Haney) #218

Pim - I could never get the script to stay started and I would not be able to select Fortius as the power curve when simulating the trainer (would get the must have 14 levels in the power curve message).  When I selected the iMagic power curve everything worked (did not try connected to my TACX Fortius though) with the simulated mode, so that is when I noticed the the duplicated grades in the fortius power calc file may be causing an issue.

(Mark Haney) #219

Tonight I rode Zwift again.  This time I did not specify a workout, I just joined a ride.  It definitely was adjusting for grade, but was way more difficult that normal TACX rides for similar grades.  The reason my first ride was such a low resistance was because I setup a workout that never exceeded 250 watts and was riding at 267 watts the whole time.  This time after 10 minutes of grueling 10mph riding at a very high resistance (which was changing depending on grade - and my speed according to Zwift was changing but not matching my TACX at all).  I think with the right power curve I will be fine.  Also for some reason my rundown initialization was very hard even though I set it to a resistance of 3 instead of 6.  I also set the initial threshold for starting to 5KM/H instead of 10KM/H.  I need to study how the grades are calibrated (with respect to the multiplier and the negative factor).

Things are definitely functioning though.  Riding at about 10mph with such a high resistance is tough (even though Swift modified my speed according to the grade so I averaged 20 mph overall for my ride).

(huw Williams) #220

Excellent work guys. Personally really appreciate the effort. If I can get this working happy to leave a donation to help support the work. Before I jump in can I get some clarification on the points below?

With your software it seems a wired USB connection is changed to an ant+ feed

bearing this in mind why is there a need for a second ant+ dongle? I understand the first is for broadcasting but aren’t ipads, iMacs, MacBooks all capable of interpreting the feed for use in zwift?

I was considering the following set-up

Windows 10 machine:

  • your software

  • tts 3.0



  • zwift 


I would then use the ipad for social rides and tts for training and activity monitoring perhaps pushing that data to trainingpeaks or strava.


based on the above am I missing something?