[RFC 00/12] Nintendo Wii Remote Device Driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi

I currently work on an HID driver for the Nintendo Wii Remote as Bluez GSoC
project. Following, the basic driver implementation with wiimote button-input
and led support.

The Wii Remote (further wiimote) is a small wireless device that communicates
with the host via bluetooth. It uses the HID ports but does not provide any
proper HID descriptor sets and doesn't really fit into the HID class so a
special driver is needed to control the device.

Wiimote device:
 http://en.wikipedia.org/wiki/Wiimote

Bluetooth details and reverse-engineered protocol:
 https://github.com/dvdhrm/xwiimote/blob/master/doc/PROTOCOL

Protocol details (reverse engineered):
 http://wiibrew.org/wiki/Wiimote


Since the protocol used by the wiimote is fairly complex and does not work
well with HIDINPUT, I tried to copy the hidraw driver. I need to send complex
initialization sequences and memory writes to the wiimote which do not fit
into the "struct input_event" and thus cannot be fed to the basic output_report
function.
Instead I use the same function that HIDRAW uses to insert raw hid commands.
However, this function is unbuffered so I added an own buffer to the driver.

This patchset includes basic input-button parsing and provides the information
via evdev and also provides LED support which can be set via:
 echo [1/0] >/sys/bus/hid/devices/<dev>/led1 or led2, led3, led4

My tree is available at (based on jikos/master):
 https://github.com/dvdhrm/xwiimote_kernel
It gets rebased on jikos/master regularily.

Userspace tools/documentation are available at:
 https://github.com/dvdhrm/xwiimote

This is still a work in progress. Any comments are appreciated. My tree already
includes further peripheral support for the wiimote like IR-cam and accelerometer,
however, these peripherals get fairly complex in initialization sequences and
other stuff, so I excluded them from this first patchset.

Any comments are appreciated.
Kind regards

David
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux