FortiusANT icon indicating copy to clipboard operation
FortiusANT copied to clipboard

Support for Genius T2021 Brake (~46, 117)

Open WouterJD opened this issue 3 years ago • 162 comments

Hi Wouter, from Melbourne, Australia

  • I have a Genius T2021 Brake (Non-smart TACX proprietary ANT+), and an original Tacx 2018 Dongle. I am currently running TTS 4.22.5. I am interested in liberating my trainer a little to experiment with some of the newer software around. Surely if the Vortex can work, then the Genius must be possible too at some point. I would be happy to try and test any ideas you have. Interestingly, I decided to jump in and uninstall the "Jungo" TACX USB drivers, and install the "libusb-win32-1.2.6" drivers instead. TTS4 still works for me! (Windows 10)

FortiusANT is not registering the trainer yet though. Any tips to try and get it working?

Thanks

Originally posted by @Sigfreid74 in https://github.com/WouterJD/FortiusANT/issues/14#issuecomment-667527513

WouterJD avatar Aug 01 '20 13:08 WouterJD

To start with, please send some photos of the essentials, like headunit and connectivity.

I have the impression you have a USB-connected trainer...

WouterJD avatar Aug 01 '20 13:08 WouterJD

Thanks for the quick reply Wouter, I'll try and help out where I can -

The "T2020 i-Genius" brake is one of the pre FE-C ANT connected trainers using the TACX proprietary protocols - (like the i-Vortex and the Bushido). No direct USB cable connection like the Fortius. I am using the TACX - supplied T2018 USB ANT dongle.

There is a wireless ANT headunit which is purely optional for use in TTS4, it is only used to control the cursor on the screen while you are on the bike.

There is some information about the Genius ANT interface here: https://github.com/fluxoid-org/CyclismoProject/wiki/Tacx-Genius specifically: Device type: 0xd3 (sometimes referred to as "0×53")

I have installed the libusb-win32 drivers and TTS4 can still communicate with the trainer and other ANT devices (like the speed/cadence sensor and HRM). I uninstalled the Jungo USB ANT drivers that came from TACX.

I have installed Python, upgraded PIP and then installed the requirements.txt dependencies. Then I ran ExplorANT.bat and it was not detecting the Genius Brake, but it was detecting the HRM and Garmin Speed/Cadence sensors.

WP_20200802_001 WP_20200802_003

Sigfreid74 avatar Aug 02 '20 00:08 Sigfreid74

My first thought: you do not need libusb at all. Try the -t i-Vortex flag which causes FortiusANT not to use USB but pair with i-Vortex.

If the pre FE-C devices use the same protocol it should work and in that case read for 'i-Vortex' "Tacx proprietary pre FE-C device".

After your confirmation I will come up with some better name than that.

WouterJD avatar Aug 02 '20 14:08 WouterJD

PS I see that -t is not yet wiki-documented😝

WouterJD avatar Aug 02 '20 14:08 WouterJD

Hi Wouter - sorry for the delay - I thought I replied yesterday but something must have gone amok... I tried the -t I-Vortex tag for ExplorANT and FortiusANT and no response so far. The Ant stick is working as ExplorANT picking up the HRM and Garmin speed/Cadence Sensors. I was wondering if you were using code from the ANT.h file from GoldenCheetah to find the i-Vortex.? it specifies the Ant TYPE as "0x3d" or "61", the frequency is 0x42 (66) and the period is 0x2000 (8192) According to the TotalReverse analysis of the ANT protocol for Genius - the ANT Device Type is "0x53" or "83", the frequency is 0x3c (60) and the Period is 4096 (0x1000). Can we try changing these values in your code?

Sigfreid74 avatar Aug 05 '20 11:08 Sigfreid74

Sure, use the .py and .try😊 The numbers in the code have been tested for i-vortex and work.

WouterJD avatar Aug 05 '20 17:08 WouterJD

My first time doing this - I created a fork and started to change ANTDongle.py. That should effect ExplorANT? I will check the results tonight.

Sigfreid74 avatar Aug 06 '20 02:08 Sigfreid74

Succes! I'm curious whether you will get things work; if not we can ask TotalReverse for assistence!

Regarding constants; I tend to define things once - so it affects ExplorANT as well.

WouterJD avatar Aug 06 '20 07:08 WouterJD

No luck so far. I tried changing the lines in AntDongle.py that referred to DeviceType, Frequency and Period to the Genius values - no detection of the genius. Still picking up the Speed/Cadence meter though. I think we will need a higher power to help out. TotalReverse is seem to be needed on the case.

