Calibrating Tacx Fortius trainer

489 views
Skip to first unread message

Douglas Pepelko

unread,
Dec 10, 2017, 5:24:00 AM12/10/17
to golden-cheetah-users
So I have got a pretty good working project that translates the old wired USB Tacx Fortius to ANT+  for use on Zwift, and other newer platforms that support only ANT+ FE-C.


I need to calibrate the Fortius.  I have a power meter and could work on this code for Golden Cheetah (and borrow the results for my AntBridge).

But at this point I can't get the Fortius started in calibration mode.

I tried sending:

  0x01, 0x08, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x10, 0x04

and

  0x01, 0x08, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x53, 0x10, 0x04

Neither started the calibration sequence.

The comments seem to indicate that it would be easy.

     // Not yet implemented, easy enough to start calibration but appears that the calibration factor needs
                // to be calculated by observing the brake power and speed after calibration starts (i.e. it's not returned
                // by the brake).


Now I could get my old Fortius code out, make a XP VM and install it.  Then Wireshark the USB, but really I don't want to do all that if someone has the answer.

Thanks,

-Douglas Pepelko

Douglas Pepelko

unread,
Dec 10, 2017, 11:11:49 PM12/10/17
to golden-cheetah-users
Never mind.  I got it myself.

Posting here so the computer archeologists of the future don't have a mystery on their hands.

Command is simple:

01 08 01 00 a3 16 00 00 03 52 00 00

Then you must pedal.  I forgot this part from the old Fortius software.  The motor will keep running until you stop sending that command.

It will send 48 byte responses.  You can read the "power" numbers from that.  I think the Fortius code is wrong and has it listed as power but it's VERY dependent on speed.  It may be torque.

In any case, you get negative "power" numbers.  You can use these as an offset....sort of. 

------------------------------
Next step was figuring what changing inputs changed the output.

I ran 4 different runs with 3 power levels each

Speed KPH15201520
Brake Load Calibration watts-71-71-41-41
Target PowerActualActualActualActual
10031504365
200100134108148
300160220177229

Did a bunch of math and came up with this code:

 slopeCalc = 0.001366 * curDeviceSpeed + 0.0308;

offsetCalc = -0.03526 * curBrakeCalibrationLoadRaw + 1.708;

    powerCalcWatts = slopeCalc * powerRaw + offsetCalc;


Now the "raw" refers to the fact that took out the code that was in the original Fortius file (just a simple multiply by 13).  
It seems to work much better and match my power meter pretty well however  I have not done extensive testing.  

I posted the modified Fortius.cpp and Fortius.h on the above github link (as part of my project). but I would be happy to try to integrate it into the GoldenCheetah repo.  Just let me know how.

Evan Walpole

unread,
Dec 15, 2017, 2:48:33 AM12/15/17
to golden-cheetah-users
I have a hunch that the power out calculations are different depending on the type of head unit used (T1932, T1942), the motor brake (T1941, T1941.5, T1946) and the operating voltages used on Power Back supplies (110v, 220v).

Since motor brakes are BLDC drives, the equations are fairly simple for calculating power output. Unfortunately we're not given any typical boilerplate electrical characteristics or readings. But the existing USB data stream from the head units should be enough to model the drive.

I recently had a play around with the original TacxUSB.dll that is installed with TTS software. Viewing the file in IDA Pro .asm dissembler and the Hex-Rays C decompiler… there is a function named something like TacxUSBCalcData(data). It appears that the Power Back and Head Unit are indeed streaming output wattage numbers along with other telemetry like speed, cadence, virtual speed(!) etc.

From there all the reported telemetry gets shuffled into about a dozen nested functions that massage the data. At this point following disassembler/decompiler software output gets hard to read.

If you or anyone else would like a copy of the decompiled TacxUSB.dll output, let me know and I'll send it to your email account.

Dave Brulé

unread,
Nov 11, 2019, 3:09:44 AM11/11/19
to golden-cheetah-users
Hello All, I'm trying to get an old T1932, T1946 (T1946.5 powerback) Fortius system working with Golden Cheetah and I am stumped.

This discussion seems to be the closest to what I'm experiencing.

When I start a training session,  When Im pedalling the powerback/motor combination seems to drive normally for a few seconds then it locks up completely for a second/ releases then it repeats over and over.

This seems like a motor calibration issue but cant see a way within Golden Cheetah that I can make any changes to correct this.

Any help would be appreciated.

Dave 

Dave Brulé

unread,
Nov 11, 2019, 6:44:02 AM11/11/19
to golden-cheetah-users
Duh, turns out my problem was that my cadence sensor was not picking up my strokes. If it thinks you've stopped pedaling after 5-6 seconds it puts on the brakes, makes sense.
No coasting for me I guess: )
Reply all
Reply to author
Forward
0 new messages