Conversation
02b9181 to
208de6a
Compare
5708e71 to
041db89
Compare
|
I hit the DS5 accelerometer saturation this PR fixes: the hidraw source forwards raw counts, Reading the new constants, the forward direction looks right but the inverses look wrong. Each pair should round-trip to 1 and neither does: Raw to SI to raw loses the resolution factor each time.
The driver applies the forward constants as raw to SI (
I have DualSense Edge hardware on Bluetooth and USB. I can test the branch and send the constant fix as a PR against it. |
|
Awesome, thanks. This PR is kinda stuck at the moment but I plan to break it up into a few separate PR's. I haven't gone through to validate all the value changes, I think I made quite a few mistakes. I'll be sure to review your input here when I'm working on the SI standardization piece. |
|
Tested motion through SDL on a ROG Ally X (BMI323) and wrote up the details in #715. Some notes that may help
|
97f4862 to
0fcfba3
Compare
Currently we don't track tasks started by manager. When InputPlumber stops the Drop::drop() callback never runs. As this will be necessary later when adding hrtimer, fix it now
0fcfba3 to
968dbce
Compare
Removes the Gamepad::Accelerometer and Gamepad::Gyro capabilities and all workarounds related to them.
Separates accel_gyro_3d and bmi_imu drivers as they have different handling requirements and refactors them to eliminate the flawed industrial-io crate. The drivers now read a single buffer. The data format is interpreted directly from the sysfs reported types. Poll rate of the driver is calculated from the set sampling rate of the source driver after attempting to set it to 200Hz. hid_sfh_driver: - Uses its built in timers for each instance, accel and gyro are separated in this configuration by the driver. - Applies a scale correction due to a flaw in the hid rdesc from adm_sfh. This is yet to be tested on Intel devices and may need some detection method or a config file flag if the intel driver doesn't have the same issue. bmi_driver: - Creates and binds an hrtimer instance that is cleaned up when the device closes. - The kernel driver provides both accel and gyro buffers on a single udev.
While at it, add hrtimer config
968dbce to
7fbac11
Compare
This PR does a major overhaul of how IMU data is managed across every aspect of InputPlumber.