I tried to figure out how to get Wireshark working with Ant using this https://github.com/jovial/wireshark-ant and also using a program called USBPCAP with wireshark but I don't really know what I am doing: I will need to try some more with this. Thee purpose was to try and capture some of the traffic the genius produces - I think this is how the reverse engineering experts do it?

Sigfreid74 avatar Aug 06 '20 12:08 Sigfreid74

Do you have a non-Tacx application that pairs with the Genius?

WouterJD avatar Aug 06 '20 12:08 WouterJD

No only TTS4

Sigfreid74 avatar Aug 06 '20 20:08 Sigfreid74

I have just registered with ANT to log into the website so I can download ANTWARE . Don't know if it will help, but I might as well try.

Sigfreid74 avatar Aug 10 '20 06:08 Sigfreid74

I do not know. Mind that Tacx has deliberately scrambled the interface, so it's a matter of searching.

WouterJD avatar Aug 10 '20 09:08 WouterJD

According to the TotalReverse analysis of the ANT protocol for Genius - the ANT Device Type is "0x53" or "83", the frequency is 0x3c (60) and the Period is 4096 (0x1000). Can we try changing these values in your code?

Did you try to implement this in the .py code? What does "Still picking up the Speed/Cadence meter though." mean?

Perhaps a good idea to send the -d127 tracefile, I will then assist to interpret

WouterJD avatar Aug 10 '20 09:08 WouterJD

Did you try to implement this in the .py code?

I did try to change the values in AntDongle.py that referred to DeviceType, Frequency and Period to the Genius values So far - no luck detecting the Genius with ExplorANT

What does "Still picking up the Speed/Cadence meter though." mean?

ExplorANT finds the Garmin Speed/Cadence Sensor on my bike.

I will use the -d127 option and send the file through.

Sigfreid74 avatar Aug 12 '20 03:08 Sigfreid74

https://docs.google.com/document/d/1b9eZ14EIToSmQjW7QAOM2u5T3qWBSqYA1zt9hcuhGyM/edit?usp=sharing

Sigfreid74 avatar Aug 12 '20 11:08 Sigfreid74

The logfile appears to set the correct parameters

11:04:07,594: FortiusANT receives data from an ANT+ Tacx i-Vortex (VTX Controller), any device
11:04:07,594: SlaveVTX_ChannelConfig()

according to the the quoted values from TotalReverse as you mention above (PS: what is the exact source?)

Searching for "ch=4" gives no activity at all.

You work the same way as I did to get the i-Vortex active; set the parameters and see whether I received some data. Only when the correct figures were all set I received response. I have no sniffers and/or network systems to see what is "in the air".

Try to drop a question to TotalReverse on this subject, perhaps (s)he can assist?

I'll be offline next 10 days.

WouterJD avatar Aug 13 '20 09:08 WouterJD

Thanks Wouter, will do. ps https://github.com/fluxoid-org/CyclismoProject/wiki/Tacx-Genius is where I got the information for the different values.

On Thu, 13 Aug 2020 at 19:23, WouterJD [email protected] wrote:

The logfile appears to set the correct parameters

11:04:07,594: FortiusANT receives data from an ANT+ Tacx i-Vortex (VTX Controller), any device 11:04:07,594: SlaveVTX_ChannelConfig()

according to the the quoted values from TotalReverse as you mention above (PS: what is the exact source?)

Searching for "ch=4" gives no activity at all.

You work the same way as I did to get the i-Vortex active; set the parameters and see whether I received some data. Only when the correct figures were all set I received response. I have no sniffers and/or network systems to see what is "in the air".

Try to drop a question to TotalReverse on this subject, perhaps (s)he can assist?

I'll be offline next 10 days.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/WouterJD/FortiusANT/issues/101#issuecomment-673368009, or unsubscribe https://github.com/notifications/unsubscribe-auth/AGZOLHTAP7TFJJ4N74B26RTSAOWK3ANCNFSM4PRYFCCQ .

Sigfreid74 avatar Aug 13 '20 09:08 Sigfreid74

Just chiming in on this as I've just bought one of these second hand and would like to get it working with Zwift.

I think I've changed the correct parameters for the Genius: https://github.com/mikeymclellan/FortiusANT/commit/b783dfc8153a94b827157e9e5c42c0b31f3a4eac

And this is the debug output from python3 ./FortiusAnt.py -t i-Vortex -d127

