![David Herrmann](/assets/img/avatar_default.png)
The analog sticks of the pro-controller might report slightly off values. To guarantee a uniform setup, we now calibrate analog-stick values during pro-controller setup. Unfortunately, the pro-controller fails during normal EEPROM reads and I couldn't figure out whether there are any calibration values stored on the device. Therefore, we now use the first values reported by the device (iff they are not _way_ off, which would indicate movement) to initialize the calibration values. To allow users to change this calibration data, we provide a pro_calib sysfs attribute. We also change the "flat" values so user-space correctly smoothes our data. It makes slightly off zero-positions less visible while still guaranteeing highly precise movement reports. Note that the pro controller reports zero-positions in a quite huge range (at least: -100 to +100). Reported-by: Rafael Brune <mail@rbrune.de> Tested-by: Rafael Brune <mail@rbrune.de> Signed-off-by: David Herrmann <dh.herrmann@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
78 lines
3.5 KiB
Plaintext
78 lines
3.5 KiB
Plaintext
What: /sys/bus/hid/drivers/wiimote/<dev>/led1
|
|
What: /sys/bus/hid/drivers/wiimote/<dev>/led2
|
|
What: /sys/bus/hid/drivers/wiimote/<dev>/led3
|
|
What: /sys/bus/hid/drivers/wiimote/<dev>/led4
|
|
Date: July 2011
|
|
KernelVersion: 3.1
|
|
Contact: David Herrmann <dh.herrmann@googlemail.com>
|
|
Description: Make it possible to set/get current led state. Reading from it
|
|
returns 0 if led is off and 1 if it is on. Writing 0 to it
|
|
disables the led, writing 1 enables it.
|
|
|
|
What: /sys/bus/hid/drivers/wiimote/<dev>/extension
|
|
Date: August 2011
|
|
KernelVersion: 3.2
|
|
Contact: David Herrmann <dh.herrmann@gmail.com>
|
|
Description: This file contains the currently connected and initialized
|
|
extensions. It can be one of: none, motionp, nunchuck, classic,
|
|
motionp+nunchuck, motionp+classic
|
|
motionp is the official Nintendo Motion+ extension, nunchuck is
|
|
the official Nintendo Nunchuck extension and classic is the
|
|
Nintendo Classic Controller extension. The motionp extension can
|
|
be combined with the other two.
|
|
Starting with kernel-version 3.11 Motion Plus hotplugging is
|
|
supported and if detected, it's no longer reported as static
|
|
extension. You will get uevent notifications for the motion-plus
|
|
device then.
|
|
|
|
What: /sys/bus/hid/drivers/wiimote/<dev>/devtype
|
|
Date: May 2013
|
|
KernelVersion: 3.11
|
|
Contact: David Herrmann <dh.herrmann@gmail.com>
|
|
Description: While a device is initialized by the wiimote driver, we perform
|
|
a device detection and signal a "change" uevent after it is
|
|
done. This file shows the detected device type. "pending" means
|
|
that the detection is still ongoing, "unknown" means, that the
|
|
device couldn't be detected or loaded. "generic" means, that the
|
|
device couldn't be detected but supports basic Wii Remote
|
|
features and can be used.
|
|
Other strings for each device-type are available and may be
|
|
added if new device-specific detections are added.
|
|
Currently supported are:
|
|
gen10: First Wii Remote generation
|
|
gen20: Second Wii Remote Plus generation (builtin MP)
|
|
balanceboard: Wii Balance Board
|
|
|
|
What: /sys/bus/hid/drivers/wiimote/<dev>/bboard_calib
|
|
Date: May 2013
|
|
KernelVersion: 3.11
|
|
Contact: David Herrmann <dh.herrmann@gmail.com>
|
|
Description: This attribute is only provided if the device was detected as a
|
|
balance board. It provides a single line with 3 calibration
|
|
values for all 4 sensors. The values are separated by colons and
|
|
are each 2 bytes long (encoded as 4 digit hexadecimal value).
|
|
First, 0kg values for all 4 sensors are written, followed by the
|
|
17kg values for all 4 sensors and last the 34kg values for all 4
|
|
sensors.
|
|
Calibration data is already applied by the kernel to all input
|
|
values but may be used by user-space to perform other
|
|
transformations.
|
|
|
|
What: /sys/bus/hid/drivers/wiimote/<dev>/pro_calib
|
|
Date: October 2013
|
|
KernelVersion: 3.13
|
|
Contact: David Herrmann <dh.herrmann@gmail.com>
|
|
Description: This attribute is only provided if the device was detected as a
|
|
pro-controller. It provides a single line with 4 calibration
|
|
values for all 4 analog sticks. Format is: "x1:y1 x2:y2". Data
|
|
is prefixed with a +/-. Each value is a signed 16bit number.
|
|
Data is encoded as decimal numbers and specifies the offsets of
|
|
the analog sticks of the pro-controller.
|
|
Calibration data is already applied by the kernel to all input
|
|
values but may be used by user-space to perform other
|
|
transformations.
|
|
Calibration data is detected by the kernel during device setup.
|
|
You can write "scan\n" into this file to re-trigger calibration.
|
|
You can also write data directly in the form "x1:y1 x2:y2" to
|
|
set the calibration values manually.
|