PlayStation 4 Camera: Difference between revisions

From PS4 Developer wiki
Jump to navigation Jump to search
mNo edit summary
Line 413: Line 413:
== Project ==
== Project ==


* PS4 Camera on linux/OSX: https://github.com/ps4eye/ps4eye
* PS4 Camera on linux/OSX: https://github.com/ps4eye/ps4eye / https://github.com/bigboss-ps3dev/PS4EYECam/
<small>(The PS4 camera is USB 3.0 only and is not compatible with USB 2.0 systems. See also [[Aux|AUX page]])</small>
<small>(The PS4 camera is USB 3.0 only and is not compatible with USB 2.0 systems. See also [[Aux|AUX page]])</small>



Revision as of 16:26, 22 September 2014

Playstation 4 Camera

See also Discussion page

RRA filing: http://rra.go.kr/board/device/view.jsp?app_no=201317100000152603 22 August 2013

Specifications

Overview of Technical Specifications
Product Code CUH-ZEY1
External Dimension approximately 186mm x 27mm x 27mm (height x width x depth)
Weight approximately 183g
Cable Length Cord length: 200cm approximately

See extending the ps4 camera cable

Connection Type PS4 dedicated connector AUX (USB 3.0-derived)
Capture Range 30cm -
Camera lens Dual camera (move like)
Aperture f/2.0 /fixed focus
Field of view (FOV) 85°
Video Format RAW16/RAW8, YUV422/YUV8 (greyscale)
Video Frame Rate
resolution aspectratio framerate remarks
1280x800 16:10 7.5, 15, 30 or 60fps WXGA
640x400 16:10 7.5, 15, 30, 60 or 120fps 1/4th WXGA
320x200 16:10 7.5, 15, 30, 60, 120 or 240fps 1/16th WXGA
160x100 16:10 7.5, 15, 30, 60, 120 or 240fps 1/64th WXGA
Color depth 12-bit tonal gradation (=4096 tonal levels)
Microphone 4 Channel Microphone Array
Programmable settings

The PlayStation 4 Camera runs without user login (kernel/system device?) and depends for many of its system functions on the APU, using a tripple buffering system

Available functions

  • photo, video
  • voice commands (available as well with an earset with microphone)
  • depth calculation/imaging
  • pad, move, face, head and hand recognition/tracking
  • one of the cameras can be used for generating the video image, with the other used for motion tracking.

Hardware review

  • Back chip connected to Aux port is labeled OV00580-B21G-1C. The OmniVision 580 ASIC is not documented, so it seems to have been made specially for Sony out of the 500/600 serie of processors.
  • The 1-megapixel Image Sensors is speculated to be an CMOS OV9713.
  • Front chip connected to microphone array, labeled 5703 324A, is speculated to be a 4-channel 24-bit Analog-to-digital (A/D) converter packaged in a space-saving 28-pin QFN package.
  • EEPROM is speculated to be labeled as ag51a.

Gallery

Pre E3 Playstation 4 Camera pictures

Mouseover for different pictures.

Front Side
PS4 Camera - pic1
PS4 Camera - pic2
PS4 Camera - pic3
PS4 Camera - pic4
Front Side
PS4 Camera - pic5
PS4 Camera - pic6
PS4 Camera - pic7
PS4 Camera - pic8

Playstation 4 Camera teardown pictures

Videos

(The C-Note Files - Episode 12: Tutorial - PS4 Face Recognition)

(The C-Note Files - Episode 13: Tutorial - PS4 Voice Recognition)

Analysis

USB

Device Descriptor

Device Descriptor
Offset Field Size Value Description
0 bLength 1 0x12 Size of this descriptor in bytes (18)
1 bDescriptorType 1 0x01 DEVICE descriptor type (Constant = 1)
2 bcdUSB 2 0x0300 USB Spec release number (3.00):

with which the device and is descriptors are compliant (e.g.: 0x0200 (USB2.0), 0x0300, (USB3.0))

4 bDeviceClass 1 0x00 Class code assigned by USB-IF

(used by the operating system to find a class driver for your device)

  • 00h means each interface defines its own class (identify itself at the interface level: bInterfaceClass )
  • FFh means vendor-defined class
  • Any other value must be a class code

5 bDeviceSubClass 1 0x00 SubClass Code assigned by USB-IF

(used by the operating system to find a class driver for your device)

6 bDeviceProtocol 1 0x00 Protocol Code assigned by USB-IF

(used by the operating system to find a class driver for your device)

7 bMaxPacketSize0 1 0x09 Max packet size for endpoint 0.

8 idVendor 2 0x05a9 Vendor ID (VID) (OmniVision Technologies, Inc.) - must be obtained from USB-IF

(used by the operating system to find a driver for your device)

10 idProduct 2 0x0580 Product ID (PID) - assigned by the manufacturer

(used by the operating system to find a driver for your device)

12 bcdDevice 2 0x0100 Device release number (Version: 1.00)

in binary coded decimal

14 iManufacturer 1 0x01 Index of string descriptor describing manufacturer

set to 0 if no string

15 iProduct 1 0x02 Index of string descriptor describing product

set to 0 if no string

16 iSerialNumber 1 0x00 Index of string descriptor describing device serial number
set to 0 if no string
17 bNumConfigurations 1 0x01 Number of possible configurations


Configuration Descriptor

Configuration Descriptor
Offset Field Size Value Description
0 bLength 1 0x09 Size
1 bDescriptorType 1 0x02 (= 2)
2 wTotalLength 2 0x002C Total number of bytes (44) in this descriptor and all the following descriptors (9+9+ + +)
4 bNumInterfaces 1 0x01 Number of interfaces supported by this configuration
5 bConfigurationValue 1 0x01 Value used by Set Configuration to select this configuration
6 iConfiguration 1 0x00 Index of string descriptor describing configuration - set to 0 if no string
7 bmAttributes 1 0x80 Powered by the bus (10000000)