23:41:26,693: FortiusANT started
23:41:26,693: -d 127 (0b1111111)
23:41:26,693: -H None
23:41:26,693: -p 1.0
23:41:26,693: -t i-Vortex
23:41:26,693: ------------------
23:41:26,717: GetDongle - Try dongle: manufacturer=Dynastream Innovations, product=ANT USB-m Stick, vendor= 0xfcf, product=0x1009(4105)
23:41:27,248: Dongle - Using Dynastream Innovations dongle
23:41:27,248: Tacx   - Pair with Tacx i-Vortex and Headunit
23:41:27,248: AntHRM - Heartrate expected from Tacx Trainer
23:41:28,356: FortiusANT broadcasts data as an ANT+ Controlled Fitness Equipent device (FE-C), id=57591
23:41:28,506: FortiusANT broadcasts data as an ANT+ Heart Rate Monitor (HRM), id=57592
23:41:28,657: FortiusANT receives data from an ANT+ Tacx i-Vortex (VTX Controller), any device
23:41:28,839: FortiusANT receives data from an ANT+ Tacx i-Vortex Headunit (VHU Controller), any device
23:41:29,021: FortiusANT broadcasts data as an ANT+ Bicycle Power Sensor (PWR), id=57596
23:41:29,173: FortiusANT broadcasts data as an ANT+ Speed and Cadence Sensor (SCS), id=57595
23:41:29,344: Ctrl-C to exit
23:41:29,344: Tacx   - Pair with Tacx i-Vortex and Headunit
23:41:29,345: Target=100W Speed= 0.0kmh hr=  0 Current=  0W Cad=  0 r= 100 T= 15
23:41:30,359: Target=100W Speed= 0.0kmh hr=  0 Current=  0W Cad=  0 r= 100 T= 15
23:41:31,371: Target=100W Speed= 0.0kmh hr=  0 Current=  0W Cad=  0 r= 100 T= 15
23:41:32,380: Target=100W Speed= 0.0kmh hr=  0 Current=  0W Cad=  0 r= 100 T= 15
23:41:33,394: Target=100W Speed= 0.0kmh hr=  0 Current=  0W Cad=  0 r= 100 T= 15
23:41:34,405: Target=100W Speed= 0.0kmh hr=  0 Current=  0W Cad=  0 r= 100 T= 15
23:41:35,419: Target=100W Speed= 0.0kmh hr=  0 Current=  0W Cad=  0 r= 100 T= 15
23:41:36,429: Target=100W Speed= 0.0kmh hr=  0 Current=  0W Cad=  0 r= 100 T= 15
23:41:37,442: Target=100W Speed= 0.0kmh hr=  0 Current=  0W Cad=  0 r= 100 T= 15
23:41:38,455: Target=100W Speed= 0.0kmh hr=  0 Current=  0W Cad=  0 r= 100 T= 15
23:41:39,463: Target=100W Speed= 0.0kmh hr=  0 Current=  0W Cad=  0 r= 100 T= 15
23:41:40,471: Target=100W Speed= 0.0kmh hr=  0 Current=  0W Cad=  0 r= 100 T= 15
23:41:41,481: Target=100W Speed= 0.0kmh hr=  0 Current=  0W Cad=  0 r= 100 T= 15
23:41:42,493: Target=100W Speed= 0.0kmh hr=  0 Current=  0W Cad=  0 r= 100 T= 15
23:41:43,506: Target=100W Speed= 0.0kmh hr=  0 Current=  0W Cad=  0 r= 100 T= 15
23:41:44,516: Target=100W Speed= 0.0kmh hr=  0 Current=  0W Cad=  0 r= 100 T= 15
23:41:45,530: Target=100W Speed= 0.0kmh hr=  0 Current=  0W Cad=  0 r= 100 T= 15
^C23:41:45,605: Stopped
23:41:46,106: FortiusAnt ended

I've attached the logfile FortiusANT.2020-09-28 23-41-26.log

Is what I'm attempting to do correct? I'm happy to get more involved and read through the code more, just thought I'd check I'm on the right path.

[edit]

Also attempted the updated values from fluxoid with no luck. I changed to reusing the DeviceTypeID_VTX constant, for now, as it's used in ExplorAnt.py.

mikeymclellan avatar Sep 28 '20 23:09 mikeymclellan

There's a little more explanation of the different device ids in the TotalReverse Wiki, it relates to whether you include the pairing bit or not. I'm not really sure what this means, but either way I don't seem to have any success.

mikeymclellan avatar Sep 29 '20 00:09 mikeymclellan

BTW here's a pcap file of the USB data when starting and connecting to the brake using TTS4 captured with Wireshark tacx1.pcapng.zip .

mikeymclellan avatar Sep 29 '20 03:09 mikeymclellan

Somewhere along the way I managed to get it to output something 🤷

