diff --git a/usb/README.md b/usb/README.md index e2a3a27..08bf955 100644 --- a/usb/README.md +++ b/usb/README.md @@ -23,15 +23,17 @@ Besides the PoV hat switch, it reports the same data as a DGOC-44U controller. T This controller has two handles (5 power notches and 8+emergency brake notches) and 6 buttons (Select, Start, A, B, C, D). -Internally, it is a HID-compliant joystick with two axes and 6 buttons (the handle positions are reported via axes). You can find its HID descriptor [here](descriptor-dgoc44u.txt). +Internally, it is a HID-compliant joystick with two axes and 6 buttons (the handle positions are reported via axes). -| | | -|-------------------|---------------------------| -| **Product name** | 電車でGO! コントローラ USB版 | -| **Manufacturer** | TAITO | -| **Vendor ID** | 0x0AE4 | -| **Product ID** | 0x0003 | -| **Serial number** | TCPP20009 | +| | | +|---------------------------|-------------------------------------------| +| **Product name** | 電車でGO! コントローラ USB版 | +| **Manufacturer** | TAITO | +| **Vendor ID** | 0x0AE4 | +| **Product ID** | 0x0003 | +| **Serial number** | TCPP20009 | +| **Standard descriptor** | Unavailable | +| **HID report descriptor** | [Link](dgoc44u_hid-report-descriptor.txt) | The controller sends reports to the host (PC) formed by 6 bytes: @@ -67,13 +69,15 @@ This controller has two handles (5 power notches and 8+emergency brake notches), Internally, it is a HID device with a vendor-specific class. -| | | -|-------------------|----------------------| -| **Product name** | TAITO_DENSYA_CON_T01 | -| **Manufacturer** | TAITO | -| **Vendor ID** | 0x0AE4 | -| **Product ID** | 0x0004 | -| **Serial number** | TCPP20010 | +| | | +|---------------------------|-------------------------------------------| +| **Product name** | TAITO_DENSYA_CON_T01 | +| **Manufacturer** | TAITO | +| **Vendor ID** | 0x0AE4 | +| **Product ID** | 0x0004 | +| **Serial number** | TCPP20010 | +| **Standard descriptor** | [Link](tcpp20009_standard-descriptor.txt) | +| **HID report descriptor** | Unavailable | #### Input @@ -136,13 +140,15 @@ This controller has two handles (13 power notches and 7+emergency brake notches) Internally, it is a HID device with a vendor-specific class. -| | | -|-------------------|----------------------| -| **Product name** | TAITO_DENSYA_CON_T02 | -| **Manufacturer** | TAITO | -| **Vendor ID** | 0x0AE4 | -| **Product ID** | 0x0005 | -| **Serial number** | TCPP20011 | +| | | +|---------------------------|-------------------------------------------| +| **Product name** | TAITO_DENSYA_CON_T02 | +| **Manufacturer** | TAITO | +| **Vendor ID** | 0x0AE4 | +| **Product ID** | 0x0005 | +| **Serial number** | TCPP20011 | +| **Standard descriptor** | [Link](tcpp20011_standard-descriptor.txt) | +| **HID report descriptor** | Unavailable | #### Input @@ -211,13 +217,15 @@ This controller has two handles (4 power notches and an analogue brake handle wi Internally, it is a HID device with a vendor-specific class. -| | | -|-------------------|----------------------| -| **Product name** | TAITO_DENSYA_CON_T03 | -| **Manufacturer** | TAITO | -| **Vendor ID** | 0x0AE4 | -| **Product ID** | 0x0007 | -| **Serial number** | TCPP20014 | +| | | +|---------------------------|-------------------------------------------| +| **Product name** | TAITO_DENSYA_CON_T03 | +| **Manufacturer** | TAITO | +| **Vendor ID** | 0x0AE4 | +| **Product ID** | 0x0007 | +| **Serial number** | TCPP20014 | +| **Standard descriptor** | [Link](tcpp20014_standard-descriptor.txt) | +| **HID report descriptor** | Unavailable | #### Input diff --git a/usb/descriptor-dgoc44u.txt b/usb/dgoc44u_hid-report-descriptor.txt similarity index 100% rename from usb/descriptor-dgoc44u.txt rename to usb/dgoc44u_hid-report-descriptor.txt diff --git a/usb/tcpp20009_standard-descriptor.txt b/usb/tcpp20009_standard-descriptor.txt new file mode 100644 index 0000000..5b32fee --- /dev/null +++ b/usb/tcpp20009_standard-descriptor.txt @@ -0,0 +1,42 @@ +0x12, // bLength +0x01, // bDescriptorType (Device) +0x10, 0x01, // bcdUSB 1.10 +0xFF, // bDeviceClass +0x04, // bDeviceSubClass +0x00, // bDeviceProtocol +0x08, // bMaxPacketSize0 8 +0xE4, 0x0A, // idVendor 0x0AE4 +0x04, 0x00, // idProduct 0x04 +0x02, 0x01, // bcdDevice 2.02 +0x01, // iManufacturer (String Index) "TAITO" +0x02, // iProduct (String Index) "TAITO_DENSYA_CON_T01" +0x03, // iSerialNumber (String Index) "TCPP20010" +0x01, // bNumConfigurations 1 + +0x09, // bLength +0x02, // bDescriptorType (Configuration) +0x19, 0x00, // wTotalLength 25 +0x01, // bNumInterfaces 1 +0x01, // bConfigurationValue +0x00, // iConfiguration (String Index) +0xA0, // bmAttributes Remote Wakeup +0xFA, // bMaxPower 500mA + +0x09, // bLength +0x04, // bDescriptorType (Interface) +0x00, // bInterfaceNumber 0 +0x00, // bAlternateSetting +0x01, // bNumEndpoints 1 +0x03, // bInterfaceClass +0x00, // bInterfaceSubClass +0x00, // bInterfaceProtocol +0x00, // iInterface (String Index) + +0x07, // bLength +0x05, // bDescriptorType (Endpoint) +0x81, // bEndpointAddress (IN/D2H) +0x03, // bmAttributes (Interrupt) +0x08, 0x00, // wMaxPacketSize 8 +0x14, // bInterval 20 (unit depends on device speed) + +// 43 bytes diff --git a/usb/tcpp20011_standard-descriptor.txt b/usb/tcpp20011_standard-descriptor.txt new file mode 100644 index 0000000..553a272 --- /dev/null +++ b/usb/tcpp20011_standard-descriptor.txt @@ -0,0 +1,42 @@ +0x12, // bLength +0x01, // bDescriptorType (Device) +0x10, 0x01, // bcdUSB 1.10 +0xFF, // bDeviceClass +0x05, // bDeviceSubClass +0x00, // bDeviceProtocol +0x08, // bMaxPacketSize0 8 +0xE4, 0x0A, // idVendor 0x0AE4 +0x05, 0x00, // idProduct 0x05 +0x02, 0x01, // bcdDevice 2.02 +0x01, // iManufacturer (String Index) "TAITO" +0x02, // iProduct (String Index) "TAITO_DENSYA_CON_T02" +0x03, // iSerialNumber (String Index) "TCPP20011" +0x01, // bNumConfigurations 1 + +0x09, // bLength +0x02, // bDescriptorType (Configuration) +0x19, 0x00, // wTotalLength 25 +0x01, // bNumInterfaces 1 +0x01, // bConfigurationValue +0x00, // iConfiguration (String Index) +0xA0, // bmAttributes Remote Wakeup +0xFA, // bMaxPower 500mA + +0x09, // bLength +0x04, // bDescriptorType (Interface) +0x00, // bInterfaceNumber 0 +0x00, // bAlternateSetting +0x01, // bNumEndpoints 1 +0x03, // bInterfaceClass +0x00, // bInterfaceSubClass +0x00, // bInterfaceProtocol +0x00, // iInterface (String Index) + +0x07, // bLength +0x05, // bDescriptorType (Endpoint) +0x81, // bEndpointAddress (IN/D2H) +0x03, // bmAttributes (Interrupt) +0x08, 0x00, // wMaxPacketSize 8 +0x14, // bInterval 20 (unit depends on device speed) + +// 43 bytes diff --git a/usb/tcpp20014_standard-descriptor.txt b/usb/tcpp20014_standard-descriptor.txt new file mode 100644 index 0000000..268b731 --- /dev/null +++ b/usb/tcpp20014_standard-descriptor.txt @@ -0,0 +1,42 @@ +0x12, // bLength +0x01, // bDescriptorType (Device) +0x10, 0x01, // bcdUSB 1.10 +0xFF, // bDeviceClass +0xFF, // bDeviceSubClass +0x00, // bDeviceProtocol +0x08, // bMaxPacketSize0 8 +0xE4, 0x0A, // idVendor 0x0AE4 +0x07, 0x00, // idProduct 0x07 +0x02, 0x01, // bcdDevice 2.02 +0x01, // iManufacturer (String Index) "TAITO" +0x02, // iProduct (String Index) "TAITO_DENSYA_CON_T03" +0x03, // iSerialNumber (String Index) "TCPP20014" +0x01, // bNumConfigurations 1 + +0x09, // bLength +0x02, // bDescriptorType (Configuration) +0x19, 0x00, // wTotalLength 25 +0x01, // bNumInterfaces 1 +0x01, // bConfigurationValue +0x00, // iConfiguration (String Index) +0xA0, // bmAttributes Remote Wakeup +0xFA, // bMaxPower 500mA + +0x09, // bLength +0x04, // bDescriptorType (Interface) +0x00, // bInterfaceNumber 0 +0x00, // bAlternateSetting +0x01, // bNumEndpoints 1 +0x03, // bInterfaceClass +0x00, // bInterfaceSubClass +0x00, // bInterfaceProtocol +0x00, // iInterface (String Index) + +0x07, // bLength +0x05, // bDescriptorType (Endpoint) +0x81, // bEndpointAddress (IN/D2H) +0x03, // bmAttributes (Interrupt) +0x08, 0x00, // wMaxPacketSize 8 +0x14, // bInterval 20 (unit depends on device speed) + +// 43 bytes