GSoC: Nintendo Wii Remote Device Driver

This summer David Herrmann worked in the support for the Nitendo Wii Remote Device Driver as his Google Summer of Code project.  Check his report below.

During this summer’s GSoC I’ve been working on getting Wiimote support into mainline bluez. The wiimote has a proprietary HID interface and several projects existed that allowed limited use of wiimotes under linux. With bluez-4.96 and linux-3.1 release I am proud to announce, that mainline linux now supports full wiimote access. Bluez was extended to
support binary PINs and the wiimote-pairing process so connecting wiimotes should be as easy as connecting any other bluetooth device.
With linux-3.1 release, the first basic wiimote HID device driver is introduced into the kernel. It handles wiimote I/O and provides an
input device to userspace to report button events. It also allows userspace to access the LEDs of the wiimote via led_classdev API
(sysfs via /sys/class/leds/).

Linux-3.2 will add support for additional wiimote peripherals, including the accelerometer, the IR cam, force-feedback rumble motor
and the wiimote extensions Nunchuck and Classic Controller. Current development focuses on userspace libraries and on X11 XInput2 drivers so using wiimotes will be as easy as any other input device. So stay tuned for further improvements and feel free to test development versions of the kernel device driver [1] and the userspace tools [2].

By David Herrmann

[1] http://github.com/dvdhrm/xwiimote_kernel
[2] http://github.com/dvdhrm/xwiimote