04:11:20,941: FortiusANT started
04:11:20,941: -d 127 (0b1111111)
04:11:20,941: -H None
04:11:20,941: -p 1.0
04:11:20,942: -t i-Vortex
04:11:20,942: ------------------
04:11:20,958: GetDongle - Try dongle: manufacturer=Dynastream Innovations, product=ANT USB-m Stick, vendor= 0xfcf, product=0x1009(4105)
04:11:21,488: Dongle - Using Dynastream Innovations dongle
04:11:21,488: Tacx   - Pair with Tacx i-Vortex and Headunit
04:11:21,488: AntHRM - Heartrate expected from Tacx Trainer
04:11:22,594: FortiusANT broadcasts data as an ANT+ Controlled Fitness Equipent device (FE-C), id=57591
04:11:22,743: FortiusANT broadcasts data as an ANT+ Heart Rate Monitor (HRM), id=57592
04:11:22,893: FortiusANT receives data from an ANT+ Tacx i-Vortex (VTX Controller), any device
04:11:23,082: FortiusANT receives data from an ANT+ Tacx i-Vortex Headunit (VHU Controller), any device
04:11:23,284: FortiusANT broadcasts data as an ANT+ Bicycle Power Sensor (PWR), id=57596
04:11:23,440: FortiusANT broadcasts data as an ANT+ Speed and Cadence Sensor (SCS), id=57595
04:11:23,607: Ctrl-C to exit
04:11:23,607: Tacx   - Pair with Tacx i-Vortex and Headunit
04:11:23,607: Target=100W Speed= 0.0kmh hr=  0 Current=  0W Cad=  0 r= 100 T= 15
04:11:24,614: Target=100W Speed= 0.0kmh hr=  0 Current=  0W Cad=  0 r= 100 T= 15
04:11:25,630: Target=100W Speed= 0.0kmh hr=  0 Current=  0W Cad=  0 r= 100 T= 15
04:11:26,639: Target=100W Speed= 0.0kmh hr=  0 Current=  0W Cad=  0 r= 100 T= 15
04:11:27,647: Target=100W Speed=39.8kmh hr=  0 Current=229W Cad=163 r= 100 T= 15
04:11:28,660: Target=100W Speed=39.8kmh hr=  0 Current=229W Cad=163 r= 100 T= 15
04:11:29,664: Target=100W Speed=39.8kmh hr=  0 Current=229W Cad=163 r= 100 T= 15
04:11:30,672: Target=100W Speed=39.8kmh hr=  0 Current=229W Cad=163 r= 100 T= 15
04:11:31,678: Target=100W Speed=39.8kmh hr=  0 Current=229W Cad=163 r= 100 T= 15
04:11:32,684: Target=100W Speed=39.8kmh hr=  0 Current=229W Cad=163 r= 100 T= 15
04:11:33,698: Target=100W Speed=39.8kmh hr=  0 Current=229W Cad=163 r= 100 T= 15
04:11:34,708: Target=100W Speed=39.8kmh hr=  0 Current=229W Cad=163 r= 100 T= 15
04:11:35,713: Target=100W Speed=39.8kmh hr=  0 Current=229W Cad=163 r= 100 T= 15
04:11:36,721: Target=100W Speed=39.8kmh hr=  0 Current=229W Cad=163 r= 100 T= 15
04:11:37,729: Target=100W Speed=39.8kmh hr=  0 Current=229W Cad=163 r= 100 T= 15
04:11:38,734: Target=100W Speed=39.8kmh hr=  0 Current=229W Cad=163 r= 100 T= 15
04:11:39,743: Target=100W Speed=39.8kmh hr=  0 Current=229W Cad=163 r= 100 T= 15
04:11:40,757: Target=100W Speed=39.8kmh hr=  0 Current=229W Cad=163 r= 100 T= 15
04:11:41,769: Target=100W Speed=39.8kmh hr=  0 Current=229W Cad=163 r= 100 T= 15
04:11:42,773: Target=100W Speed=39.8kmh hr=  0 Current=229W Cad=163 r= 100 T= 15
04:11:43,780: Target=100W Speed=39.8kmh hr=  0 Current=229W Cad=163 r= 100 T= 15
04:11:44,788: Target=100W Speed=39.8kmh hr=  0 Current=229W Cad=163 r= 100 T= 15
04:11:45,793: Target=100W Speed=39.8kmh hr=  0 Current=229W Cad=163 r= 100 T= 15
04:11:46,796: Target=100W Speed=39.8kmh hr=  0 Current=229W Cad=163 r= 100 T= 15
04:11:47,809: Target=100W Speed=39.8kmh hr=  0 Current=229W Cad=163 r= 100 T= 15
04:11:48,820: Target=100W Speed=39.8kmh hr=  0 Current=229W Cad=163 r= 100 T= 15
04:11:49,832: Target=100W Speed=39.8kmh hr=  0 Current=229W Cad=163 r= 100 T= 15
04:11:50,842: Target=100W Speed=39.8kmh hr=  0 Current=229W Cad=163 r= 100 T= 15
04:11:51,853: Target=100W Speed=39.8kmh hr=  0 Current=229W Cad=163 r= 100 T= 15
04:11:52,873: Target=100W Speed=39.8kmh hr=  0 Current=229W Cad=163 r= 100 T= 15
04:11:53,889: Target=100W Speed=39.8kmh hr=  0 Current=229W Cad=163 r= 100 T= 15
04:11:54,906: Target=100W Speed=39.8kmh hr=  0 Current=229W Cad=163 r= 100 T= 15
04:11:55,916: Target=100W Speed=39.8kmh hr=  0 Current=229W Cad=163 r= 100 T= 15
04:11:56,919: Target=100W Speed=39.8kmh hr=  0 Current=229W Cad=163 r= 100 T= 15
04:11:57,931: Target=100W Speed=39.8kmh hr=  0 Current=229W Cad=163 r= 100 T= 15
04:11:58,944: Target=100W Speed=39.8kmh hr=  0 Current=229W Cad=163 r= 100 T= 15
04:11:59,953: Target=100W Speed=39.8kmh hr=  0 Current=229W Cad=163 r= 100 T= 15
04:12:00,963: Target=100W Speed=39.8kmh hr=  0 Current=229W Cad=163 r= 100 T= 15
04:12:01,973: Target=100W Speed=39.8kmh hr=  0 Current=229W Cad=163 r= 100 T= 15
04:12:02,985: Target=100W Speed=39.8kmh hr=  0 Current=229W Cad=163 r= 100 T= 15
04:12:03,991: Target=100W Speed=39.8kmh hr=  0 Current=229W Cad=163 r= 100 T= 15
04:12:04,997: Target=100W Speed=39.8kmh hr=  0 Current=229W Cad=163 r= 100 T= 15
04:12:06,000: Target=100W Speed=39.8kmh hr=  0 Current=229W Cad=163 r= 100 T= 15
^C04:12:06,418: Stopped
04:12:06,923: FortiusAnt ended

