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

Gyro Not Working #1

Open
gusdleon opened this issue Jul 7, 2020 · 2 comments
Open

Gyro Not Working #1

gusdleon opened this issue Jul 7, 2020 · 2 comments

Comments

@gusdleon
Copy link

gusdleon commented Jul 7, 2020

I'm I love your project :)
trying to make the gyro work, but I can't figure it out what is the packet from the computer to the controller to start sending data of the gyroscope,

it is possible to you that comprehends better the packets to implement a way the ESPto detect the press of a button and send the configuration, and then start getting the data of the gyro?

Thanks :)

@g3gg0
Copy link
Owner

g3gg0 commented Jul 7, 2020

thank you! :)
unfortunately I wasn't able to get the gyro data either.

i thought about emulating the steam controller and log all data the computer sends.
but this isnt a friday afternoon-task :)
and i am afraid it will raise more questions than it actually answers.

edit: oh and i played with bits in startReportCommand which did not reveal any additional packets.

@gusdleon
Copy link
Author

gusdleon commented Jul 8, 2020

Oh thank you for the answer,

I made some testing and I think I know why the controller doesn't send data of the Gyro by default.

I think its because a feature of the controller, I think Valve call it "Live Firmware" or "Real Time Firmware", I'm not sure about the name and now I search for it, I can't find any info about it, probably the name its mentioned only in a video.

And for sure the steam client sends a lot data on startup to enable this feature. I captured some data with Wireshark (To capture data from the USB dongle) and after that initialization made by Steam the controller starts sending the data of the gyro.

The way I captured the Packets it's:

  1. Make sure you have enabled the gyro as mouse in the desktop, either always or with a button assigned to enable it (the controller always sends the data if its assigned like a mouse), after doing this close steam completely.

  2. Leave the controller in a static plase and wait a little (20 sec it's probably enough, this because the controller stills sending data for a little while).

  3. Open WireShark and and check the box of the USB device that its the controller, and only the controller you dont want mixed data from other devices (obviously)

  4. Start capturing data, immediately you will see 3 or 4 packets from the USB Device, minimize WireShark (If it is the active windows messes with the communication between steam and the controller).

  5. Wait again a little more (this only to leave a gap before and after the data coming from steam and make more clear the reading of the data)

  6. Start steam and wait until its fully open

  7. Optionally wait a little more, then start moving the controller to capture the data from the gyro, then leave again the controller and wait again a little more (Again the wait its to leave a gap between events and make more clear what's happening)

  8. Now you can close steam and stop capturing data with Wireshark.

You will see a lot of data coming from steam to the controller the moment you start it, this data it's for sure the responsable of the controller sending data from the gyro or not.

Hope this helps. :)

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

2 participants