Revision: 04.01.2014
Drafted: 03.01.2014

Game Controlls and the Web

This complements the main page.

Pad#6 Simraceway SRW-S1 Steering Wheel

I realy managed to leave the shop (again Game Stop, just different location) without buying, before returning again after New Year. After all, 29.99 for such an unusual device was too much to withstand.

Packaging

SRW-S1 Steering Wheel package picture 1SRW-S1 Steering Wheel package picture 2

Basic Data

BrandnameSteelseries (Simraceway)
ProductnameSRW-S1 Steering Wheel
Product-ID69005
USB Manufacturer String"SteelSeries"
USB Product String"SRWheel"
USB-VID1038Ideazon, Inc.
USB-PID1410
USB-REV0100
USB-Class(es)03/00/00
USB-Device (Windows)USBPDO-12
gamepad.id (Firefox)"1038-1410-SRWheel"
Layout StyleWheel - way sophisticated
SwitchableNo
Detected parts in FireFox17 Buttons
5 Axis
Detected parts in Windows17 Buttons
1 Axis
2 Slider
1 8-Way Rocker/Hat

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_1038&PID_1410\6900500112431101584
Driver KeyName           : {745a17a0-74d3-11d0-b6fe-00a0c90f57da}\0018 (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             : {5d14e4ae-4f8c-5180-8cf1-59a0ff1a6f61}
Manufacturer Info        : (Standard system devices)
Capabilities             : Removable, UniqueID, 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_1038&PID_1410\8&15666818&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     : 0x02 (2)
Device Bus Speed         : 0x01 (Full-Speed)
Pipe0ScheduleOffset      : 0x00 (0)
Pipe1ScheduleOffset      : 0x01 (1)

        ------------------ Device Descriptor ------------------
bLength                  : 0x12 (18 bytes)
bDescriptorType          : 0x01 (Device Descriptor)
bcdUSB                   : 0x200 (USB Version 2.00)
bDeviceClass             : 0x00 (defined by the interface descriptors)
bDeviceSubClass          : 0x00
bDeviceProtocol          : 0x00
bMaxPacketSize0          : 0x08 (8 bytes)
idVendor                 : 0x1038
idProduct                : 0x1410
bcdDevice                : 0x100
iManufacturer            : 0x01
 Language 0x0409         : "SteelSeries"
iProduct                 : 0x02
 Language 0x0409         : "SRWheel"
iSerialNumber            : 0x04
 Language 0x0409         : "6900500112431101584"
bNumConfigurations       : 0x01

        -------------- Configuration Descriptor ---------------
bLength                  : 0x09 (9 bytes)
bDescriptorType          : 0x02 (Configuration Descriptor)
wTotalLength             : 0x0029 (41 bytes)
bNumInterfaces           : 0x01
bConfigurationValue      : 0x01
iConfiguration           : 0x00
bmAttributes             : 0x80 (Bus Powered)
MaxPower                 : 0x32 (100 mA)

        ---------------- Interface Descriptor -----------------
bLength                  : 0x09 (9 bytes)
bDescriptorType          : 0x04 (Interface Descriptor)
bInterfaceNumber         : 0x00
bAlternateSetting        : 0x00
bNumEndpoints            : 0x02
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                   : 0x0111 (HID Version 1.11)
bCountryCode             : 0x00 (00 = not localized)
bNumDescriptors          : 0x01
Descriptor 1:
bDescriptorType          : 0x22 (Class=Report)
wDescriptorLength        : 0x0073 (115 bytes)
Error reading descriptor : ERROR_GEN_FAILURE

        ----------------- Endpoint Descriptor -----------------
bLength                  : 0x07 (7 bytes)
bDescriptorType          : 0x05 (Endpoint Descriptor)
bEndpointAddress         : 0x81 (Direction=IN  EndpointID=1)
bmAttributes             : 0x03 (TransferType=Interrupt)
wMaxPacketSize           : 0x40 (64 bytes)
bInterval                : 0x0A (10 ms)

        ----------------- Endpoint Descriptor -----------------
bLength                  : 0x07 (7 bytes)
bDescriptorType          : 0x05 (Endpoint Descriptor)
bEndpointAddress         : 0x01 (Direction=OUT  EndpointID=1)
bmAttributes             : 0x03 (TransferType=Interrupt)
wMaxPacketSize           : 0x40 (64 bytes)
bInterval                : 0x0A (10 ms)
This is a real elaborate description. Too bad USB Device Tree Viewer fails on decoding. Guessing from a quick manual decode the descriptor seams to be well designed.

The OUT-Pipe might feature LED-Handling.There is a windows tool to set the 15 LED for other Usage.

USB Descriptor Information from TDD

Information for device SRWheel (VID=0x1038 PID=0x1410): 

Connection Information:
------------------------------
Connection status: Device connected
Device actual bus speed: Full 
Device is hub: No
Device adress: 0x0004
Current configuration value: 0x01
Number of open pipes: 2

Device Descriptor:
------------------------------
0x12	bLength
0x01	bDescriptorType
0x0200	bcdUSB
0x00	bDeviceClass   
0x00	bDeviceSubClass   
0x00	bDeviceProtocol   
0x08	bMaxPacketSize0   (8 Bytes)
0x1038	idVendor
0x1410	idProduct
0x0100	bcdDevice
0x01	iManufacturer   "SteelSeries"
0x02	iProduct   "SRWheel"
0x04	iSerialNumber   "6900500112431101584"
0x01	bNumConfigurations

Configuration Descriptor:
------------------------------
0x09	bLength
0x02	bDescriptorType
0x0029	wTotalLength
0x01	bNumInterfaces
0x01	bConfigurationValue
0x00	iConfiguration
0x80	bmAttributes   (Bus-powered Device)
0x32	bMaxPower   (100 mA)

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

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

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

Endpoint Descriptor:
------------------------------
0x07	bLength
0x05	bDescriptorType
0x01	bEndpointAddress   (OUT Endpoint)
0x03	bmAttributes	(Transfer: Interrupt / Synch: None / Usage: Data)
0x0040	wMaxPacketSize   (64 Bytes) 
0x0A	bInterval

String Descriptor Table
--------------------------------
Index  LANGID  String
0x00   0x0000  0x0409 
0x01   0x0409  "SteelSeries"
0x02   0x0409  "SRWheel"
0x03   0x0409  "1.08"
0x04   0x0409  "6900500112431101584"

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

Connection path for device: 
Standard Enhanced PCI to USB Host Controller
Root Hub
Generic USB Hub
Generic USB Hub
SRWheel (VID=0x1038 PID=0x1410)

While the Version information tells 1.0, there seams to be an "1.08" version string hidden in the sting table.

Windows7 Control Panel Icon

Windows7 Control Panel Info

Windows7 Test Screen

All elements are detected:

Device

SRW-S1 Steering Wheel top view; Buttons NumberedSRW-S1 Steering Wheel bottom view

Behaviour

The following assignment can be detected:
Win7 TestscreenGamepad API Test
AxisSteering (Wheel)Steering (-1..0..+1)Axis 0 (-1..0..+1)
SliderThrottle (Lower Right Paddle)Throttle (0..+1)n/a
Brake (Lower Left Paddle)Brake (0..+1)n/a
Rocker/HatUpUp2Axis 5 (-1)1,2
DownDown2Axis 5 (+1)1,2
LeftLeft2Axis 4 (-1)1,2
RightRight2Axis 4 (+1)1,2
ButtonsStart (1)10
Back (2)21
Look Left (3)32
Lights (4)43
Look Back (5)54
R.Brake Balance (6)65
F.Brake Balance (7)76
Request Pit (8)87
Left Upper Shifter Paddle (9)98
Camera (10)109
Look Right (11)1110
Boost (12)1211
Horn (13)1312
HUD (14)1413
Launch Control (15)1514
Speed Limiter (16)1615
Right Upper Shifter Paddle (17)1716
1Only digital movement (-1,0,+1) - 28-Way

Windows assigns the standard HID driver (hidusb.sys) which includes quite some basic devices - it seams as if MS did just straight ahead implement everything defined in the HID standards - cool.

the lower left turn knob controlls localy the degree of turning needed for a full -1 to +1 transition. I couldn't see so fat how the other two knobs are transmitted.