WouterJD / FortiusANT

FortiusANT enables a pre-smart Tacx trainer (usb- or ANT-connected) to communicate with TrainerRoad, Rouvy or Zwift through ANT or Bluetooth LE.
GNU General Public License v3.0
148 stars 78 forks source link

Support for Genius T2021 Brake (~46, 117) #101

Open WouterJD opened 4 years ago

WouterJD commented 4 years ago

Hi Wouter, from Melbourne, Australia

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

switchabl commented 3 years ago

Some known issues:

I don't consider these blockers. They may not be fixable by us. But if someone has an idea what to do about it, I am open to suggestions.

Sigfreid74 commented 3 years ago

Fantastic Work Switchabl. Almost there! As an 8 year veteran of the Genius I know that usually I have to go through the laborious process of calibrating the device up to about 10 times to get a stable reading. Only then can I be confident of an accurate ride to compare results. It seems this repeated calibration results in the tyre warming up which changes the pressures and the calibration reading. It was always my dream that TACX implement some sort of automatic procedure to warm up the tyre so I did not have to go through the nearly 7-8 minute process every blasted time. But they never listened to my requests (or many other users!). We are now within reach of the holy grail Switchabl. My dream process would be a manual calibration button that would run the motor for about 5 minutes at about 30km/h and then take a calibration reading, without having to have user intervention in between. ps I have noticed the lower wind resistance of previous versions when using Golden Cheetah and running some of my favourite Tacx videos (yes they now run pretty well in there! Revolutions are occuring all around the TACX trainer world.) So I am eager to try out that on this version as well.

I'll let you know how that goes tomorrow night when I do the Tour of Flanders video.

On Tue, 15 Dec 2020 at 08:12, switchabl notifications@github.com wrote:

Some known issues:

  • cadence usually reads high by 3-4 rpm for me
  • in erg mode, sometimes the wheel will keep spinning for a while after you stop pedaling
  • pairing really can take a minute

I don't consider these blockers. They may not be fixable by us. But if someone has an idea what to do about it, I am open to suggestions.

— 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-744713348, or unsubscribe https://github.com/notifications/unsubscribe-auth/AGZOLHTBOHKFUAMTTO2QF5LSUZ5TTANCNFSM4PRYFCCQ .

simonperneel commented 3 years ago

Thank you for your efforts @switchabl 🚀! Yesterday I received an other ANT+ dongle to replace the Cyclplus one. Now it works as expected for me! Super happy that my Genius is usable again. I now pulled your latest version of the code and will try it out. I don't have a power meter so I will not be able to test accuracy. But I will share my other experiences with the latest version.

Cheers

switchabl commented 3 years ago

@Sigfreid74 @simonperneel Looking forward to your feedback!

My dream process would be a manual calibration button that would run the motor for about 5 minutes at about 30km/h and then take a calibration reading, without having to have user intervention in between

Unfortunately, I do not see an obvious way to do this. The calibration is essentially done by the brake itself. We send a command "start calibration", then wait and ask at regular intervals "are you done yet?". So we cannot really change how calibration works. (Compare this to the Fortius where we can just request "spin at X km/h" and do everything else ourselves) And in normal mode the the wheel stops spinning soon after you stop pedaling, so we can't use that to "warm-up" either.

What I do is warm-up the tire (and myself) manually for 5-10 minutes before running FortiusANT if I want to calibrate. And I only do this occasionally, normally I just check tire pressure and run without a fresh calibration ('-n' disables calibration). This seems to give pretty consistent results, but I have to admit I have a power meter paired to Zwift anyway so I don't care as much.

I think what would be quite useful is having a button for calibrating instead of running it automatically on start. That way you could 1) calibrate only when you need to and 2) repeat if you are not happy (without turning everything off and on again). This would be trivial from a Genius perspective, but would need some changes to the rest of FortiusANT. @WouterJD What do you think about this?

Sigfreid74 commented 3 years ago

