- 9,174
- United Kingdom
- neema_t
Here's some info, finally...
So I've been having a play around with Wireshark, basically hammering buttons and jiggling axes while it sits there logging away, as well as playing a few seconds of Assetto Corsa (which garnered 12,000 reports). Here's what I've found with regards to interrupt transfers from the G27 to PC.
The 'leftover data', i.e. data that concerns the actual inputs, looks like this when the wheel is idle:
08 00 00 e8 7f ff ff ff 73 78 9c.
And from what I've gathered so far:
08 00 00 is button states, but I'm not sure why one bit is held high. I haven't tested all of the buttons yet, in fact I've only really done the ones on the wheel.
e8 7f is the encoder counter.
ff ff ff are the pedals, accelerator, gas and clutch from left to right. They all drop to zero, of course.
73 78 is the shifter position, the first byte is the x value and 78 is y, x ranges from 2a to a4 and y ranges from ea to 03. That's interesting because I really thought the microcontroller was doing that conversion, but it's really taken straight from the ADC.
9c is unclear, but I know it changes to dc when the reverse button in the shifter is held down which means it's going from 1001 1100 to 1101 1100, so the second bit is the reverse button.
Annoyingly, there's a tiny bit of jitter in the shifter x and y values which makes the wheel spit out tons of transfers when nothing is happening, so it might be worth modifying the shifter with a switch to add some capacitance to smooth that out or just ground it completely while testing... Who knows if or when I'll get time to do that, though?
I can't make much noise now but that's some decent testing for now, not a big breakthrough but it's interesting and useful to have written down all the same.
So I've been having a play around with Wireshark, basically hammering buttons and jiggling axes while it sits there logging away, as well as playing a few seconds of Assetto Corsa (which garnered 12,000 reports). Here's what I've found with regards to interrupt transfers from the G27 to PC.
The 'leftover data', i.e. data that concerns the actual inputs, looks like this when the wheel is idle:
08 00 00 e8 7f ff ff ff 73 78 9c.
And from what I've gathered so far:
08 00 00 is button states, but I'm not sure why one bit is held high. I haven't tested all of the buttons yet, in fact I've only really done the ones on the wheel.
e8 7f is the encoder counter.
ff ff ff are the pedals, accelerator, gas and clutch from left to right. They all drop to zero, of course.
73 78 is the shifter position, the first byte is the x value and 78 is y, x ranges from 2a to a4 and y ranges from ea to 03. That's interesting because I really thought the microcontroller was doing that conversion, but it's really taken straight from the ADC.
9c is unclear, but I know it changes to dc when the reverse button in the shifter is held down which means it's going from 1001 1100 to 1101 1100, so the second bit is the reverse button.
Annoyingly, there's a tiny bit of jitter in the shifter x and y values which makes the wheel spit out tons of transfers when nothing is happening, so it might be worth modifying the shifter with a switch to add some capacitance to smooth that out or just ground it completely while testing... Who knows if or when I'll get time to do that, though?
I can't make much noise now but that's some decent testing for now, not a big breakthrough but it's interesting and useful to have written down all the same.