This complements the main page.
My first buy was a no name controller at Game Stop at Euro 9.99. It's a PS-Style variatoon and includes even a force feedback (dual motor rumble).
Brandname | bigben play | |
Productname | PCPADVIBASS | |
Product-ID | BB5007Slv | (Slv = Silver) |
USB Product String | "Generic USB Joystick " | |
USB-VID | 1345 | Sino Lite Technology Corp. |
USB-PID | 1000 | |
USB-REV | 0100 | |
USB-Class(es) | 03/00/00 | |
USB-Device (Windows) | USBPDO-12 | |
gamepad.id (Firefox) | "1345-1000-Generic USB Joystick" | |
Layout Style | PS | |
Switchable | Yes: Default digital, switchable to Analogue |
=========================== USB Port2 =========================== Connection Status : Device is connected Port Chain : 1-5-1-2 ======================== USB Device ======================== +++++++++++++++++ Device Information ++++++++++++++++++ Device Description : USB Input Device Device ID : USB\VID_1345&PID_1000\7&D2AC4E7&0&2 Driver KeyName : {745a17a0-74d3-11d0-b6fe-00a0c90f57da}\0008 (GUID_DEVCLASS_HIDCLASS) Driver : C:\Windows\system32\DRIVERS\hidusb.sys (Version: 6.1.7601.17514 Date: 2010-11-21) Legacy BusType : PNPBus Class : HIDClass Service : HidUsb Enumerator : USB Location Info : Port_#0002.Hub_#0009 Location IDs : PCIROOT(0)#PCI(1202)#USBROOT(0)#USB(5)#USB(1)#USB(2) Container ID : {55389d9d-6a6d-11e3-a07b-bcaec58addcf} Manufacturer Info : (Standard system devices) Capabilities : Removable, SurpriseRemovalOK Address : 2 Problem Code : 0 Power State : D0 (supported: D0, D2, D3, wake from D0, wake from D2) Child Device 1 : HID-compliant game controller Device ID : HID\VID_1345&PID_1000\8&9594F53&0&0000 Class : HIDClass ---------------- Connection Information --------------- Connection Index : 0x02 Connection Status : 0x01 (DeviceConnected) Current Config Value : 0x01 Device Address : 0x04 Is Hub : 0x00 (no) Number Of Open Pipes : 0x01 (1) Device Bus Speed : 0x00 (Low-Speed) Pipe0ScheduleOffset : 0x00 (0) ------------------ Device Descriptor ------------------ bLength : 0x12 (18 bytes) bDescriptorType : 0x01 (Device Descriptor) bcdUSB : 0x110 (USB Version 1.10) bDeviceClass : 0x00 (defined by the interface descriptors) bDeviceSubClass : 0x00 bDeviceProtocol : 0x00 bMaxPacketSize0 : 0x08 (8 bytes) idVendor : 0x1345 idProduct : 0x1000 bcdDevice : 0x100 iManufacturer : 0x00 iProduct : 0x02 Language 0x0409 : "Generic USB Joystick " *!*CAUTION trailing space characters iSerialNumber : 0x00 bNumConfigurations : 0x01 -------------- Configuration Descriptor --------------- bLength : 0x09 (9 bytes) bDescriptorType : 0x02 (Configuration Descriptor) wTotalLength : 0x0022 (34 bytes) bNumInterfaces : 0x01 bConfigurationValue : 0x01 iConfiguration : 0x00 bmAttributes : 0x80 (Bus Powered) MaxPower : 0xFA (500 mA) ---------------- Interface Descriptor ----------------- bLength : 0x09 (9 bytes) bDescriptorType : 0x04 (Interface Descriptor) bInterfaceNumber : 0x00 bAlternateSetting : 0x00 bNumEndpoints : 0x01 bInterfaceClass : 0x03 (HID - Human Interface Device) bInterfaceSubClass : 0x00 (None) bInterfaceProtocol : 0x00 (None) iInterface : 0x00 ------------------- HID Descriptor -------------------- bLength : 0x09 (9 bytes) bDescriptorType : 0x21 (HID Descriptor) bcdHID : 0x0110 (HID Version 1.10) bCountryCode : 0x00 (00 = not localized) bNumDescriptors : 0x01 Descriptor 1: bDescriptorType : 0x22 (Class=Report) wDescriptorLength : 0x0079 (121 bytes) 05 01 Usage Page (Generic Desktop Controls) 09 04 Usage (Joystick) A1 01 Collection (Application) 09 01 Usage (Pointer) A1 00 Collection (Physical) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 35 00 Physical Minimum (0) 46 FF 00 Physical Maximum (255) 05 01 Usage Page (Generic Desktop Controls) 09 30 Usage (Direction-X) 09 31 Usage (Direction-Y) 09 32 Usage (Direction-Z) 09 35 Usage (Rotate-Z) 75 08 Report Size (8) 95 04 Report Count (4) 81 02 Input (Var) C0 End Collection 05 09 Usage Page (Buttons) 19 01 Usage Minimum (1) 29 0C Usage Maximum (12) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 0C Report Count (12) 81 02 Input (Var) 75 01 Report Size (1) 95 04 Report Count (4) 81 01 Input (Const) 05 01 Usage Page (Generic Desktop Controls) 09 39 Usage (Hat Switch) 15 00 Logical Minimum (0) 25 07 Logical Maximum (7) 35 00 Physical Minimum (0) 46 3B 01 Physical Maximum (315) 65 12 Unit (0x12) 75 04 Report Size (4) 95 01 Report Count (1) 81 02 Input (Var) 75 01 Report Size (1) 95 04 Report Count (4) 81 01 Input (Const) 06 00 FF Usage Page (unk) 09 01 Usage (0x01) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 01 Report Count (1) 81 02 Input (Var) 06 00 FF Usage Page (unk) 09 01 Usage (0x01) 09 02 Usage (0x02) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 02 Report Count (2) B1 02 Feature (Var) C0 End Collection ----------------- Endpoint Descriptor ----------------- bLength : 0x07 (7 bytes) bDescriptorType : 0x05 (Endpoint Descriptor) bEndpointAddress : 0x81 (Direction=IN EndpointID=1) bmAttributes : 0x03 (TransferType=Interrupt) wMaxPacketSize : 0x08 bInterval : 0x0A (10 ms)As usual, it shows some marketing blurb - while the packages shouts USB 2.0, the Device Descriptor tells USB Version 1.10 _and_ asks for low speed :) Also note the fancy model name string:
"Generic USB Joystick "As driver the standard Windows HID Driver is used.
What I'm missing is a OUT-pipe to handle the vibrator motors.
No Nuthing - just the weired name:)
All elements are detected:
The controller features a 'MODE' button, switching various functions. A red LED displays the state. Further 'On' refers to a once pressed mode button with a lit LED.
The following assignment can be detected:
Win7 Testscreen | Gamepad API Test | ||||
---|---|---|---|---|---|
Off | On | Off | On | ||
Left Stick | Up | Y (Up -1 )1,2 | Y (Up -1) | Axis 1: -11,2 | Axis 1: -1 |
Down | Y (Down +1)1,2 | Y (Down +1) | Axis 1: +11,2 | Axis 1: +1 | |
Left | X (Left -1)1,2 | X (Left -1) | Axis 0: -11,2 | Axis 0: -1 | |
Right | X (Right +1)1,2 | X (Right +1) | Axis 0: +11,2 | Axis 0: +1 | |
Right Stick | Up | Btn 1 | Z-Rotation (Left -1) | Btn 0 | Axis 5: -1 |
Down | Btn 3 | Z-Rotation (Right +1) | Btn 2 | Axis 5: +1 | |
Left | Btn 4 | Z-Axis (Left -1) | Btn 3 | Axis 2: -1 | |
Right | Btn 2 | Z-Axis (Right +1) | Btn 1 | Axis 2: +1 | |
Rocker/Hat | Up | Y (Up -1 )1,2 | Up | Axis 1: -11,2 | Axis 5: -11,2 |
Down | Y (Down +1)1,2 | Down | Axis 1: +11,2 | Axis 5: +11,2 | |
Left | X (Left -1)1,2 | Left | Axis 0: -11,2 | Axis 4: -11,2 | |
Right | X (Right +1)1,2 | Right | Axis 0: +11,2 | Axis 4: +11,2 | |
Buttons | 1 | 1 | 1 | 0 | 0 |
2 | 2 | 2 | 1 | 1 | |
3 | 3 | 3 | 2 | 2 | |
4 | 4 | 4 | 3 | 3 | |
5 | 5 | 5 | 4 | 4 | |
6 | 6 | 6 | 5 | 5 | |
7 | 7 | 7 | 6 | 6 | |
8 | 8 | 8 | 7 | 7 | |
9 | 9 | 9 | 8 | 8 | |
10 | 10 | 10 | 9 | 9 | |
11 (Left Stick) | 11 | 11 | 10 | 10 | |
12 (Right Stick) | 12 | 12 | 11 | 11 |
Windows assigns the standard HID driver (hidusb.sys) which includes Joystick handling.
It seams as if the Mode switches between a digital gamepad (SNES like) mode and an analogue (liek xBox) mode. Even the handling looks quite alike. All definitions are according to the USB HID descriptor.
The FireFox behavior is rather strange. For one, 6 axis are reported (and displayed), while the USB HID decriptor clearly states only 4 Pointers (Direction-X, Direction-Y, Direction-Z, Rotate-Z). Then the Rocker/Hat is maped in a somewhat strange (and useless) way to axis 4/5.