Thanks for explaining the calibration procedure. Something I noticed years ago in TTS4 was if I started a roll down a big enough slope in a RLV, the bike would just get faster and faster until it reached max speed. Maybe we could have a state setup up by fortiusANT (under a pre-calibration task) that would set a 5 minute slope of say -15%. All it would need to get going would be a nudge on the wheel (like the calibration task). After this warm up, the calibration could be done by pressing a "genius calibrate" button. Is there a way I can test a mode for the genius with a big negative slope?

switchabl commented 3 years ago

Is there a way I can test a mode for the genius with a big negative slope?

Since you are using GoldenCheetah, you can just start a manual workout and set the slope to -15%. FortiusANT manual mode doesn't really work right now without the remote control.

The behaviour you describe suggests that the brake is confusing itself into thinking there is a non-zero cadence because of some unbalance or resonance. So that may not be reproducible for everyone... And spinning up to 50km/h is maybe not ideal because the tire might get hotter than in normal use (also it is kind of scary from a safety perspective). But I will investigate, maybe there is something to be done here.

kristofski commented 3 years ago

Hello,

I have a Tacx Ironman T2050, which is also a T2021 brake. So I started experimenting with this cool piece of software.

I didn't install Python on my PC, I'm using the compiled FortiusANT.exe. However, when I run the command FortiusANT.exe -t Genius I get an error that Genius is an invalid value. I am working with the exe of the genius branch.

Is this parameter not yet available in the compiled version?

Regards

WouterJD commented 3 years ago

Hi @kristofski Welcome to the FortiusANT community


I'm always curious to know who I communicate with, where FortiusANT is used and what configuration is used. Please tell me what bundle did you buy, and what brake and what head unit do you use? I would therefore appreciate that you introduce yourself; perhaps leave a comment under issue #14.


switchabl commented 3 years ago

@kristofski The compiled exe file is not up-to-date unfortunately. I have now set up the autobuild from #160 for the genius branch, so you can download a current version here: https://github.com/switchabl/FortiusANT/actions/runs/428285661 https://github.com/switchabl/FortiusANT/actions/runs/429355188 (Artifacts -> FortiusANT)

The recommended command-line for testing with the Genius is -a -g - H0 -t Genius.