FortiusANT.2020-09-29 04-11-20.log

And finally, ExplorANT output:

04:59:07,043: Command line error; -V incorrect Tacx i-Vortex=False
04:59:07,044: ExplorANT started
04:59:07,044:          ExplorANT = 2020-05-07
04:59:07,044:          antDongle = 2020-06-16
04:59:07,044: -d 127 (0b1111111)
04:59:07,044: -D -1 (-0x1)
04:59:07,044: -H -1 (-0x1)
04:59:07,044: -F -1 (-0x1)
04:59:07,044: -S -1 (-0x1)
04:59:07,044: -V -1 (-0x1)
04:59:07,044: --------------------
04:59:07,044: Dongles in the system:
04:59:07,060: manufacturer=Dynastream Innovations, product=ANT USB-m Stick, vendor= 0xfcf, product=0x1009(4105)
04:59:07,061: manufacturer=Apple Inc., product=USB-C Digital AV Multiport Adapter, vendor= 0x5ac, product=0x1460(5216)
04:59:07,063: manufacturer=Apple Inc., product=     USB2.0 Hub, vendor= 0x5ac, product=0x100f(4111)
04:59:07,092: manufacturer=Apple Inc., product=     USB3.0 Hub, vendor= 0x5ac, product=0x100e(4110)
04:59:07,095: manufacturer=Apple Inc., product=Apple Internal Keyboard / Trackpad, vendor= 0x5ac, product= 0x27c(636)
04:59:07,095: --------------------
04:59:07,096: GetDongle - Try dongle: manufacturer=Dynastream Innovations, product=ANT USB-m Stick, vendor= 0xfcf, product=0x1009(4105)
04:59:07,631: Using Dynastream Innovations dongle
04:59:07,632: ExplorANT: We're in slave mode, listening to master ANT+ devices
Open channels: 0 04:59:08,234: FortiusANT tries to pair with an ANT+ device, any device
1 04:59:08,387: FortiusANT tries to pair with an ANT+ device, any device
2 04:59:08,538: FortiusANT tries to pair with an ANT+ device, any device
3 04:59:08,691: FortiusANT tries to pair with an ANT+ device, any device
4 04:59:08,837: FortiusANT receives data from an ANT+ Tacx i-Vortex (VTX Controller), any device
5 04:59:09,018: FortiusANT receives data from an ANT+ Tacx i-Vortex Headunit (VHU Controller), any device
6 04:59:09,208: FortiusANT tries to pair with an ANT+ device, any device
7 04:59:09,370: FortiusANT tries to pair with an ANT+ device, any device

