Revision: 04.01.2014
Drafted: 04.01.2014

Game Controlls and the Web

This complements the main page.

Thrustmaster Firestorm Digital 3

Again a Thrustmaster, bought at 7.99 at MediaMarkt.

Packaging

Thrustmaster Firestorm Digital 3 package picture 1Thrustmaster Firestorm Digital 3 package picture 2

Basic Data

BrandnameThrustmaster
ProductnameFirestorm Digital 3
Product-ID2960626 vs b
USB Product String"USB 2-Axis 8-Button Gamepad"
USB Manufacturer String"Mega World"
USB-VID07B5Mega World International, Ltd
USB-PID0213Thrustmaster Firestorm Digital 3 Gamepad
USB-REV0101
USB-Class(es)03/00/00
USB-Device (Windows)
gamepad.id (Firefox)"7b5-213-USB 2-Axis 8-Button Gamepad"
Layout StyleSNES
SwitchableNo (always digital)
Detected parts in FireFox8 Buttons
2 Axis
Detected parts in Windows8 Buttons
2 Axis

USB Descriptor Information from USB Device Tree Viewer

    =========================== 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_07B5&PID_0213\7&D2AC4E7&0&2
Driver KeyName           : {745a17a0-74d3-11d0-b6fe-00a0c90f57da}\0020 (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             : {9c8d4831-74c9-11e3-a1f3-bcaec58addcf}
Manufacturer Info        : (Standard system devices)
Capabilities             : Removable, SurpriseRemovalOK
Address                  : 2
Problem Code             : 0
Power State              : D0 (supported: D0, D1, D2, D3, wake from D0, wake from D1, wake from D2)
 Child Device 1          : HID-compliant game controller
  Device ID              : HID\VID_07B5&PID_0213\8&16352F13&0&0000
  Class                  : HIDClass

        ---------------- Connection Information ---------------
Connection Index         : 0x02
Connection Status        : 0x01 (DeviceConnected)
Current Config Value     : 0x01
Device Address           : 0x05
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                 : 0x07B5
idProduct                : 0x0213
bcdDevice                : 0x101
iManufacturer            : 0x01
 Language 0x0409         : "Mega World"
iProduct                 : 0x02
 Language 0x0409         : "USB 2-Axis 8-Button Gamepad"
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             : 0xA0 (Bus Powered, Remote Wakeup)
MaxPower                 : 0x32 (100 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                   : 0x0100 (HID Version 1.00)
bCountryCode             : 0x00 (00 = not localized)
bNumDescriptors          : 0x01
Descriptor 1:
bDescriptorType          : 0x22 (Class=Report)
wDescriptorLength        : 0x0033 (51 bytes)
  05 01             Usage Page (Generic Desktop Controls)
  09 05             Usage (Gamepad)
  A1 01             Collection (Application)
  09 01               Usage (Pointer)
  A1 00               Collection (Physical)
  09 30                 Usage (Direction-X)
  09 31                 Usage (Direction-Y)
  15 00                 Logical Minimum (0)
  26 FF 00              Logical Maximum (255)
  35 00                 Physical Minimum (0)
  46 FF 00              Physical Maximum (255)
  66 00 00              Unit (0x00)
  75 08                 Report Size (8)
  95 02                 Report Count (2)
  81 02                 Input (Var)
  C0                  End Collection
  05 09               Usage Page (Buttons)
  19 01               Usage Minimum (1)
  29 08               Usage Maximum (8)
  15 00               Logical Minimum (0)
  25 01               Logical Maximum (1)
  95 08               Report Count (8)
  75 01               Report Size (1)
  81 02               Input (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)
Manufacturer String again "Mega World"

The descriptors are a bit weired. for one, it states a x/y direction like with mice or analogue sticks, but at the same time only noted as positive values.

USB Descriptor Information from TDD

Information for device USB 2-Axis 8-Button Gamepad (VID=0x07B5 PID=0x0213): 

Connection Information:
------------------------------
Connection status: Device connected
Device actual bus speed: Low 
Device is hub: No
Device adress: 0x0005
Current configuration value: 0x01
Number of open pipes: 1

Device Descriptor:
------------------------------
0x12	bLength
0x01	bDescriptorType
0x0110	bcdUSB
0x00	bDeviceClass   
0x00	bDeviceSubClass   
0x00	bDeviceProtocol   
0x08	bMaxPacketSize0   (8 Bytes)
0x07B5	idVendor
0x0213	idProduct
0x0101	bcdDevice
0x01	iManufacturer   "Mega World"
0x02	iProduct   "USB 2-Axis 8-Button Gamepad"
0x00	iSerialNumber
0x01	bNumConfigurations

Configuration Descriptor:
------------------------------
0x09	bLength
0x02	bDescriptorType
0x0022	wTotalLength
0x01	bNumInterfaces
0x01	bConfigurationValue
0x00	iConfiguration
0xA0	bmAttributes   (Bus-powered Device, Remote-Wakeup)
0x32	bMaxPower   (100 mA)

Interface Descriptor:
------------------------------
0x09	bLength
0x04	bDescriptorType
0x00	bInterfaceNumber
0x00	bAlternateSetting
0x01	bNumEndPoints
0x03	bInterfaceClass   (Human Interface Device Class)
0x00	bInterfaceSubClass   
0x00	bInterfaceProtocol   
0x00	iInterface

HID Descriptor:
------------------------------
0x09	bLength
0x21	bDescriptorType
0x0100	bcdHID
0x00	bCountryCode
0x01	bNumDescriptors
0x22	bDescriptorType   (Report descriptor)
0x0033	bDescriptorLength

Endpoint Descriptor:
------------------------------
0x07	bLength
0x05	bDescriptorType
0x81	bEndpointAddress   (IN Endpoint)
0x03	bmAttributes	(Transfer: Interrupt / Synch: None / Usage: Data)
0x0008	wMaxPacketSize   (8 Bytes) 
0x0A	bInterval

String Descriptor Table
--------------------------------
Index  LANGID  String
0x00   0x0000  0x0409 
0x01   0x0409  "Mega World"
0x02   0x0409  "USB 2-Axis 8-Button Gamepad"
0x03   0x0409  "WT65F1-005 M:MWJPAD"
0x10   0x0409  "WT6510"
0xF0   0x0409  "Weltrend"
0xF1   0x0409  "Mega World"
0xF2   0x0409  "WT6510-005"
0xF3   0x0409  "M:MWJPAD"

------------------------------

Connection path for device: 
Standard Enhanced PCI to USB Host Controller
Root Hub
Generic USB Hub
Generic USB Hub
USB 2-Axis 8-Button Gamepad (VID=0x07B5 PID=0x0213)

Brought to you by TDD v1.82.0, Aug 20 2013, 17:17:20
Quite a pletoria of strings here.

Windows7 Control Panel Icon

Windows7 Control Panel Info

Windows7 Test Screen

All elements are detected:

The displayed Structure matches the HID Descriptor.

Device

Thrustmaster top view; Buttons NumberedThrustmaster bottom viewThrustmaster back view

The controller does not offer any mode switching.

Buttons are arranged different.

Behaviour

The following assignment can be detected:
Win7 TestscreenGamepad API Test
Left StickUpY (Up -1 )1,2Axis 1: -11,2
DownY (Down +1)1,2Axis 1: +11,2
LeftX (Left -1)1,2Axis 0: -11,2
RightX (Right +1)1,2Axis 0: +11,2
Buttons110
221
332
443
554
665
776
887
1Only digital movement (-1,0,+1) - 28-Way

Windows assigns the standard HID driver (hidusb.sys) which includes Joystick handling.