@m472 Since we are getting closer to merging into the main branch and FortiusANT is going to be GPL soon (#169): please confirm that you are ok with including your code under the terms of GNU GPL v3 in FortiusANT.

m472 commented 3 years ago

@switchabl first of all great work! I have not tested your code yet but what I have seen so far looks and sounds good.

I have no objections to put my contributions under the GPL v3.

kristofski commented 3 years ago

I've been experimenting a bit today. I'm already a step further, I don't get the error anymore when I run the command. So this looks good!

Then I've been trying to add my trainer as a controllable device in Zwift. But my trainer doesn't appear. Is this the way to add my trainer in Zwift? I'm kinda new to Zwift too.

This is the output of the console when I startup the FortiusAnt executable:

fortiusant

switchabl commented 3 years ago

@kristofski Yes, it should show up as a Controllable in Zwift. What ANT usb dongles are you using (just to make sure: you need two, one for FortiusANT and one for Zwift)? Are you running FortiusANT and Zwift on the same PC?

If you can't get it to pair, run FortiusANT.exe -a -g - H0 -t Genius -d 127 to generate a logfile and upload that. Then I can take a look at it.

kristofski commented 3 years ago

@switchabl Thanks for your quick reply! I'm using it with the Tacx T2028 ANT+ USB Antenna that was originally provided with my trainer. I'm trying the setup with one pc and my smartphone. On my pc I run FortiusAnt, and on my smartphone I run Zwift. As I understood from the manual, this is one of the possible setups. Or am I getting it wrong?

afbeelding

switchabl commented 3 years ago

@kristofski Ah, I see. Unfortunately, even if your Smartphone has ANT built-in (many Samsung phones do), Zwift support for ANT on Android is limited and does not currently support pairing to ANT "Controllables": https://forums.zwift.com/t/ant-update/195323/119

If you really want to run Zwift on your phone, the only option is probably the North Pole Engineering CABLE, a device that translates the ANT signal to Bluetooth. Native Bluetooth support through FortiusANT may or may not be available at some point in the future.

Otherwise you are stuck with running Zwift on the PC and you need a second ANT dongle (avoid "CYCPLUS", "ANSELF" and similar looking dongles, they cause problems; best is a ANTUSB-m they are sold under many brands: Garmin, LifeLine, hLine, Saris, Elite, Rotor, Wahoo, CycleOps among others. The older ones labelled Garmin, Suunto or Tacx are fine too if you can get a cheap used one).

You could also take a look at Rouvy, which does support ANT trainers on Android (provided the phone does).

kristofski commented 3 years ago

@switchabl Alright, interesting. Apparently it's also possible with the viiiiva heart rate monitor that can act as a ANT+ to Bluetooth bridge.

Okay, in that case I'm going to buy an ANT usb dongle and run Zwift on my PC. Thanks for the info.

switchabl commented 3 years ago

@kristofski Not sure about the Viiiiva, according to https://support.thesufferfest.com/hc/en-us/articles/360015030400-The-4iiii-Viiiiva-Heart-Rate-Monitor-Ant-to-Bluetooth-Bridge it may suffer from the same limitation:

Please note: The Viiiiva can be used to transmit power, cadence, and speed, but will not transmit an FE-C signal. This means that you cannot control a smart trainer that is connected through the Viiiiva bridge.

fab31 commented 3 years ago

Hi,

First of all I would warmly thank you for the job done. Garmin abandoned us, so I was really pleased when I found your page.

I am running your last update on Linux Ubuntu 20.04. After many tries,I get same results, the genius is not found. I would be please to try with a windows OS, but I do not have it.

Here is my log file linked to the command : sudo python3 ./FortiusANT/pythoncode/FortiusAnt.py -a -g -H0 -A -t Genius -d127

21:18:28,973: FortiusAnt GUI started in child-process 21:18:29,291: Check FortiusAntTitle.py on github 21:18:29,291: Version=Fortius Antifier v4.0, on github=Fortius Antifier v4.0. 21:18:29,433: SetValues() done in 101 ms 21:18:29,558: mp-GuiMessageToMain(conn, 19592, True) 21:18:30,148: mp-GuiAnswerFromMain(conn) returns (19596, (None, 'Using Dynastream Innovations dongle', None)) 21:18:30,155: mp-GuiAnswerFromMain(conn) returns (19596, ('No Tacx trainer found', None, None)) 21:18:30,156: mp-GuiAnswerFromMain(conn) returns (19596, (None, None, 'Heartrate expected from ANT+ HRM')) 21:18:30,156: mp-GuiAnswerFromMain(conn) returns (19592, False) 21:18:34,752: mp-GuiMessageToMain(conn, 19592, True) 21:18:34,761: mp-GuiAnswerFromMain(conn) returns (19596, ('No Tacx trainer found', None, None)) 21:18:34,761: mp-GuiAnswerFromMain(conn) returns (19596, (None, None, 'Heartrate expected from ANT+ HRM')) 21:18:34,762: mp-GuiAnswerFromMain(conn) returns (19592, False) 21:18:37,782: mp-GuiMessageToMain(conn, 19592, True) 21:18:37,791: mp-GuiAnswerFromMain(conn) returns (19596, ('No Tacx trainer found', None, None)) 21:18:37,791: mp-GuiAnswerFromMain(conn) returns (19596, (None, None, 'Heartrate expected from ANT+ HRM')) 21:18:37,791: mp-GuiAnswerFromMain(conn) returns (19592, False) 21:18:40,768: mp-GuiMessageToMain(conn, 19590, False) 21:18:40,768: FortiusAnt GUI

ended

Thank you again.

fab

switchabl commented 3 years ago

@fab31 That looks like the GUI logfile, there should be another (bigger) one, can you please upload that one? It works fine for me on Fedora, no reason it shouldn't be possible to make it run under Ubuntu.

fab31 commented 3 years ago

@fab31 That looks like the GUI logfile, there should be another (bigger) one, can you please upload that one? It works fine for me on Fedora, no reason it shouldn't be possible to make it run under Ubuntu.

Hi @switchabl, thank you for your answer.

Here is the log file

09:59:25,866: FortiusANT started 09:59:25,866: -a 09:59:25,866: -A 09:59:25,866: -c False 09:59:25,866: -d 127 (0b1111111) 09:59:25,866: -D None 09:59:25,866: -g 09:59:25,866: -H 0 09:59:25,866: -p 1.0 09:59:25,866: -t Genius 09:59:25,866: ------------------ 09:59:25,866: Python version started 09:59:25,866: Version info for the components 09:59:26,116: Check FortiusAntTitle.py on github 09:59:26,117: Version=Fortius Antifier v4.0, on github=Fortius Antifier v4.0. 09:59:26,117: Fortius Antifier v4.0 09:59:26,117: FortiusAnt = 2020-11-18 09:59:26,117: antDongle = 2020-11-18 09:59:26,118: antFE = 2020-05-07 09:59:26,118: antHRM = 2020-05-07 09:59:26,118: antPWR = 2020-06-11 09:59:26,118: debug = 2020-11-13 09:59:26,118: FortiusAntBody = 2020-12-10 09:59:26,118: FortiusAntCommand = 2020-12-10 09:59:26,118: FortiusAntGui = 2020-11-04 09:59:26,118: logfile = 2020-11-25 09:59:26,118: RadarGraph = 2020-05-07 09:59:26,118: structConstants = 2020-01-25 09:59:26,118: TCXexport = 2020-11-15 09:59:26,119: usbTrainer = 2020-12-10 09:59:26,119: argparse = 1.1 09:59:26,119: numpy = 1.17.4 09:59:26,119: os = posix 09:59:26,119: pickle = 4.0 09:59:26,119: platform = 1.0.8 09:59:26,119: sys (python) = 3.8.5 (default, Jul 28 2020, 12:59:40) [GCC 9.3.0] 09:59:26,119: usb = 1.1.0 09:59:26,119: wx = 4.0.7 09:59:26,119: FortiusANT code flags 09:59:26,119: useMultiProcessing = True 09:59:26,120: ------------------ 09:59:26,778: mp-MainCommandFromGui() returns 19592 09:59:26,778: Scan for hardware 09:59:26,778: Get Dongle 09:59:26,778: GetDongle - Check for dongle 4100 Older 09:59:26,832: GetDongle - Check for dongle 4105 Garmin 09:59:26,833: GetDongle - Check for dongle 4104 Suunto 09:59:26,835: GetDongle - Try dongle: manufacturer=Dynastream Innovations, product= ANT USBStick2, vendor= 0xfcf, product=0x1008(4104) DEVICE ID 0fcf:1008 on Bus 002 Address 003 ================= bLength : 0x12 (18 bytes) bDescriptorType : 0x1 Device bcdUSB : 0x200 USB 2.0 bDeviceClass : 0x0 Specified at interface bDeviceSubClass : 0x0 bDeviceProtocol : 0x0 bMaxPacketSize0 : 0x20 (32 bytes) idVendor : 0x0fcf idProduct : 0x1008 bcdDevice : 0x100 Device 1.0 iManufacturer : 0x1 Dynastream Innovations iProduct : 0x2 ANT USBStick2 iSerialNumber : 0x3 123 ¡¢£¤ÀÁÂÃDSI bNumConfigurations : 0x1 CONFIGURATION 1: 100 mA ================================== bLength : 0x9 (9 bytes) bDescriptorType : 0x2 Configuration wTotalLength : 0x20 (32 bytes) bNumInterfaces : 0x1 bConfigurationValue : 0x1 iConfiguration : 0x2 ANT USBStick2 bmAttributes : 0x80 Bus Powered bMaxPower : 0x32 (100 mA) INTERFACE 0: Vendor Specific =========================== bLength : 0x9 (9 bytes) bDescriptorType : 0x4 Interface bInterfaceNumber : 0x0 bAlternateSetting : 0x0 bNumEndpoints : 0x2 bInterfaceClass : 0xff Vendor Specific bInterfaceSubClass : 0x0 bInterfaceProtocol : 0x0 iInterface : 0x2 ANT USBStick2 ENDPOINT 0x81: Bulk IN =============================== bLength : 0x7 (7 bytes) bDescriptorType : 0x5 Endpoint bEndpointAddress : 0x81 IN bmAttributes : 0x2 Bulk wMaxPacketSize : 0x40 (64 bytes) bInterval : 0x1 ENDPOINT 0x1: Bulk OUT =============================== bLength : 0x7 (7 bytes) bDescriptorType : 0x5 Endpoint bEndpointAddress : 0x1 OUT bmAttributes : 0x2 Bulk wMaxPacketSize : 0x40 (64 bytes) bInterval : 0x1 09:59:26,840: GetDongle - Detach kernel drivers 09:59:26,840: GetDongle - Set configuration 09:59:26,840: GetDongle - Send reset string to dongle 09:59:27,342: GetDongle - Read answer 09:59:27,343: devAntDongle.read(0x81,1000,20) returns ["a4", "01", "6f", "00", "ca"] 09:59:27,345: Dongle receive: synch=0xa4, len= 1, id=0x6f Start up , check=0xca, info="00" 09:59:27,369: AntDongle.Read() returns: ["a4 01 6f 00 ca"] 09:59:27,370: GetDongle - Check for an ANT+ reply 09:59:27,370: GetDongle() returns: Using Dynastream Innovations dongle 09:59:27,370: mp-MainDataToGUI(19596, (None, Using Dynastream Innovations dongle, None)) 09:59:27,371: Get Tacx Trainer 09:59:27,371: clsTacxTrainer.GetTrainer() 09:59:27,371: GetTrainer - Check for trainer 0x1902 09:59:27,373: GetTrainer - Check for trainer 0x1904 09:59:27,374: GetTrainer - Check for trainer 0x1932 09:59:27,376: GetTrainer - Check for trainer 0x1942 09:59:27,377: GetTrainer - Check for trainer 0xe6be 09:59:27,378: No Tacx trainer found 09:59:27,379: GetTrainer() returns, trainertype=0x0 09:59:27,379: clsTacxTrainer.init() 09:59:27,379: mp-MainDataToGUI(19596, (No Tacx trainer found, None, None)) 09:59:27,379: mp-MainDataToGUI(19596, (None, None, Heartrate expected from ANT+ HRM)) 09:59:27,379: Scan for hardware - end 09:59:27,379: mp-MainRespondToGUI(19592, False)

simonperneel commented 3 years ago

Hi guys

So I have been riding the past days with my Genius and FortiusAnt and had a great experience. Everything works fine for me. Pairing with the trainer usually goes fast (+-5s). The only thing that is annoying to me is that it needs to re-calibrate every time. When I start my workout, my tire is cold and it gives a calibration value of around +18. After some minutes, the tire gets hot and the power is not quite right anymore. I restart the trainer then to re-calibrate with a hot tire and power is fine then.

I think it would be better to have a button in FortiusAnt to choose when you calibrate. In this way, I could calibrate once when my tyre is hot and use the same calibration value for the next ride. Also, the cadence that shows up in FortiusAnt is around 7rpm higher when my Garmin reports a cadence of 90rpm. This is not a big deal of course, I just wanted to mention it.

Thank you all for your efforts and to give my Tacx a second life!

switchabl commented 3 years ago

@fab31 Thanks, that is more helpful (but a bit baffling). It looks like it is looking for a USB trainer even though -t Genius is specified. I have to look at the code and think how that can happen and how to proceed.

@simonperneel That is good news, I have gotten in a few successful rides myself.

HanWAut commented 3 years ago

Hello everyone, just made it to get the FortiusANT running. Took me a while to set up Python, pip & co but finally everything is working properly. My plan was to use my Wahoo Bolt Elemnt for training, as I don't have any account for zwift, cheeta etc. Looks good so far, the Bolt recognizes the training unit provided by FortiusANT. I'll go for a spin tomorrow - thanks a lot for your efforts!

fab31 commented 3 years ago

@fab31 Thanks, that is more helpful (but a bit baffling). It looks like it is looking for a USB trainer even though -t Genius is specified. I have to look at the code and think how that can happen and how to proceed.

Hi,

Good news thanks you.

Sigfreid74 commented 3 years ago

Thanks for the suggestions on Calibration

I am happy to say I have found a great routine to set up my ride. first I click on a shortcut with the command line: FortiusAnt.py -a -g -H0 -n -t Genius Then I start Golden Cheetah and run a workout I made called downhill.crs ( it contains a .5km course of -40% slope) just pedal to get the speed over 30km/h and it does the rest - runs for a couple of minutes. Then I close the fortiusant program and click on a second shortcut which does the calibration FortiusAnt.py -a -g -H0 -t Genius Back to Golden Cheetah and it is good to go! Much quicker process than even waiting for TTS4 to start! Thanks Team

ps is there a switch to disable the broadcasting of the speed/cadence sensor (SCS) part of the trainer?

WouterJD commented 3 years ago

Welcome @HanWAut Welcome to the FortiusANT community


I'm always curious to know who I communicate with, where FortiusANT is used and what configuration is used. Please tell me what bundle did you buy, and what brake and what head unit do you use? I would therefore appreciate that you introduce yourself; perhaps leave a comment under issue #14.


WouterJD commented 3 years ago

@switchabl did you see my email; how for are we and are we ready to integrate - what do you suggest?

switchabl commented 3 years ago

@WouterJD I have sent you a reply.

Short summary for everyone else: my suggestion is to bring the genius branch to version 4.1 in the next few days and create an updated pull request for Wouter to review and merge.

@Sigfreid74 This is interesting! Maybe it can be built-in in eventually (as an optional feature), but I need to experiment a bit myself so I suggest we do not delay merging for this.

@fab31 I don't really have an answer yet, other than I am having some problems getting it to work on Ubuntu myself and there has been some discussion about that in #176. You could try the installation instructions I posted in that issue, replacing step 2 with

git clone https://github.com/switchabl/FortiusANT.git
git checkout genius
cd FortiusANT

to make sure we are on the same page.

fab31 commented 3 years ago

``@fab31 I don't really have an answer yet, other than I am having some problems getting it to work on Ubuntu myself and there has been some discussion about that in #176. You could try the installation instructions I posted in that issue, replacing step 2 with

Thank you. After Reading all comments in #176 , I am going to install Windows :-), and will try Linux later. Thank you for your support.

switchabl commented 3 years ago

The Genius is now supported through the bushido branch at https://github.com/switchabl/FortiusANT/tree/bushido which has been updated to the latest version of FortiusANT and prepared for merging (PR #190) into the master branch.

A current Windows binary is available here: https://github.com/switchabl/FortiusANT/suites/1744033968/artifacts/33117119 (need to be logged in to download)

Genius support seems to be fairly reliable now (I have been using it regularly myself) and this issue should be closed as soon as #190 is merged. If you encounter any issues at a later point, do not hesitate to create a new issue.

WouterJD commented 3 years ago

Implemented in release 5.0; experiences can be shared here.

Sigfreid74 commented 3 years ago

So far the genius implementation works well. My only problem is setting some way of forcing a calibration. Once the calibration has occured (usually when the tyre is cold) the value is way too high. I cannot initiate another calibration if I have adjusted the tyre pressure or something else like switching bikes around.. I think a "Calibrate Genius" button similar to the "Runoff" button within the fortiusANT interface would be ideal, but I would settle for a command line switch to force a re-calibration. I would love to help code it but I am too much of a novice amateur.

switchabl commented 3 years ago

@Sigfreid74 Yes, I find this annoying too. The plan is to add a "Calibration" button eventually, but this will be a somewhat larger change. In the meantime, you will unfortunately need to turn the Genius off and on again when you want to recalibrate.

WouterJD commented 3 years ago

For tye Fortius Start/Stop will cause calibration. I did not check the code; would that be an idea?

switchabl commented 3 years ago

@WouterJD That should be easily done. I originally decided against that because I didn't really see much need for re-calibrating after a succesful calibration (and was getting annoyed by unnecessary re-calibrations). But I ride the Genius for a couple of minutes before even starting FortiusANT, so I don't have the cold tyre problem. If people prefer this behaviour (and it is more in line with the Fortius), I am happy to change it. Opinions? @Sigfreid74 and others

WouterJD commented 3 years ago

My view is:

If you want to calibrate: press Stop/Start

Note that calibration can be cancelled with Cancel button; I should check what the calibration value then is.

switchabl commented 3 years ago

That is mostly how it should work already with the Genius. The difference is that the brake stores the calibration value and status internally and the first step in "Calibrate" is to check that. If the brake reports it already has a valid calibration, calibration is skipped. This check could of course be removed.

Turning the brake off and on again resets the calibration status, so a new calibration will be triggered when you "Start" again.

Cancelling the calibration should be possible with the Genius (I think there is a command for that), but I have not implemented that yet. Problem is also that there is no cancel button. You can let it time out (either 60s or 120s I think).

What I really want to do is this:

That should get us a big step closer to a modern smart trainer experience. Let me know what you think. I could probably get working on a new branch in the next few days. I now have all the (relevant) trainers and head-units available, so that should make it a lot eaiser to collect data and debug (and less likely to break something by accident).

In the meantime I can of course make a small pull-request to remove the calibration check for the Genius if you and @Sigfreid74 think that would be helpful.

Sigfreid74 commented 3 years ago

Switchabl I think your ultimate proposal is ideal! I don't think the interim pull request is required. I will try just turning the Genius on/off again to re-initiaite calibration. Thanks for the tip. The power and wind resistance values now feel spot on!

smithnb commented 3 years ago

Hi,

I was pleasantly surprised to stumble over this solution to using older Tacx trainers with the online platforms like Rouvy and Zwift, so I've dug my i-Genius T2021 trainer out of the shed, followed the instructions for getting it connected in a Win 10 machine, and then have been able to get it connected to Rouvy. All seems fairly straight forward and functional for a while and then I get a set of errors in the Cli: _18:04:26,998: FortiusANT broadcasts data as an ANT+ Controlled Fitness Equipent device (FE-C), id=57591 18:04:27,200: FortiusANT receives data from an ANT+ Heart Rate Monitor (HRM display), any device 18:04:27,452: FortiusANT receives data from an ANT Tacx Genius (GNS Brake), any device 18:04:27,737: FortiusANT broadcasts data as an ANT+ Bicycle Power Sensor (PWR), id=57596 18:04:27,956: FortiusANT broadcasts data as an ANT+ Speed and Cadence Sensor (SCS), id=57595 18:04:28,159: FortiusANT receives commands from an ANT+ Generic Remote Control Exception in thread Thread-1: Traceback (most recent call last): File "threading.py", line 932, in _bootstrap_inner File "threading.py", line 870, in run File "FortiusAnt.py", line 387, in Tacx2DongleThread File "FortiusAnt.py", line 126, in Tacx2Dongle File "FortiusAntBody.py", line 528, in Tacx2Dongle File "FortiusAntBody.py", line 1214, in Tacx2DongleSub File "antDongle.py", line 2354, in msgPage71CommandStatus struct.error: required argument is not an integer

I haven't been able to determine what I do if anything to cause it to happen as yet. Stopping and starting things from the UI fixes it for a bit and the the error returns. Sorry if this has been discussed else where, I did try searching before posting. More than happy to help debug, provide more info etc.

Thanks, Nigel

switchabl commented 3 years ago

@smithnb I think I have seen this a couple of times myself but could never reproduce it properly. If you can manage to get me a full debug log (run with -d 127 option) of this, I suspect it should be a rather easy fix.

EDIT: Actually after playing a bit with the ANT+ simulator I was able to reproduce it myself. So hopefully I won't even need the debug log.

switchabl commented 3 years ago

@smithnb #222 should fix the crash, please test (a Windows binary is available here)

smithnb commented 3 years ago

@smithnb #222 should fix the crash, please test (a Windows binary is available here)

Hi, I've tried this fix binary and can't get it to crash. I believe FortiusAnt.2021-01-26 12-17-31.log FortiusAntGUI.2021-01-26 12-17-32.log

I have logged the crash on the earlier version attached.

smithnb commented 3 years ago

Now that I have a stable build of FortiusAnt running, I have moved on to the next stage - connecting to Rouvy and doing a training session. At this point I run into two further issues: I can connect to the trainer (via fortiusant obviously) from Rouvy and/or my Garmin 1030 computer, and should be able to adjust the resistance of the trainer. FortiusAnt displays this change in resistance but the actual resistance of the trainer doesn't actually change. The second issue is I get a Cadence reading while the trainer spins up during it's calibration phase, but not while I'm actually pedalling on the trainer. Is any of this familiar to others? I'm not able to verify if it is in fact a problem with my Trainer as I no longer have TTS 4 installed and believe that is now no longer possible on Win10 unless someone can tell me otherwise.

Any suggestions welcome.

Nigel

switchabl commented 3 years ago

@smithnb Please upload a debug log (including some pedaling, changing resistance with either Rouvy or the Garmin) so I can see if there are any obvious issues.

The cadence issue in particular is strange and may suggest a problem with the trainer. So it could be helpful if you can get TTS4 running to check if that works. It works fine on Windows 10 for me (and others). The only problem is that the activation servers are no longer available. But I think you can run it in trial mode for a few days?

rcerrie commented 3 years ago

Just downloaded FortiusAnt 5.1 to get my Genius going on my win10 laptop. Configured the windows app settings to specify the Genius Tacx type in the dropdown menu. But still cannot find the Genius trainer. I am using a Dynastream Ant+ dongle. Any suggestions?

switchabl commented 3 years ago

@rcerrie Please enable the full debug log (Settings -> Developer arguments -> -d = 127) and upload the log files. Some things I can think of:

WouterJD commented 3 years ago

@switchabl I think it's become quiet on this issue; seems we can consider Genius to be fully supported. If agree, we can close.

trygvelu commented 3 years ago

I'll add my experiences with testing lately. Running in windows 10 with 2 ANT dongles is the most reliable option for me. I have done some testing with Raspberry pi devices, mostly headless, since wx doesn't run stable on my rPi0. With headless, I have run successfully with ANT and BLE towards Zwift running on the Win10 machine, but I often have problems with the calibration procedure, and also with pairing with the Genius brake. Sometimes I have to power cycle the brake, and restart FortiusAnt to get a connection. Sometimes I start TTS4 to run through the calibration, then exit and start FortiusAnt (headless). I'm not sure if there are many others using the Genius brake without GUI. Maybe it works for everyone else, and it's just my setup creating problems. Another potential issue: has work been done on supporting the headunit accessory (the round button interface) for the Genius?

Paulospg99 commented 3 years ago

I use the Genius as well with 2 Ant dongles, when I turn on the FortiusAnt, automatically do the pair and the calibration (yep I manually do a short spin on the rear wheel). Everything has been working well so far.

A quarta, 17 de mar de 2021, 09:57, trygvelu @.***> escreveu:

I'll add my experiences with testing lately. Running in windows 10 with 2 ANT dongles is the most reliable option for me. I have done some testing with Raspberry pi devices, mostly headless, since wx doesn't run stable on my rPi0. With headless, I have run successfully with ANT and BLE towards Zwift running on the Win10 machine, but I often have problems with the calibration procedure, and also with pairing with the Genius brake. Sometimes I have to power cycle the brake, and restart FortiusAnt to get a connection. Sometimes I start TTS4 to run through the calibration, then exit and start FortiusAnt (headless). I'm not sure if there are many others using the Genius brake without GUI. Maybe it works for everyone else, and it's just my setup creating problems. Another potential issue: has work been done on supporting the headunit accessory (the round button interface) for the Genius?

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

WouterJD commented 3 years ago

Hi @Paulospg99 good to hear from you again; thanks for feedback!


I'm always curious to know who I communicate with and where FortiusANT is used. I would therefore appreciate that you introduce yourself; perhaps leave a comment under issue #14.


jonojpsg commented 3 years ago

Hi all, I am very new to GitHub and was actually just searching for a way to connect my Tacx Genius to Zwift etc when I came across this thread! Looks like you’ve found a workaround to get this happening - my question is, without ANY experience in programming, is it possible for me to grab what you’ve done here and apply it to my Tacx? Would REALLY appreciate any assistance you can give me...oh, and part of the backstory, I bought the trainer off gumtree and when I went to install the Tacx software, it had expired! So do I need to actually install the software before I can use the workaround you have been discussing here? Thanks in anticipation Jonathon