04:59:09,518: Pairing, press Ctrl-C to exit
Wait for responses from channel what device is paired: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
04:59:39,734: Pairing stopped
04:59:39,734: --------------------
04:59:41,050: Listening, press Ctrl-C to exit
04:59:42,057: HRM#= 0 hr= -1 FE-C#= 0 Speed=  -1 Cadence= -1 Power= -1 hr= -1 SCS#= 0 VTX ID=0 Speed=   0 Cadence=  0 Target=-1
04:59:43,068: HRM#= 0 hr= -1 FE-C#= 0 Speed=  -1 Cadence= -1 Power= -1 hr= -1 SCS#= 0 VTX ID=0 Speed=   0 Cadence=  0 Target=-1
04:59:44,075: HRM#= 0 hr= -1 FE-C#= 0 Speed=  -1 Cadence= -1 Power= -1 hr= -1 SCS#= 0 VTX ID=0 Speed=   0 Cadence=  0 Target=-1
04:59:45,081: HRM#= 0 hr= -1 FE-C#= 0 Speed=  -1 Cadence= -1 Power= -1 hr= -1 SCS#= 0 VTX ID=0 Speed=   0 Cadence=  0 Target=-1
04:59:46,084: HRM#= 0 hr= -1 FE-C#= 0 Speed=  -1 Cadence= -1 Power= -1 hr= -1 SCS#= 0 VTX ID=0 Speed=   0 Cadence=  0 Target=-1
04:59:47,103: HRM#= 0 hr= -1 FE-C#= 0 Speed=  -1 Cadence= -1 Power= -1 hr= -1 SCS#= 0 VTX ID=0 Speed=   0 Cadence=  0 Target=-1
04:59:48,113: HRM#= 0 hr= -1 FE-C#= 0 Speed=  -1 Cadence= -1 Power= -1 hr= -1 SCS#= 0 VTX ID=0 Speed=   0 Cadence=  0 Target=-1
04:59:49,119: HRM#= 0 hr= -1 FE-C#= 0 Speed=  -1 Cadence= -1 Power= -1 hr= -1 SCS#= 0 VTX ID=0 Speed=   0 Cadence=  0 Target=-1
04:59:50,121: HRM#= 0 hr= -1 FE-C#= 0 Speed=  -1 Cadence= -1 Power= -1 hr= -1 SCS#= 0 VTX ID=0 Speed=   0 Cadence=  0 Target=-1
^C04:59:50,521: Listening stopped
04:59:51,022: We're done
04:59:51,022: --------------------

ExplorANT.2020-09-29 04-59-07.log

mikeymclellan avatar Sep 29 '20 04:09 mikeymclellan

Wow you got a lot further than me Mikey, I tried your changes to my files and Genius - I got the same output you did the first time round - nothing..... What were you doing when you got that output speed etc...? Thanks

Matthew

On Tue, 29 Sep 2020 at 14:41, Mikey McLellan [email protected] wrote:

Somewhere along the way I managed to get it to output something:

