[WIP] uhid(4): Support for the Microsoft Xbox360 gamepad
Ed Schouten
ed at fxq.nl
Thu Dec 8 14:56:48 PST 2005
Hello,
Last week I heard that Microsoft's new Xbox360 uses regular USB
connectors for their gamepads. Because the guys at Xbox-Linux.org
already wrote a driver for Linux, I decided to buy one and write a
FreeBSD driver for it.
The Xbox360 gamepad is like any normal HID gamepad, except that it has
been slightly crippled by Microsoft:
- They don't use the regular HID interface class, but the vendor
specific class in combination with an interface subclass.
- Their device does not contain a HID report descriptor.
The first problem was easy to solve; I just changed the USB_MATCH code
to accept the UICLASS_VENDOR in combination with the interface subclass
and interface protocol. Limiting vendor and product ID's should be
avoided because that would block third party gamepads.
The second problem was a little trickier because I had no experience
with writing report descriptors. After taking a look at examples and
reading documents at usb.org, I hacked one together. It's quite nice the
FreeBSD driver was somewhat prepared for custom report descriptors (the
Wacom Graphire gets a custom report descriptor for example).
The result can be found here:
http://g-rave.nl/files/xbox/freebsd-xbox360-gamepad.diff
There are only some small unfinished parts though:
- I don't know the output format state; I cannot control the rumbles or
the LEDs on the gamepad (I constantly see green leds flashing)
- For some reason, I can only read data when polling the gamepad.
`usbhidctl -f <device> -al` does not return any output.
Useful hints would really be appreciated; I'm not a real wizard when it
comes to USB ;-)
Yours,
--
Ed Schouten <ed at fxq.nl>
WWW: http://g-rave.nl/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-hackers/attachments/20051208/5a037655/attachment.bin
More information about the freebsd-hackers
mailing list