Revision: 06.01.2014
Drafted: 04.01.2014

Game Controlls and the Web

This complements the main page.

Pad#5 Dance Dance Revulution Mat for PS3

This time something odd. They had a sale out at 19,99 Euro.

Packaging

DDR Mat package picture 1DDR Mat package picture 2

Basic Data

BrandnameKonami
ProductnameDDR/PS3 Tanzmatte
Product-ID2960737
USB Product String"DDR Mat for PlayStation(R)3"
USB Manufacturer String"Konami Digital Entertainment"
USB-VID1CCF(Not in List)
USB-PID1010
USB-REV0100
USB-Class(es)03/00/00
USB-Device (Windows)USBPDO-12
gamepad.id (Firefox)1ccf-1010-DDR Mat for PlayStation(R)3
Layout Stylenon-standard
SwitchableNo (always analogue)
Detected parts in FireFox13 Buttons
6 Axis
Detected parts in Windows13 Buttons
4 Axis
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_1CCF&PID_1010\7&D2AC4E7&0&2
Driver KeyName           : {745a17a0-74d3-11d0-b6fe-00a0c90f57da}\0022 (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             : {4a5b3ca5-7619-11e3-bc60-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_1CCF&PID_1010\8&659822C&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                   : 0x110 (USB Version 1.10)
bDeviceClass             : 0x00 (defined by the interface descriptors)
bDeviceSubClass          : 0x00
bDeviceProtocol          : 0x00
bMaxPacketSize0          : 0x40 (64 bytes)
idVendor                 : 0x1CCF
idProduct                : 0x1010
bcdDevice                : 0x100
iManufacturer            : 0x01
 Language 0x0409         : "Konami Digital Entertainment"
iProduct                 : 0x02
 Language 0x0409         : "DDR Mat for PlayStation(R)3"
iSerialNumber            : 0x00
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                   : 0x0110 (HID Version 1.10)
bCountryCode             : 0x00 (00 = not localized)
bNumDescriptors          : 0x01
Descriptor 1:
bDescriptorType          : 0x22 (Class=Report)
wDescriptorLength        : 0x0089 (137 bytes)
  05 01             Usage Page (Generic Desktop Controls)
  09 05             Usage (Gamepad)
  A1 01             Collection (Application)
  15 00               Logical Minimum (0)
  25 01               Logical Maximum (1)
  35 00               Physical Minimum (0)
  45 01               Physical Maximum (1)
  75 01               Report Size (1)
  95 0D               Report Count (13)
  05 09               Usage Page (Buttons)
  19 01               Usage Minimum (1)
  29 0D               Usage Maximum (13)
  81 02               Input (Var)
  95 03               Report Count (3)
  81 01               Input (Const)
  05 01               Usage Page (Generic Desktop Controls)
  25 07               Logical Maximum (7)
  46 3B 01            Physical Maximum (315)
  75 04               Report Size (4)
  95 01               Report Count (1)
  65 14               Unit (0x14)
  09 39               Usage (Hat Switch)
  81 42               Input (Var, NullState)
  65 00               Unit (0x00)
  95 01               Report Count (1)
  81 01               Input (Const)
  26 FF 00            Logical Maximum (255)
  46 FF 00            Physical Maximum (255)
  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)
  06 00 FF            Usage Page (unk)
  09 20               Usage (0x20)
  09 21               Usage (0x21)
  09 22               Usage (0x22)
  09 23               Usage (0x23)
  09 24               Usage (0x24)
  09 25               Usage (0x25)
  09 26               Usage (0x26)
  09 27               Usage (0x27)
  09 28               Usage (0x28)
  09 29               Usage (0x29)
  09 2A               Usage (0x2A)
  09 2B               Usage (0x2B)
  95 0C               Report Count (12)
  81 02               Input (Var)
  0A 21 26            Usage (0x2621)
  95 08               Report Count (8)
  B1 02               Feature (Var)
  0A 21 26            Usage (0x2621)
  91 02               Output (Var)
  26 FF 03            Logical Maximum (1023)
  46 FF 03            Physical Maximum (1023)
  09 2C               Usage (0x2C)
  09 2D               Usage (0x2D)
  09 2E               Usage (0x2E)
  09 2F               Usage (0x2F)
  75 10               Report Size (16)
  95 04               Report Count (4)
  81 02               Input (Var)
  C0                End Collection

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

        ----------------- 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)
Not sure what to make of a FF00 usage page.

USB Descriptor Information from TDD

Information for device DDR Mat for PlayStation(R)3 (VID=0x1CCF PID=0x1010): 

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
0x0110	bcdUSB
0x00	bDeviceClass   
0x00	bDeviceSubClass   
0x00	bDeviceProtocol   
0x40	bMaxPacketSize0   (64 Bytes)
0x1CCF	idVendor
0x1010	idProduct
0x0100	bcdDevice
0x01	iManufacturer   "Konami Digital Entertainment"
0x02	iProduct   "DDR Mat for PlayStation(R)3"
0x00	iSerialNumber
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
0x0110	bcdHID
0x00	bCountryCode
0x01	bNumDescriptors
0x22	bDescriptorType   (Report descriptor)
0x0089	bDescriptorLength

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

Endpoint Descriptor:
------------------------------
0x07	bLength
0x05	bDescriptorType
0x81	bEndpointAddress   (IN 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  "Konami Digital Entertainment"
0x02   0x0409  "DDR Mat for PlayStation(R)3"

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

Connection path for device: 
Standard Enhanced PCI to USB Host Controller
Root Hub
Generic USB Hub
Generic USB Hub
DDR Mat for PlayStation(R)3 (VID=0x1CCF PID=0x1010)

Brought to you by TDD v1.82.0, Aug 20 2013, 17:17:20
No hidden Strings :(

Windows7 Control Panel Icon

Windows7 Control Panel Info

Windows7 Test Screen

All elements are detected:

The displayed Structure matches the HID Descriptor so far - still, the extra descriptors puzzle me.

Device

DDR Mat top view; Buttons Numbered

The controller does not offer any mode switching.

There are 4 LED labeled Player 1..4 atop. The OUT-Pipe seams to handle these.

Behaviour

The following assignment can be detected:
Win7 TestscreenGamepad API Test
Rocker/HatUp ArrowUpAxis 5: -1
Down ArrowDownAxis 5: +1
Left ArrowLeftAxis 4: -1
Right ArrowRightAxis 4: +1
ButtonsSquare (1)10
Cross (2)22
Circle (3)33
Triangle (4)44
Select (9)98
Start (10)109
PSP (13)1312
It seams as if the mat tries to behave like a digital gamepad. Only the Rocker/Hat and Buttons 1..4, 9, 10, 13 are realy available.

Firefox maps 6 axis, the Rocker/Hat is maped to Axis 4/5 as with most otehr pads.

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