Skip to content

Instantly share code, notes, and snippets.

@tmk
Last active August 26, 2021 01:54
Show Gist options
  • Save tmk/85d504087e73db7acae6611cb007363b to your computer and use it in GitHub Desktop.
Save tmk/85d504087e73db7acae6611cb007363b to your computer and use it in GitHub Desktop.
HORI Taiko Controller 0f0d:00f0
Report
----------------------
Byte0:
0 Y
1 B
2 A
3 X
4 L
5 R
6 ZL
7 ZR
Byte1:
8 -
9 +
A LStickBTN
B RStickBTN
C Home
D Shoot
E none
F none
Byte2: Hat button - cross pad
IDLE: 0F(0000 1111)
N: 00
NE: 01
E: 02
SE: 03
S: 04
SW: 05
W: 06
NW: 07
0
7 1
6 2
5 3
4
Byte3-7: Not used
X(8)
Y(8)
Z(8)
Rx(8)
Cost(8)
----------------------------------
Bus 003 Device 025: ID 0f0d:00f0 Hori Co., Ltd Taiko Controller
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x0f0d Hori Co., Ltd
idProduct 0x00f0
bcdDevice 1.00
iManufacturer 1
iProduct 2
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x0029
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
(Bus Powered)
MaxPower 500mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.11
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 80
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 5
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 5
// /sys/bus/usb/drivers/usbhid/3-4:1.0/0003:0F0D:00F0.0BCE/report_descriptor:
Usage Page (Desktop), ; Generic desktop controls (01h)
Usage (Gamepad), ; Gamepad (05h, application collection)
Collection (Application),
Logical Minimum (0),
Logical Maximum (1),
Physical Minimum (0),
Physical Maximum (1),
Report Size (1),
Report Count (14),
Usage Page (Button), ; Button (09h)
Usage Minimum (01h),
Usage Maximum (0Eh),
Input (Variable),
Report Count (2),
Input (Constant),
Usage Page (Desktop), ; Generic desktop controls (01h)
Logical Maximum (7),
Physical Maximum (315),
Report Size (4),
Report Count (1),
Unit (Degrees),
Usage (Hat Switch), ; Hat switch (39h, dynamic value)
Input (Variable, Null State),
Unit,
Report Count (1),
Input (Constant),
Logical Maximum (255),
Physical Maximum (255),
Usage (X), ; X (30h, dynamic value)
Usage (Y), ; Y (31h, dynamic value)
Usage (Z), ; Z (32h, dynamic value)
Usage (Rz), ; Rz (35h, dynamic value)
Report Size (8),
Report Count (4),
Input (Variable),
Report Size (8),
Report Count (1),
Input (Constant),
End Collection
//////////////////////////////////////////////////////////////////////
// USB_desc_dump
// Address: 01
// Lowspeed: 00
// Devicer dump:
12 01 00 02 00 00 00 40 0D 0F F0 00 00 01 01 02
00 01
// Device:
bLength: 12
bDescriptorType: 01
bcdUSB: 0200
bDeviceClass: 00
bDeviceSubClass: 00
bDeviceProtocol: 00
bMaxPacketSize0: 40
idVendor: 0F0D
idProduct: 00F0
bcdDevice: 0100
iManufacturer: 01
iProduct: 02
iSerialNumber: 00
bNumConfigurations: 01
// String Zero: len: 04
// 04 03 09 04
// LangId: 0409
// iManufacturer: String1(0409): len: 1C
// 1C 03 48 00 4F 00 52 00 49 00 20 00 43 00 4F 00
// 2E 00 2C 00 4C 00 54 00 44 00 2E 00
// HORI CO.,LTD.
// iProduct: String2(0409): len: 22
// 22 03 54 00 61 00 69 00 6B 00 6F 00 20 00 43 00
// 6F 00 6E 00 74 00 72 00 6F 00 6C 00 6C 00 65 00
// 72 00
// Taiko Controller
// Config0 dump: len: 0029
09 02 29 00 01 01 00 80 FA 09 04 00 00 02 03 00
00 00 09 21 11 01 00 01 22 50 00 07 05 02 03 40
00 05 07 05 81 03 40 00 05
// Config:
bLength: 09
bDescriptorType: 02
wTotalLength: 0029
bNumInterfaces: 01
bConfigurationValue: 01
iConfiguration: 00
bmAttributes: 80
bMaxPower: FA
// Interface0.0:
bLength: 09
bDescriptorType: 04
bInterfaceNumber: 00
bAlternateSetting: 00
bNumEndpoints: 02
bInterfaceClass: 03
bInterfaceSubClass: 00
bInterfaceProtocol: 00
iInterface: 00
// HID:
bLength: 09
bDescriptorType: 21
bcdHID: 0111
bCountryCode: 00
bNumDescriptors: 01
bDescrType: 22
wDescriptorLength: 0050
// Report0 dump: len: 0050
05 01 09 05 A1 01 15 00 25 01 35 00 45 01 75 01
95 0E 05 09 19 01 29 0E 81 02 95 02 81 01 05 01
25 07 46 3B 01 75 04 95 01 65 14 09 39 81 42 65
00 95 01 81 01 26 FF 00 46 FF 00 09 30 09 31 09
32 09 35 75 08 95 04 81 02 75 08 95 01 81 01 C0
// Report:
Usage Page Gen Desktop Ctrls(01)
Usage Kbrd
Collection Application
Logical Min(00)
Logical Max(01)
Physical Min(00)
Physical Max(01)
Report Size(01)
Report Count(0E)
Usage Page Button(09)
Usage Min(01)
Usage Max(0E)
Input(00000010)
Report Count(02)
Input(00000001)
Usage Page Gen Desktop Ctrls(01)
Logical Max(07)
Physical Max(3B01)
Report Size(04)
Report Count(01)
Unit(14)
Usage Hat Switch
Input(01000010)
Unit(00)
Report Count(01)
Input(00000001)
Logical Max(FF00)
Physical Max(FF00)
Usage X
Usage Y
Usage Z
Usage Rz
Report Size(08)
Report Count(04)
Input(00000010)
Report Size(08)
Report Count(01)
Input(00000001)
End Collection
// Endpoint:
bLength: 07
bDescriptorType: 05
bEndpointAddress: 02
bmAttributes: 03
wMaxPacketSize: 0040
bInterval: 05
// Endpoint:
bLength: 07
bDescriptorType: 05
bEndpointAddress: 81
bmAttributes: 03
wMaxPacketSize: 0040
bInterval: 05
// Parse data here: http://eleccelerator.com/usbdescreqparser/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment