Subject: Microsoft USB devices
To: None <current-users@netbsd.org>
From: Werner Backes <werner@bit-1.de>
List: current-users
Date: 11/26/2003 21:00:32
Hi,
can anyone confirm that the following devices are properly
working/non-working
in NetBSD:
- Microsoft SideEinder ForceFeedback 2 Joystick
- Microsoft Force Feedback Wheel
I'm currently focussing on the joystick. dmesg reports:
uhidev0 at uhub2 port 2 configuration 1 interface 0
uhidev0: Microsoft SideWinder Force Feedback 2 Joystick, rev 1.10/a.00,
addr 3, iclass 3/0
uhidev0: 14 report ids
uhid0 at uhidev0 reportid 1: input=12, output=15, feature=3
uhid1 at uhidev0 reportid 2: input=2, output=7, feature=4
uhid2 at uhidev0 reportid 3: input=0, output=8, feature=4
uhid3 at uhidev0 reportid 4: input=0, output=6, feature=0
uhid4 at uhidev0 reportid 5: input=0, output=3, feature=0
uhid5 at uhidev0 reportid 6: input=0, output=3, feature=0
uhid6 at uhidev0 reportid 7: input=0, output=15, feature=0
uhid7 at uhidev0 reportid 8: input=0, output=2, feature=0
uhid8 at uhidev0 reportid 10: input=0, output=3, feature=0
uhid9 at uhidev0 reportid 11: input=0, output=1, feature=0
uhid10 at uhidev0 reportid 12: input=0, output=1, feature=0
uhid11 at uhidev0 reportid 13: input=0, output=1, feature=0
uhid12 at uhidev0 reportid 14: input=0, output=4, feature=0
uhidctl reports:
# usbhidctl -f /dev/uhid0 -l -a
Joystick.Pointer.X=0
Joystick.Pointer.Y=32
Joystick.Pointer.Rz=0
Joystick.Slider=0
Joystick.Hat_Switch=2
Joystick.Button_1=1
Joystick.Button_2=0
Joystick.Button_3=0
Joystick.Button_4=0
Joystick.Button_5=0
Joystick.Button_6=1
Joystick.Button_7=0
Joystick.Button_8=0
usbhidctl: Unexpected response length: 1 != 11
The values for X/Y seem to be o.k. and change when I move the stick
but the other values don't have random values.
uhidctl -r shows some strangeness, look at the 3. "Input" line:
"Input size=0 count=1 ......" because "size=0"
Anyone has any idea what could be done to fix this?
# usbhidctl -f /dev/uhid0 -r
Report descriptor:
Collection page=Generic_Desktop usage=Joystick
Collection page=Generic_Desktop usage=Pointer
Input size=10 count=1 page=Generic_Desktop usage=X, logical range
-512..511, physical range 0..1023
Input size=10 count=1 page=Generic_Desktop usage=Y, logical range
-512..511, physical range 0..1023
Input size=0 count=1 page=Generic_Desktop usage=Rz, logical range
-32..31, physical range 0..63, unit=0x14 exp=0
End collection
Input size=7 count=1 page=Generic_Desktop usage=Slider, logical range
0..127, physical range 0..127
Input size=4 count=1 page=Generic_Desktop usage=Hat_Switch, logical
range 0..7, physical range 0..315, unit=0x14 exp=0
Input size=1 count=1 page=Button usage=Button_1, logical range 0..1,
physical range 0..1
Input size=1 count=1 page=Button usage=Button_2, logical range 0..1,
physical range 0..1
Input size=1 count=1 page=Button usage=Button_3, logical range 0..1,
physical range 0..1
Input size=1 count=1 page=Button usage=Button_4, logical range 0..1,
physical range 0..1
Input size=1 count=1 page=Button usage=Button_5, logical range 0..1,
physical range 0..1
Input size=1 count=1 page=Button usage=Button_6, logical range 0..1,
physical range 0..1
Input size=1 count=1 page=Button usage=Button_7, logical range 0..1,
physical range 0..1
Input size=1 count=1 page=Button usage=Button_8, logical range 0..1,
physical range 0..1
Collection page=Physical_Interface_Device usage=0x0021
Output size=8 count=1 page=Physical_Interface_Device usage=0x0022,
logical range 1..40, physical range 0..40
Output size=8 count=1 Array page=Physical_Interface_Device
usage=0x0028, logical range 1..12, physical range 0..12
Collection page=Physical_Interface_Device usage=0x0025
Output size=16 count=1 page=Physical_Interface_Device usage=0x0026,
logical range 0..32767, physical range 0..32767, unit=0x1003
exp=253
Output size=16 count=1 page=Physical_Interface_Device usage=0x0027,
logical range 0..32767, physical range 0..32767, unit=0x1003
exp=253
Output size=16 count=1 page=Physical_Interface_Device usage=0x0030,
logical range 0..32767, physical range 0..32767, unit=0x1003
exp=253
Output size=8 count=1 page=Physical_Interface_Device usage=0x0052,
logical range 0..255, physical range 0..10000
Output size=8 count=1 page=Physical_Interface_Device usage=0x0053,
logical range 1..8, physical range 0..8
Collection page=Physical_Interface_Device usage=0x0055
Output size=1 count=1 page=Generic_Desktop usage=X, logical range 0..1,
physical range 0..8
Output size=1 count=1 page=Generic_Desktop usage=Y, logical range 0..1,
physical range 0..8
End collection
Output size=0 count=1 page=Physical_Interface_Device usage=0x0056,
logical range 0..1, physical range 0..8
Collection page=Physical_Interface_Device usage=0x0057
Output size=8 count=1 page=Physical_Interface_Device usage=0x0001,
logical range 0..255, physical range 0..36000
Output size=8 count=1 page=Physical_Interface_Device usage=0x0002,
logical range 0..255, physical range 0..36000
End collection
Output size=16 count=1 page=Physical_Interface_Device usage=0x00a7,
logical range 0..32767, physical range 0..32767, unit=0x1003
exp=253
End collection
Total input size 11 bytes
Total output size 15 bytes
Total feature size 0 bytes
Werner