specify power parameters for the configuration :

8-digit bit binary
7|6|5|4|3|2|1|0

  • D0 - D4: Reserved.
  • D5: The configuration supports remote wakeup.
  • D6: The configuration is self-powered and does not use power from the bus.
  • D7: The configuration is powered by the bus.

8 bMaxPower 1 0x32 Maximum current: 100mA drawn by device in this configuration.
In units of 2mA. So 0x32 (50) means 100 mA
Interface Descriptor
0 bLength 1 0x09 Size
1 bDescriptorType 1 0x04 (= 4)
2 bInterfaceNumber 1 0x00 Number identifying this interface.

Zero-based value

3 bAlternateSetting 1 0x00 The first (and default) value used to select alternative setting is always 0

(An interface can have more than one variant, and these variants can be switched between, while other interfaces are still in operation)

4 bNumEndpoints 1 0x02 Number of Endpoints used for this interface
5 bInterfaceClass 1 0xFF Class code assigned by USB-IF

  • 00h is a reserved value
  • FFh means vendor-defined class
  • Any other value must be a class code

6 bInterfaceSubClass 1 0x00 SubClass Code assigned by USB-IF
7 bInterfaceProtocol 1 0x00 Protocol Code assigned by USB-IF
8 iInterface 1 0x00 Index of string descriptor describing interface - set to 0 if no string
Endpoint (OUT) Descriptor
0 bLength 1 0x0- Size
1 bDescriptorType 1 0x05 (= 5)
2 bEndpointAddress 1 0x01 OUT<--(00 00 0001)-->1

The address of this endpoint within the device:

  • D3-D0: Endpoint number
  • D6-D4: Reserved. set to Zero
  • D7: Direction: 0 = OUT, 1 = IN (Ignored for Control Endpoints)

3 bmAttributes 1 0x02 Bulk (00000010)

(D1:0) Transfer Type:

  • 00 = Control
  • 01 = Isochronous
  • 10 = Bulk
  • 11 = Interrupt

The following only apply to isochronous endpoints. Else set to 0.

(D3:2) Synchronisation Type (ISO mode):

  • 00 = No Synchronisation
  • 01 = Asynchronous
  • 10 = Adaptive
  • 11 = Synchronous

(D5:4) Usage Type (ISO mode):

  • 00 = Data endpoint
  • 01 = Feedback endpoint
  • 10 = Implicit feedback Data endpoint
  • 11 = Reserved

(D7:6) Reserved Set to 0

4 wMaxPacketSize 2 0x0400 (1024)
6 bInterval 1 0x00 - (unit depends on device speed)

Interval for polling endpoint for data transfers. Expressed in frames (ms) for low/full speed or microframes (125µs) for high speed
(ignored for Bulk & Control Endpoints. Isochronous must equal 1 and field may range from 1 to 255 for interrupt endpoints)

- bMaxBurst 1 0x0F MaxBurst (15)

The number of packets the endpoint can send or receive as part of a burst (range 1 - 16). See transfer Type.

Endpoint (IN) Descriptor
0 bLength 1 0x0- Size
1 bDescriptorType 1 0x05 ( =5)
2 bEndpointAddress 1 0x82 IN<--(10 00 0010)-->2
3 bmAttributes 1 0x02 Bulk
4 wMaxPacketSize 2 0x0400 (1024)
6 bInterval 1 0x00 0
- bMaxBurst 1 0x0F MaxBurst (15)
Binary Object Store Descriptor
0 bLength 1 0x05 Size (05)
1 bDescriptorType 1 0x0F (= 15)
2 wTotalLength 1 0x16 (22) (5+7+10)
3 bNumDeviceCaps 1 0x02 (2)

must be at least 2 for SuperSpeed devices and equal to 3 for USB 3.0 hubs.

- USB 2.0 Extension Device Capability:
bLength 1 0x07 (7) Size
bDescriptorType 1 0x10 ( =16)
bDevCapabilityType 1 0x02 (2)

  • 02 (USB 2.0 EXTENSION) or 03 (SUPERSPEED_USB) or 04 (CONTAINER_ID)

bmAttributes 4 0x00000002 (00000000 00000000 00000000 00000010) Link Power Management supported

See USB2-LPM-Errata-final.pdf p3

  • D0 Reserved. Must be set to zero
  • D1 A value of one in this bit location indicates that this device supports the Link Power Management (LPM) protocol
  • D2 BESL & Alternate HIRD definitions supported. The LPM bit must be set to a one when this bit is a one
  • D3 Recommended Baseline BESL valid
  • D4 Recommended Deep BESL valid
  • D11:8 Recommended Baseline BESL value. Field shall be ignored by system software if bit [3] is a zero.
  • D15:12 Recommended Deep BESL value. Field shall be ignored by system software if bit is a zero.
  • D31:16 Reserved. Must be set to zero.

- SuperSpeed USB Device Capability:
bLength 1 0x0A (10) Size
bDescriptorType 1 0x10 (= 16)
bDevCapabilityType 1 0x03 (3)
bmAttributes 1 0x00 (00000000)

  • D1 is 1 if it is a LTM capable device

wSpeedsSupported 0x000e

  • Device can operate at Full Speed (12Mbps)
  • Device can operate at High Speed (480Mbps)
  • Device can operate at SuperSpeed (5Gbps)

bFunctionalitySupport

Lowest fully-functional device speed is Full Speed 12Mbps)

bU1DevExitLat 10µ
bU2DevExitLat 32µs
Device Status 0x0000

Project

(The PS4 camera is USB 3.0 only and is not compatible with USB 2.0 systems. See also AUX page)

External references

Generic