04:11:20,941: FortiusANT started 04:11:20,941: -d 127 (0b1111111) 04:11:20,941: -H None 04:11:20,941: -p 1.0 04:11:20,942: -t i-Vortex 04:11:20,942: ------------------ 04:11:20,958: GetDongle - Try dongle: manufacturer=Dynastream Innovations, product=ANT USB-m Stick, vendor= 0xfcf, product=0x1009(4105) 04:11:21,488: Dongle - Using Dynastream Innovations dongle 04:11:21,488: Tacx - Pair with Tacx i-Vortex and Headunit 04:11:21,488: AntHRM - Heartrate expected from Tacx Trainer 04:11:22,594: FortiusANT broadcasts data as an ANT+ Controlled Fitness Equipent device (FE-C), id=57591 04:11:22,743: FortiusANT broadcasts data as an ANT+ Heart Rate Monitor (HRM), id=57592 04:11:22,893: FortiusANT receives data from an ANT+ Tacx i-Vortex (VTX Controller), any device 04:11:23,082: FortiusANT receives data from an ANT+ Tacx i-Vortex Headunit (VHU Controller), any device 04:11:23,284: FortiusANT broadcasts data as an ANT+ Bicycle Power Sensor (PWR), id=57596 04:11:23,440: FortiusANT broadcasts data as an ANT+ Speed and Cadence Sensor (SCS), id=57595 04:11:23,607: Ctrl-C to exit 04:11:23,607: Tacx - Pair with Tacx i-Vortex and Headunit 04:11:23,607: Target=100W Speed= 0.0kmh hr= 0 Current= 0W Cad= 0 r= 100 T= 15 04:11:24,614: Target=100W Speed= 0.0kmh hr= 0 Current= 0W Cad= 0 r= 100 T= 15 04:11:25,630: Target=100W Speed= 0.0kmh hr= 0 Current= 0W Cad= 0 r= 100 T= 15 04:11:26,639: Target=100W Speed= 0.0kmh hr= 0 Current= 0W Cad= 0 r= 100 T= 15 04:11:27,647: Target=100W Speed=39.8kmh hr= 0 Current=229W Cad=163 r= 100 T= 15 04:11:28,660: Target=100W Speed=39.8kmh hr= 0 Current=229W Cad=163 r= 100 T= 15 04:11:29,664: Target=100W Speed=39.8kmh hr= 0 Current=229W Cad=163 r= 100 T= 15 04:11:30,672: Target=100W Speed=39.8kmh hr= 0 Current=229W Cad=163 r= 100 T= 15 04:11:31,678: Target=100W Speed=39.8kmh hr= 0 Current=229W Cad=163 r= 100 T= 15 04:11:32,684: Target=100W Speed=39.8kmh hr= 0 Current=229W Cad=163 r= 100 T= 15 04:11:33,698: Target=100W Speed=39.8kmh hr= 0 Current=229W Cad=163 r= 100 T= 15 04:11:34,708: Target=100W Speed=39.8kmh hr= 0 Current=229W Cad=163 r= 100 T= 15 04:11:35,713: Target=100W Speed=39.8kmh hr= 0 Current=229W Cad=163 r= 100 T= 15 04:11:36,721: Target=100W Speed=39.8kmh hr= 0 Current=229W Cad=163 r= 100 T= 15 04:11:37,729: Target=100W Speed=39.8kmh hr= 0 Current=229W Cad=163 r= 100 T= 15 04:11:38,734: Target=100W Speed=39.8kmh hr= 0 Current=229W Cad=163 r= 100 T= 15 04:11:39,743: Target=100W Speed=39.8kmh hr= 0 Current=229W Cad=163 r= 100 T= 15 04:11:40,757: Target=100W Speed=39.8kmh hr= 0 Current=229W Cad=163 r= 100 T= 15 04:11:41,769: Target=100W Speed=39.8kmh hr= 0 Current=229W Cad=163 r= 100 T= 15 04:11:42,773: Target=100W Speed=39.8kmh hr= 0 Current=229W Cad=163 r= 100 T= 15 04:11:43,780: Target=100W Speed=39.8kmh hr= 0 Current=229W Cad=163 r= 100 T= 15 04:11:44,788: Target=100W Speed=39.8kmh hr= 0 Current=229W Cad=163 r= 100 T= 15 04:11:45,793: Target=100W Speed=39.8kmh hr= 0 Current=229W Cad=163 r= 100 T= 15 04:11:46,796: Target=100W Speed=39.8kmh hr= 0 Current=229W Cad=163 r= 100 T= 15 04:11:47,809: Target=100W Speed=39.8kmh hr= 0 Current=229W Cad=163 r= 100 T= 15 04:11:48,820: Target=100W Speed=39.8kmh hr= 0 Current=229W Cad=163 r= 100 T= 15 04:11:49,832: Target=100W Speed=39.8kmh hr= 0 Current=229W Cad=163 r= 100 T= 15 04:11:50,842: Target=100W Speed=39.8kmh hr= 0 Current=229W Cad=163 r= 100 T= 15 04:11:51,853: Target=100W Speed=39.8kmh hr= 0 Current=229W Cad=163 r= 100 T= 15 04:11:52,873: Target=100W Speed=39.8kmh hr= 0 Current=229W Cad=163 r= 100 T= 15 04:11:53,889: Target=100W Speed=39.8kmh hr= 0 Current=229W Cad=163 r= 100 T= 15 04:11:54,906: Target=100W Speed=39.8kmh hr= 0 Current=229W Cad=163 r= 100 T= 15 04:11:55,916: Target=100W Speed=39.8kmh hr= 0 Current=229W Cad=163 r= 100 T= 15 04:11:56,919: Target=100W Speed=39.8kmh hr= 0 Current=229W Cad=163 r= 100 T= 15 04:11:57,931: Target=100W Speed=39.8kmh hr= 0 Current=229W Cad=163 r= 100 T= 15 04:11:58,944: Target=100W Speed=39.8kmh hr= 0 Current=229W Cad=163 r= 100 T= 15 04:11:59,953: Target=100W Speed=39.8kmh hr= 0 Current=229W Cad=163 r= 100 T= 15 04:12:00,963: Target=100W Speed=39.8kmh hr= 0 Current=229W Cad=163 r= 100 T= 15 04:12:01,973: Target=100W Speed=39.8kmh hr= 0 Current=229W Cad=163 r= 100 T= 15 04:12:02,985: Target=100W Speed=39.8kmh hr= 0 Current=229W Cad=163 r= 100 T= 15 04:12:03,991: Target=100W Speed=39.8kmh hr= 0 Current=229W Cad=163 r= 100 T= 15 04:12:04,997: Target=100W Speed=39.8kmh hr= 0 Current=229W Cad=163 r= 100 T= 15 04:12:06,000: Target=100W Speed=39.8kmh hr= 0 Current=229W Cad=163 r= 100 T= 15 ^C04:12:06,418: Stopped 04:12:06,923: FortiusAnt ended```

FortiusANT.2020-09-29 04-11-20.log

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/WouterJD/FortiusANT/issues/101#issuecomment-700422067, or unsubscribe https://github.com/notifications/unsubscribe-auth/AGZOLHRUY72HVQ6E7N6P6CTSIFQOFANCNFSM4PRYFCCQ .

Sigfreid74 avatar Sep 29 '20 10:09 Sigfreid74

Hey guys. Sorry for not digging into the issue earlier. @mikeymclellan you seem to be on the right track. Since I do not have the T2021 I cannot assist very much. As soon as you have questions, please drop a note.

WouterJD avatar Sep 29 '20 11:09 WouterJD

@mikeymclellan @Sigfreid74 How are things proceeding? If you have a working model, just let me know and I will integrate into FortiusANT

WouterJD avatar Oct 06 '20 07:10 WouterJD

Refer to next response from TotalReverse, perhaps it gives additional information: https://github.com/totalreverse/ttyT1941/issues/15#issuecomment-703829537

Unfortunately no. I do not own a Genius.
Maybe I find an affordable used brake on eBay this winter to reverse the protocol.
The Genius uses the same ANT channel frequency (60 = 0x3c) and period (0x1000 = 4096) as the Bushido.
Maybe the protocol is similar, too?
Have a look at:
https://github.com/jovial/PyBushido
https://github.com/fluxoid-org/CyclismoProject/wiki/Tacx-Bushido-Brake-protocol

WouterJD avatar Oct 06 '20 07:10 WouterJD

I am in the same situation - just bought a Tacx Genius T2021 last week and want to connect it to my PC to ride on zwift. I don't have TTS4 available and am trying to connect it using FortiusAnt and my T2028 antenna.

Tried the fork by @mikeymclellan but did not have any luck so far.

m472 avatar Oct 20 '20 23:10 m472

@m472 thanks for using FortiusANT, please introduce yourself; I like to know where FortiusANT landed see #14

@m472 @mikeymclellan @Sigfreid74 I have added a short section in the manual (see wiki) and hope that is helpful.

Please keep me posted on progress and/or developments; when I can integrate your work it is helpful for others and -of course- I am curious whether the Genius can be connected as well.

WouterJD avatar Oct 21 '20 06:10 WouterJD

I have now had the chance to do some more testing with my Tacx Genius.

In a first step I have printed all received ANT+ messages to the console. This way I was able to see some communication between the Genius and my computer. Therefor I can confirm the device type 0x53, frequency 50 (2460 MHz) and Period 4096 are correct.

I then checked the different data page numbers that are transmitted. It seems the Genius brake sends three data pages on a regular base: 1, 81, 94 and 221

I don't know anything about ANT+ data pages but it seems the information in pages 1, 81 and 94 is not dependent on weather I turn the cranks or not. The information in data page 221 however definitely changes when the cranks are turned.

The first byte in data page 221 seems to be some kind of sub-index. It takes the values {1, 2, 3}. I then logged all the information for data page 221 during a sprint and looked at the values by adding a print statement in the DecomposeMessage function.

I was able to identify some values as high and low bytes of an integer. Others are always zero (maybe my power output is just too low...). So now I have multiple values that seem to make some sense but I have no idea which signal is which. I hope someone is a bit more familiar with power and speed curves on an indoor trainer and can help me interpret thes curves.

The values val_1 to val_4 are from data page 221 subindex 1, the value val_5 is from data page 221 subindex 2 and the values val_6 and val_7 are from data page 221 subindex 3.

image

image

image

Any help is appreciated, you can find my code and data here: https://gist.github.com/m472/172bcc563bd822fc85526de25371097c

m472 avatar Oct 23 '20 20:10 m472

Hi Mathias great work. Quite busy right now but I will search a timeslot to look what you did. I will get back asap

WouterJD avatar Oct 23 '20 20:10 WouterJD