Following his PS4 Auxiliary Ports and PS4Eyecam / PS4 Camera Firmware Kernel Analysis, PlayStation 4 developer BigBoss recently acquired Sony's new PlayStation Camera version 2 that supports PS VR and shared details on compatibility, open-source PlayStation VR Software and the PlayStation VR USB Descriptor today.
Below are the related tweets, and of note he confirmed Sony's new PlayStation Camera is not compatible with PS4 Firmware 1.76 which PlayStation 4 hackers have exploited and requires new Firmware.
He's also quite excited about the morpheus_bridge open source software used in PlayStation VR (a Dev hint, perhaps? ), busted out a PS4 camera plug and play mod and is currently seeking access to a Beagle USB 3 Sniffer to get a valid USB Dump for reverse-engineering and further examination. Rock on!
Finally, from tokkyo_tw comes PSVRTest to read PSVR's Accelerometer data for developers with some research feedback from yojiro:
Download: PSVRTest-master.zip / GIT
From the README.md file: PSVRTest
Read PSVR's Accelerometer data
Summary
Requirements:
Below are the related tweets, and of note he confirmed Sony's new PlayStation Camera is not compatible with PS4 Firmware 1.76 which PlayStation 4 hackers have exploited and requires new Firmware.
He's also quite excited about the morpheus_bridge open source software used in PlayStation VR (a Dev hint, perhaps? ), busted out a PS4 camera plug and play mod and is currently seeking access to a Beagle USB 3 Sniffer to get a valid USB Dump for reverse-engineering and further examination. Rock on!
Code:
Bus 020 Device 002: ID 054c:09af
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x054c
idProduct 0x09af
bcdDevice 1.07
iManufacturer 1 Sony
iProduct 2 PlayStation?VR
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 383
bNumInterfaces 9
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xc0
Self Powered
MaxPower 2mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 255
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 3 PS VR 3D Audio
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 1
bNumEndpoints 1
bInterfaceClass 255
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 3 PS VR 3D Audio
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 5
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Data
wMaxPacketSize 0x0400 1x 1024 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 1
bInterfaceSubClass 1
bInterfaceProtocol 0
iInterface 4 PS VR Audio
AudioControl Interface Descriptor:
bLength 10
bDescriptorType 36
bDescriptorSubtype 1 (HEADER)
bcdADC 1.00
wTotalLength 74
bInCollection 2
baInterfaceNr( 0) 2
baInterfaceNr( 1) 3
AudioControl Interface Descriptor:
bLength 12
bDescriptorType 36
bDescriptorSubtype 2 (INPUT_TERMINAL)
bTerminalID 1
wTerminalType 0x0201
bAssocTerminal 0
bNrChannels 1
wChannelConfig 0x0000
iChannelNames 0
iTerminal 0
AudioControl Interface Descriptor:
bLength 9
bDescriptorType 36
bDescriptorSubtype 6 (FEATURE_UNIT)
bUnitID 5
bSourceID 1
bControlSize 1
bmaControls( 0) 0x03
Mute Control
Volume Control
bmaControls( 1) 0x00
iFeature 0
AudioControl Interface Descriptor:
bLength 9
bDescriptorType 36
bDescriptorSubtype 3 (OUTPUT_TERMINAL)
bTerminalID 3
wTerminalType 0x0101
bAssocTerminal 0
bSourceID 5
iTerminal 0
AudioControl Interface Descriptor:
bLength 12
bDescriptorType 36
bDescriptorSubtype 2 (INPUT_TERMINAL)
bTerminalID 2
wTerminalType 0x0101
bAssocTerminal 0
bNrChannels 2
wChannelConfig 0x0003
Left Front (L)
Right Front (R)
iChannelNames 0
iTerminal 0
AudioControl Interface Descriptor:
bLength 13
bDescriptorType 36
bDescriptorSubtype 6 (FEATURE_UNIT)
bUnitID 6
bSourceID 2
bControlSize 2
bmaControls( 0) 0x01
bmaControls( 0) 0x00
Mute Control
bmaControls( 1) 0x02
bmaControls( 1) 0x00
Volume Control
bmaControls( 2) 0x02
bmaControls( 2) 0x00
Volume Control
iFeature 0
AudioControl Interface Descriptor:
bLength 9
bDescriptorType 36
bDescriptorSubtype 3 (OUTPUT_TERMINAL)
bTerminalID 4
wTerminalType 0x0301
bAssocTerminal 0
bSourceID 6
iTerminal 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 1
bInterfaceSubClass 2
bInterfaceProtocol 0
iInterface 5 PS VR Audio Mic
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 1
bNumEndpoints 1
bInterfaceClass 1
bInterfaceSubClass 2
bInterfaceProtocol 0
iInterface 5 PS VR Audio Mic
AudioStreaming Interface Descriptor:
bLength 7
bDescriptorType 36
bDescriptorSubtype 1 (AS_GENERAL)
bTerminalLink 3
bDelay 0 frames
wFormatTag 1 PCM
AudioStreaming Interface Descriptor:
bLength 11
bDescriptorType 36
bDescriptorSubtype 2 (FORMAT_TYPE)
bFormatType 1 (FORMAT_TYPE_I)
bNrChannels 1
bSubframeSize 2
bBitResolution 16
bSamFreqType 1 Discrete
tSamFreq[ 0] 48000
Endpoint Descriptor:
bLength 9
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 5
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Data
wMaxPacketSize 0x00c0 1x 192 bytes
bInterval 4
bRefresh 0
bSynchAddress 0
AudioControl Endpoint Descriptor:
bLength 7
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x80
MaxPacketsOnly
bLockDelayUnits 0 Undefined
wLockDelay 0 Undefined
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 3
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 1
bInterfaceSubClass 2
bInterfaceProtocol 0
iInterface 6 PS VR Audio Chat
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 3
bAlternateSetting 1
bNumEndpoints 1
bInterfaceClass 1
bInterfaceSubClass 2
bInterfaceProtocol 0
iInterface 6 PS VR Audio Chat
AudioStreaming Interface Descriptor:
bLength 7
bDescriptorType 36
bDescriptorSubtype 1 (AS_GENERAL)
bTerminalLink 2
bDelay 0 frames
wFormatTag 1 PCM
AudioStreaming Interface Descriptor:
bLength 11
bDescriptorType 36
bDescriptorSubtype 2 (FORMAT_TYPE)
bFormatType 1 (FORMAT_TYPE_I)
bNrChannels 2
bSubframeSize 2
bBitResolution 16
bSamFreqType 1 Discrete
tSamFreq[ 0] 48000
Endpoint Descriptor:
bLength 9
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 5
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Data
wMaxPacketSize 0x00c0 1x 192 bytes
bInterval 4
bRefresh 0
bSynchAddress 0
AudioControl Endpoint Descriptor:
bLength 7
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x80
MaxPacketsOnly
bLockDelayUnits 0 Undefined
wLockDelay 0 Undefined
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 4
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 7 PS VR Sensor
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.11
bCountryCode 0 Unknown
bNumDescriptors 1
bDescriptorType 34 (null)
wDescriptorLength 21
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 3
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 5
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 3
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 8 PS VR Control
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.11
bCountryCode 0 Unknown
bNumDescriptors 1
bDescriptorType 34 (null)
wDescriptorLength 23
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x84 EP 4 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 4
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x04 EP 4 OUT
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 4
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 6
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 255
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 9 PS VR H.264
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 6
bAlternateSetting 1
bNumEndpoints 1
bInterfaceClass 255
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 9 PS VR H.264
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x05 EP 5 OUT
bmAttributes 5
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Data
wMaxPacketSize 0x0400 1x 1024 bytes
bInterval 3
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 6
bAlternateSetting 2
bNumEndpoints 1
bInterfaceClass 255
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x05 EP 5 OUT
bmAttributes 5
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Data
wMaxPacketSize 0x0400 1x 1024 bytes
bInterval 2
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 6
bAlternateSetting 3
bNumEndpoints 1
bInterfaceClass 255
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x05 EP 5 OUT
bmAttributes 5
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Data
wMaxPacketSize 0x0400 1x 1024 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 7
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 255
bInterfaceSubClass 1
bInterfaceProtocol 0
iInterface 10 PS VR BulkIn
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x87 EP 7 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 8
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 3
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 11 PS VR Control2
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.11
bCountryCode 0 Unknown
bNumDescriptors 1
bDescriptorType 34 (null)
wDescriptorLength 159
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x86 EP 6 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 4
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x06 EP 6 OUT
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 4
Device Qualifier (for other device speed):
bLength 10
bDescriptorType 6
bcdUSB 2.00
bDeviceClass 0
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
bNumConfigurations 1
Device Status: 0x0001
Self Powered
Download: PSVRTest-master.zip / GIT
From the README.md file: PSVRTest
Read PSVR's Accelerometer data
Summary
- Access PSVR via USB
- Using Raw Input API (Win32) for capturing HID reports
- Still need analyzing these byte's meaning... (currently just showing byte [19-48])
Code:
00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
00-00-00-19-00-0A-04-20-00-05-27-01-FF-7F-00-00-42-5F-E2-26-00-B2-FF-FF-FF-0E-00-71-43-CF-04-41-07-53-E4-26-00-B6-FF-FB-FF-0A-00-01-44-AF-04-21-07-27-01-00-00-00-03-FF-5D-02-00-00-00-00-61-01-7A
00-00-00-19-00-0A-04-20-00-05-27-01-FF-7F-00-00-42-47-E6-26-00-C2-FF-04-00-00-00-F1-42-6F-04-21-07-3B-E8-26-00-C5-FF-19-00-03-00-91-43-DF-04-D1-07-27-01-00-00-00-03-FF-5D-02-00-00-00-00-D7-01-7B
00-00-00-19-00-0A-04-20-00-05-27-01-FF-7F-00-00-42-2F-EA-26-00-C1-FF-21-00-EE-FF-A1-43-AF-04-11-08-23-EC-26-00-B7-FF-20-00-EE-FF-C1-43-6F-04-71-07-27-01-00-00-00-03-FF-5D-02-00-00-00-00-DE-01-7C
00-00-00-19-00-0A-04-20-00-05-27-01-FF-7F-00-00-42-17-EE-26-00-B5-FF-0F-00-F1-FF-21-44-CF-04-01-08-0C-F0-26-00-C3-FF-00-00-03-00-D1-43-5F-04-21-07-27-01-00-00-00-03-FF-5D-02-00-00-00-00-E0-01-7D
- PSVR
- Visual Studio 2015
- Windows 10 x64
- .NET Framework 2.0