Following up on the PlayStation 4 Eye / PS4 Camera Teardown, PS4 hacker ps4eye made available PS4Eye, which are some PS4 Eye Camera Tools alongside a PlayStation 4 Eye Camera USB communication dump (captured via Total Data Center) with details below.
Download: ps4_camera.tdc (182 MB - 191,170,505 bytes) / GIT / data-center-windows-i686-v6.61.zip
From IRC:
From his blog: Experimental PS4 Camera Tools
WARNING: These tools are still in development and may not allow for complete, if any, functionality of the camera. The PS4 camera is USB 3.0 only and is not compatible with USB 2.0 systems.
Requirements
Pyusb 1.0 is required and may not be available through the package manager of some systems. Python-pip may help in installing the most recent version of pyusb:
Usage
Ensure that the uninitialized camera is recognized:
Initialize the camera with the provided script:
The device should now be available with a new product id: Initialized PS4 Camera in Linux
The two cameras can be used together for depth-sensing of objects in its field of vision, akin to the Xbox 360’s Kinect peripheral. Alternatively, one of the cameras can be used for generating the video image, with the other used for motion tracking.
PS4 Camera in Linux (Ubuntu 13.10)
PS4 camera cable on the left in black, and a USB 3.0 cable on the right in blue. There is a green/white wire pair missing on the PS4 cable, this is the USB 2.0 differential pair for backwards compatibility, it is not necessary for connecting the PS4 camera to a USB 3.0 port.
Front and back views of the PS4 camera board, with microphone array attached. Back chip connected to special USB 3.0 port is labeled OV00580-B21G-1C PPU889 1322 09. Front chip connected to microphone array is labeled 5703 324A. The rear external port appears very similar to a micro USB 2.0 socket, except slightly larger and with additional connections.
Circled in red are screw holes beneath the front lens cover, if you are so inclined to disassemble your PS4 camera.
Official PS4 Camera Specifications
External Dimensions: Approx. 186mm x 27mm x 27mm (width x height x depth)
Weight: Approx. 183g
Video Pixel: (Maximum) 1280 x 800 pixel x 2
Video Frame Rate:
1280x800 pixel @ 60fps
640x400 pixel @ 120fps
320x192 pixel @ 240fps
Video Format: RAW YUV (uncompressed)
Lens: Dual Lenses, F value/F2.0 fixed focus
Capture Range: 30cm~
Field-of-View: 85 degrees
Microphone: 4 Channel Microphone Array
Connection Type: PS4 dedicated connector (AUX connector)
Cable Length: Approx. 2m
Download: ps4_camera.tdc (182 MB - 191,170,505 bytes) / GIT / data-center-windows-i686-v6.61.zip
From IRC:
Code:
[ps4eye] In case anyone is interested, here is a link to ps4 camera usb comm dump: drive.google.com/file/d/0B52YoWIKRvZ-MWl2Yk1MSVhkQTA/edit?usp=sharing, am looking for people to help develop a gspca driver and contribute to github.com/ps4eye/ps4eye
[marshallh] this is the sw to view the logs btw totalphase.com/products/data-center/
[PUNIETA] Data Center Software V6.61 - Total Phase
[marshallh] retroactive.be/data-center-windows-i686-v6.61.zip
[ps4eye] thanks again marshallh for your help with that!
WARNING: These tools are still in development and may not allow for complete, if any, functionality of the camera. The PS4 camera is USB 3.0 only and is not compatible with USB 2.0 systems.
Requirements
Pyusb 1.0 is required and may not be available through the package manager of some systems. Python-pip may help in installing the most recent version of pyusb:
Code:
sudo apt-get install python-pip # on apt based systems
sudo pip install --pre pyusb
Ensure that the uninitialized camera is recognized:
Code:
$ lsusb -d 05a9:0580
Bus 004 Device 001: ID 05a9:0580 OmniVision Technologies, Inc.
Code:
$ sudo ./ps4eye_init.py
PS4 camera firmware uploaded and device reset
Code:
$ sudo lsusb -v -d 05a9:058a
Bus 004 Device 002: ID 05a9:058a OmniVision Technologies, Inc.
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 3.00
bDeviceClass 239 Miscellaneous Device
bDeviceSubClass 2 ?
bDeviceProtocol 1 Interface Association
bMaxPacketSize0 9
idVendor 0x05a9 OmniVision Technologies, Inc.
idProduct 0x058a
bcdDevice 1.00
iManufacturer 1 Omnivision Technologies, Inc.
iProduct 2 USB Camera-OV580
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 311
bNumInterfaces 2
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
(Bus Powered)
MaxPower 128mA
Interface Association:
bLength 8
bDescriptorType 11
bFirstInterface 0
bInterfaceCount 2
bFunctionClass 14 Video
bFunctionSubClass 3 Video Interface Collection
bFunctionProtocol 0
iFunction 2 USB Camera-OV580
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 14 Video
bInterfaceSubClass 1 Video Control
bInterfaceProtocol 0
iInterface 2 USB Camera-OV580
VideoControl Interface Descriptor:
bLength 13
bDescriptorType 36
bDescriptorSubtype 1 (HEADER)
bcdUVC 1.00
wTotalLength 77
dwClockFrequency 125.000000MHz
bInCollection 1
baInterfaceNr( 0) 1
VideoControl Interface Descriptor:
bLength 18
bDescriptorType 36
bDescriptorSubtype 2 (INPUT_TERMINAL)
bTerminalID 1
wTerminalType 0x0201 Camera Sensor
bAssocTerminal 0
iTerminal 0
wObjectiveFocalLengthMin 0
wObjectiveFocalLengthMax 0
wOcularFocalLength 0
bControlSize 3
bmControls 0x0000000a
Auto-Exposure Mode
Exposure Time (Absolute)
VideoControl Interface Descriptor:
bLength 9
bDescriptorType 36
bDescriptorSubtype 3 (OUTPUT_TERMINAL)
bTerminalID 2
wTerminalType 0x0101 USB Streaming
bAssocTerminal 0
bSourceID 3
iTerminal 0
VideoControl Interface Descriptor:
bLength 11
bDescriptorType 36
bDescriptorSubtype 5 (PROCESSING_UNIT)
Warning: Descriptor too short
bUnitID 3
bSourceID 1
wMaxMultiplier 0
bControlSize 2
bmControls 0x0000165f
Brightness
Contrast
Hue
Saturation
Sharpness
White Balance Temperature
Gain
Power Line Frequency
White Balance Temperature, Auto
iProcessing 2 USB Camera-OV580
bmVideoStandards 0x1a
NTSC - 525/60
SECAM - 625/50
NTSC - 625/50
VideoControl Interface Descriptor:
bLength 26
bDescriptorType 36
bDescriptorSubtype 6 (EXTENSION_UNIT)
bUnitID 4
guidExtensionCode {8a0f88dd-ba1c-5449-8a25-f7875967f0f7}
bNumControl 1
bNrPins 1
baSourceID( 0) 1
bControlSize 1
bmControls( 0) 0x01
iExtension 2 USB Camera-OV580
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 14 Video
bInterfaceSubClass 2 Video Streaming
bInterfaceProtocol 0
iInterface 0
VideoStreaming Interface Descriptor:
bLength 14
bDescriptorType 36
bDescriptorSubtype 1 (INPUT_HEADER)
bNumFormats 1
wTotalLength 177
bEndPointAddress 129
bmInfo 0
bTerminalLink 2
bStillCaptureMethod 0
bTriggerSupport 0
bTriggerUsage 0
bControlSize 1
bmaControls( 0) 27
VideoStreaming Interface Descriptor:
bLength 27
bDescriptorType 36
bDescriptorSubtype 4 (FORMAT_UNCOMPRESSED)
bFormatIndex 1
bNumFrameDescriptors 3
guidFormat {59555932-0000-1000-8000-00aa00389b71}
bBitsPerPixel 16
bDefaultFrameIndex 1
bAspectRatioX 0
bAspectRatioY 0
bmInterlaceFlags 0x00
Interlaced stream or variable: No
Fields per frame: 2 fields
Field 1 first: No
Field pattern: Field 1 only
bCopyProtect 0
VideoStreaming Interface Descriptor:
bLength 42
bDescriptorType 36
bDescriptorSubtype 5 (FRAME_UNCOMPRESSED)
bFrameIndex 1
bmCapabilities 0x00
Still image unsupported
wWidth 3448
wHeight 808
dwMinBitRate 5571968
dwMaxBitRate 167159040
dwMaxVideoFrameBufferSize 5571968
dwDefaultFrameInterval 166666
bFrameIntervalType 4
dwFrameInterval( 0) 166666
dwFrameInterval( 1) 333333
dwFrameInterval( 2) 666666
dwFrameInterval( 3) 1250000
VideoStreaming Interface Descriptor:
bLength 46
bDescriptorType 36
bDescriptorSubtype 5 (FRAME_UNCOMPRESSED)
bFrameIndex 2
bmCapabilities 0x00
Still image unsupported
wWidth 1748
wHeight 408
dwMinBitRate 1426368
dwMaxBitRate 42791040
dwMaxVideoFrameBufferSize 1426368
dwDefaultFrameInterval 83333
bFrameIntervalType 5
dwFrameInterval( 0) 83333
dwFrameInterval( 1) 166666
dwFrameInterval( 2) 333333
dwFrameInterval( 3) 666666
dwFrameInterval( 4) 1250000
VideoStreaming Interface Descriptor:
bLength 42
bDescriptorType 36
bDescriptorSubtype 5 (FRAME_UNCOMPRESSED)
bFrameIndex 3
bmCapabilities 0x00
Still image unsupported
wWidth 898
wHeight 200
dwMinBitRate 359200
dwMaxBitRate 10776000
dwMaxVideoFrameBufferSize 359200
dwDefaultFrameInterval 41666
bFrameIntervalType 4
dwFrameInterval( 0) 41666
dwFrameInterval( 1) 83333
dwFrameInterval( 2) 166666
dwFrameInterval( 3) 333333
VideoStreaming Interface Descriptor:
bLength 6
bDescriptorType 36
bDescriptorSubtype 13 (COLORFORMAT)
bColorPrimaries 1 (BT.709,sRGB)
bTransferCharacteristics 1 (BT.709)
bMatrixCoefficients 4 (SMPTE 170M (BT.601))
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 1
bNumEndpoints 1
bInterfaceClass 14 Video
bInterfaceSubClass 2 Video Streaming
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 5
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Data
wMaxPacketSize 0x0400 1x 1024 bytes
bInterval 1
bMaxBurst 15
Mult 2
Binary Object Store Descriptor:
bLength 5
bDescriptorType 15
wTotalLength 22
bNumDeviceCaps 2
USB 2.0 Extension Device Capability:
bLength 7
bDescriptorType 16
bDevCapabilityType 2
bmAttributes 0x00000002
Link Power Management (LPM) Supported
SuperSpeed USB Device Capability:
bLength 10
bDescriptorType 16
bDevCapabilityType 3
bmAttributes 0x00
wSpeedsSupported 0x000c
Device can operate at High Speed (480Mbps)
Device can operate at SuperSpeed (5Gbps)
bFunctionalitySupport 2
Lowest fully-functional device speed is High Speed (480Mbps)
bU1DevExitLat 10 micro seconds
bU2DevExitLat 32 micro seconds
Device Status: 0x0f0c
(Bus Powered)
U1 Enabled
U2 Enabled
PS4 Camera in Linux (Ubuntu 13.10)
Code:
~$ sudo lsusb -v -d 05a9:0580
Bus 004 Device 003: ID 05a9:0580 OmniVision Technologies, Inc.
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 3.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 9
idVendor 0x05a9 OmniVision Technologies, Inc.
idProduct 0x0580
bcdDevice 1.00
iManufacturer 1 OmniVision Technologies, Inc.
iProduct 2 USB Boot
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 44
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
(Bus Powered)
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0400 1x 1024 bytes
bInterval 0
bMaxBurst 15
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0400 1x 1024 bytes
bInterval 0
bMaxBurst 15
Binary Object Store Descriptor:
bLength 5
bDescriptorType 15
wTotalLength 22
bNumDeviceCaps 2
USB 2.0 Extension Device Capability:
bLength 7
bDescriptorType 16
bDevCapabilityType 2
bmAttributes 0x00000002
Link Power Management (LPM) Supported
SuperSpeed USB Device Capability:
bLength 10
bDescriptorType 16
bDevCapabilityType 3
bmAttributes 0x00
wSpeedsSupported 0x000e
Device can operate at Full Speed (12Mbps)
Device can operate at High Speed (480Mbps)
Device can operate at SuperSpeed (5Gbps)
bFunctionalitySupport 1
Lowest fully-functional device speed is Full Speed (12Mbps)
bU1DevExitLat 10 micro seconds
bU2DevExitLat 32 micro seconds
Device Status: 0x0000
(Bus Powered)
Front and back views of the PS4 camera board, with microphone array attached. Back chip connected to special USB 3.0 port is labeled OV00580-B21G-1C PPU889 1322 09. Front chip connected to microphone array is labeled 5703 324A. The rear external port appears very similar to a micro USB 2.0 socket, except slightly larger and with additional connections.
Circled in red are screw holes beneath the front lens cover, if you are so inclined to disassemble your PS4 camera.
Official PS4 Camera Specifications
External Dimensions: Approx. 186mm x 27mm x 27mm (width x height x depth)
Weight: Approx. 183g
Video Pixel: (Maximum) 1280 x 800 pixel x 2
Video Frame Rate:
1280x800 pixel @ 60fps
640x400 pixel @ 120fps
320x192 pixel @ 240fps
Video Format: RAW YUV (uncompressed)
Lens: Dual Lenses, F value/F2.0 fixed focus
Capture Range: 30cm~
Field-of-View: 85 degrees
Microphone: 4 Channel Microphone Array
Connection Type: PS4 dedicated connector (AUX connector)
Cable Length: Approx. 2m