Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 9 Dec 2005 03:13:26 +0100
From:      Hans Petter Selasky <hselasky@c2i.net>
To:        freebsd-hackers@freebsd.org, freebsd-usb@freebsd.org, Ed Schouten <ed@fxq.nl>
Subject:   Re: [WIP] uhid(4): Support for the Microsoft Xbox360 gamepad
Message-ID:  <200512090313.27392.hselasky@c2i.net>
In-Reply-To: <20051208225644.GJ15719@hoeg.nl>
References:  <20051208225644.GJ15719@hoeg.nl>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thursday 08 December 2005 23:56, Ed Schouten wrote:
> 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,

Hi,

Maybe when you have tested this patch more, then make a PR, see "man send-pr",  
using "Category: usb", so that it does not get lost.

--HPS



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200512090313.27392.hselasky>