-
Notifications
You must be signed in to change notification settings - Fork 37
USB Interfaces
mungewell edited this page Nov 4, 2016
·
1 revision
The PSVR is a composite USB device and has 9 interfaces.
DEVICE ID 054c:09af on Bus 001 Address 012 =================
bLength : 0x12 (18 bytes)
bDescriptorType : 0x1 Device
bcdUSB : 0x200 USB 2.0
bDeviceClass : 0x0 Specified at interface
bDeviceSubClass : 0x0
bDeviceProtocol : 0x0
bMaxPacketSize0 : 0x40 (64 bytes)
idVendor : 0x054c
idProduct : 0x09af
bcdDevice : 0x107 Device 1.07
iManufacturer : 0x1 Sony Computer Entertainment Inc.
iProduct : 0x2 PlayStation®VR
iSerialNumber : 0x0
bNumConfigurations : 0x1
CONFIGURATION 1: 2 mA ====================================
bLength : 0x9 (9 bytes)
bDescriptorType : 0x2 Configuration
wTotalLength : 0x17f (383 bytes)
bNumInterfaces : 0x9
bConfigurationValue : 0x1
iConfiguration : 0x0
bmAttributes : 0xc0 Self Powered
bMaxPower : 0x1 (2 mA)
INTERFACE 0: Vendor Specific ===========================
bLength : 0x9 (9 bytes)
bDescriptorType : 0x4 Interface
bInterfaceNumber : 0x0
bAlternateSetting : 0x0
bNumEndpoints : 0x0
bInterfaceClass : 0xff Vendor Specific
bInterfaceSubClass : 0x0
bInterfaceProtocol : 0x0
iInterface : 0x3 PS VR 3D Audio
INTERFACE 0, 1: Vendor Specific ========================
bLength : 0x9 (9 bytes)
bDescriptorType : 0x4 Interface
bInterfaceNumber : 0x0
bAlternateSetting : 0x1
bNumEndpoints : 0x1
bInterfaceClass : 0xff Vendor Specific
bInterfaceSubClass : 0x0
bInterfaceProtocol : 0x0
iInterface : 0x3 PS VR 3D Audio
ENDPOINT 0x1: Isochronous OUT ========================
bLength : 0x7 (7 bytes)
bDescriptorType : 0x5 Endpoint
bEndpointAddress : 0x1 OUT
bmAttributes : 0x5 Isochronous
wMaxPacketSize : 0x400 (1024 bytes)
bInterval : 0x1
INTERFACE 1: Audio =====================================
bLength : 0x9 (9 bytes)
bDescriptorType : 0x4 Interface
bInterfaceNumber : 0x1
bAlternateSetting : 0x0
bNumEndpoints : 0x0
bInterfaceClass : 0x1 Audio
bInterfaceSubClass : 0x1
bInterfaceProtocol : 0x0
iInterface : 0x4 PS VR Audio
INTERFACE 2: Audio =====================================
bLength : 0x9 (9 bytes)
bDescriptorType : 0x4 Interface
bInterfaceNumber : 0x2
bAlternateSetting : 0x0
bNumEndpoints : 0x0
bInterfaceClass : 0x1 Audio
bInterfaceSubClass : 0x2
bInterfaceProtocol : 0x0
iInterface : 0x5 PS VR Audio Mic
INTERFACE 2, 1: Audio ==================================
bLength : 0x9 (9 bytes)
bDescriptorType : 0x4 Interface
bInterfaceNumber : 0x2
bAlternateSetting : 0x1
bNumEndpoints : 0x1
bInterfaceClass : 0x1 Audio
bInterfaceSubClass : 0x2
bInterfaceProtocol : 0x0
iInterface : 0x5 PS VR Audio Mic
ENDPOINT 0x82: Isochronous IN ========================
bLength : 0x9 (7 bytes)
bDescriptorType : 0x5 Endpoint
bEndpointAddress : 0x82 IN
bmAttributes : 0x5 Isochronous
wMaxPacketSize : 0xc0 (192 bytes)
bInterval : 0x4
INTERFACE 3: Audio =====================================
bLength : 0x9 (9 bytes)
bDescriptorType : 0x4 Interface
bInterfaceNumber : 0x3
bAlternateSetting : 0x0
bNumEndpoints : 0x0
bInterfaceClass : 0x1 Audio
bInterfaceSubClass : 0x2
bInterfaceProtocol : 0x0
iInterface : 0x6 PS VR Audio Chat
INTERFACE 3, 1: Audio ==================================
bLength : 0x9 (9 bytes)
bDescriptorType : 0x4 Interface
bInterfaceNumber : 0x3
bAlternateSetting : 0x1
bNumEndpoints : 0x1
bInterfaceClass : 0x1 Audio
bInterfaceSubClass : 0x2
bInterfaceProtocol : 0x0
iInterface : 0x6 PS VR Audio Chat
ENDPOINT 0x2: Isochronous OUT ========================
bLength : 0x9 (7 bytes)
bDescriptorType : 0x5 Endpoint
bEndpointAddress : 0x2 OUT
bmAttributes : 0x5 Isochronous
wMaxPacketSize : 0xc0 (192 bytes)
bInterval : 0x4
INTERFACE 4: Human Interface Device ====================
bLength : 0x9 (9 bytes)
bDescriptorType : 0x4 Interface
bInterfaceNumber : 0x4
bAlternateSetting : 0x0
bNumEndpoints : 0x1
bInterfaceClass : 0x3 Human Interface Device
bInterfaceSubClass : 0x0
bInterfaceProtocol : 0x0
iInterface : 0x7 PS VR Sensor
ENDPOINT 0x83: Interrupt IN ==========================
bLength : 0x7 (7 bytes)
bDescriptorType : 0x5 Endpoint
bEndpointAddress : 0x83 IN
bmAttributes : 0x3 Interrupt
wMaxPacketSize : 0x40 (64 bytes)
bInterval : 0x3
INTERFACE 5: Human Interface Device ====================
bLength : 0x9 (9 bytes)
bDescriptorType : 0x4 Interface
bInterfaceNumber : 0x5
bAlternateSetting : 0x0
bNumEndpoints : 0x2
bInterfaceClass : 0x3 Human Interface Device
bInterfaceSubClass : 0x0
bInterfaceProtocol : 0x0
iInterface : 0x8 PS VR Control
ENDPOINT 0x84: Interrupt IN ==========================
bLength : 0x7 (7 bytes)
bDescriptorType : 0x5 Endpoint
bEndpointAddress : 0x84 IN
bmAttributes : 0x3 Interrupt
wMaxPacketSize : 0x40 (64 bytes)
bInterval : 0x4
ENDPOINT 0x4: Interrupt OUT ==========================
bLength : 0x7 (7 bytes)
bDescriptorType : 0x5 Endpoint
bEndpointAddress : 0x4 OUT
bmAttributes : 0x3 Interrupt
wMaxPacketSize : 0x40 (64 bytes)
bInterval : 0x4
INTERFACE 6: Vendor Specific ===========================
bLength : 0x9 (9 bytes)
bDescriptorType : 0x4 Interface
bInterfaceNumber : 0x6
bAlternateSetting : 0x0
bNumEndpoints : 0x0
bInterfaceClass : 0xff Vendor Specific
bInterfaceSubClass : 0x0
bInterfaceProtocol : 0x0
iInterface : 0x9 PS VR H.264
INTERFACE 6, 1: Vendor Specific ========================
bLength : 0x9 (9 bytes)
bDescriptorType : 0x4 Interface
bInterfaceNumber : 0x6
bAlternateSetting : 0x1
bNumEndpoints : 0x1
bInterfaceClass : 0xff Vendor Specific
bInterfaceSubClass : 0x0
bInterfaceProtocol : 0x0
iInterface : 0x9 PS VR H.264
ENDPOINT 0x5: Isochronous OUT ========================
bLength : 0x7 (7 bytes)
bDescriptorType : 0x5 Endpoint
bEndpointAddress : 0x5 OUT
bmAttributes : 0x5 Isochronous
wMaxPacketSize : 0x400 (1024 bytes)
bInterval : 0x3
INTERFACE 6, 2: Vendor Specific ========================
bLength : 0x9 (9 bytes)
bDescriptorType : 0x4 Interface
bInterfaceNumber : 0x6
bAlternateSetting : 0x2
bNumEndpoints : 0x1
bInterfaceClass : 0xff Vendor Specific
bInterfaceSubClass : 0x0
bInterfaceProtocol : 0x0
iInterface : 0x0
ENDPOINT 0x5: Isochronous OUT ========================
bLength : 0x7 (7 bytes)
bDescriptorType : 0x5 Endpoint
bEndpointAddress : 0x5 OUT
bmAttributes : 0x5 Isochronous
wMaxPacketSize : 0x400 (1024 bytes)
bInterval : 0x2
INTERFACE 6, 3: Vendor Specific ========================
bLength : 0x9 (9 bytes)
bDescriptorType : 0x4 Interface
bInterfaceNumber : 0x6
bAlternateSetting : 0x3
bNumEndpoints : 0x1
bInterfaceClass : 0xff Vendor Specific
bInterfaceSubClass : 0x0
bInterfaceProtocol : 0x0
iInterface : 0x0
ENDPOINT 0x5: Isochronous OUT ========================
bLength : 0x7 (7 bytes)
bDescriptorType : 0x5 Endpoint
bEndpointAddress : 0x5 OUT
bmAttributes : 0x5 Isochronous
wMaxPacketSize : 0x400 (1024 bytes)
bInterval : 0x1
INTERFACE 7: Vendor Specific ===========================
bLength : 0x9 (9 bytes)
bDescriptorType : 0x4 Interface
bInterfaceNumber : 0x7
bAlternateSetting : 0x0
bNumEndpoints : 0x1
bInterfaceClass : 0xff Vendor Specific
bInterfaceSubClass : 0x1
bInterfaceProtocol : 0x0
iInterface : 0xa PS VR BulkIn
ENDPOINT 0x87: Bulk IN ===============================
bLength : 0x7 (7 bytes)
bDescriptorType : 0x5 Endpoint
bEndpointAddress : 0x87 IN
bmAttributes : 0x2 Bulk
wMaxPacketSize : 0x200 (512 bytes)
bInterval : 0x0
INTERFACE 8: Human Interface Device ====================
bLength : 0x9 (9 bytes)
bDescriptorType : 0x4 Interface
bInterfaceNumber : 0x8
bAlternateSetting : 0x0
bNumEndpoints : 0x2
bInterfaceClass : 0x3 Human Interface Device
bInterfaceSubClass : 0x0
bInterfaceProtocol : 0x0
iInterface : 0xb PS VR Control2
ENDPOINT 0x86: Interrupt IN ==========================
bLength : 0x7 (7 bytes)
bDescriptorType : 0x5 Endpoint
bEndpointAddress : 0x86 IN
bmAttributes : 0x3 Interrupt
wMaxPacketSize : 0x40 (64 bytes)
bInterval : 0x4
ENDPOINT 0x6: Interrupt OUT ==========================
bLength : 0x7 (7 bytes)
bDescriptorType : 0x5 Endpoint
bEndpointAddress : 0x6 OUT
bmAttributes : 0x3 Interrupt
wMaxPacketSize : 0x40 (64 bytes)
bInterval : 0x4: 8
The most interesting (to us) is 'Interface 5 - VR Control' (which is HID). It is used to send Acceleration/Gyro data to the attached PC, and to receive some commands to control the behaviour of the PSVR.