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 | |
| Detected parts in FireFox | 12 Buttons 6 Axis | |
| Detected parts in Windows | 12 Buttons 4 Axis 1 8-Way Rocker/Hat |
=========================== 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.
Programm crashes
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.