Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Is the Zwift Steerer code still working? #4

Open
Berg0162 opened this issue Mar 24, 2022 · 7 comments
Open

Is the Zwift Steerer code still working? #4

Berg0162 opened this issue Mar 24, 2022 · 7 comments

Comments

@Berg0162
Copy link

I have been testing the Zwift-Steerer code with little success. The code connects (successful) via the Power Pairing screen but the steering activation is hanging with "Activating" forever... No transfer of steering angles is ever reached...
I would not be surprised if the protocol has been changed with the latest Sterzo/Zwift update....? It seems that Zwift never issues the 0310 starting value on Char 31... By hand that works : I did some testing with NRF-Connect and the code reacts correctly on the offered protocol data...?
Do you have a working version at this moment?
Kind regards,
Jörgen van den Berg.

@miertink
Copy link

miertink commented Aug 11, 2022

I found the same issue, exactly as @Berg0162 described (testing with nRF).

I suppose, they did a update on ZWIFT togheter with a firmware update on STERZO to block "parallel-versions" of it:
https://zwiftinsider.com/sterzo-smart-update/

Search on the web, I found very interesting input from Keith Wakeham - see https://www.youtube.com/watch?v=BPVFjz5zD4g to get our Home Made Version "activated" on ZWIFT - if it is still to update... I can say it...

Below is the piece of example code it should be included into the code.. but nothing for me, I'm just a beginner - maybe experts could help us.

//
// it's taken a few days but the (almost!) complete list of challenge and responses that was published has,
// (after much head scratching, hair pulling etc ..) enabled me to work out the functional relationship
//

uint16_t calculate_response_code( uint16_t challenge )
{
int n = challenge % 11;
uint16_t m = (challenge << n) | (challenge >> (16 - n));
uint16_t x = ((challenge + 38550) ^ m);
return x % 65336; // this value is correct (perhaps a typo for 65536 in the original?)
}

@Flo100
Copy link

Flo100 commented Feb 7, 2023

Does anyone have some information, or better: a solution for this?

@sheitmaster
Copy link

I'm also interested in knowing this. Anyone made it work?

@vincent290587
Copy link

@wvddrss
Copy link

wvddrss commented Sep 6, 2023

@vincent290587 Thx for the contribution. Could it be that the STEERING_RX_CHAR_UUID is also changed? Or the initial notify values? Because zwift doesn't respond anything on the write characteristic.

@vincent290587
Copy link

@vincent290587 Thx for the contribution. Could it be that the STEERING_RX_CHAR_UUID is also changed? Or the initial notify values? Because zwift doesn't respond anything on the write characteristic.

I added the complete code to the repo, they indeed added more characteristics

@sheitmaster
Copy link

I know that people have been reverse engineering the zwift play controllers encryption and i think it would be a better way to go than steerzo, as you also would have the option to use the extra button functionality you don't get with a keyboard, like rideon bombs and breaking and potentially gear changes at some point.
I know this is off-topic, but i'm hoping someone makes code for a diy-zwiftplay, bechause i want the button steering and the rideon-bombs..

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants