PlayStation 4 Camera

From PS4 Developer wiki
Jump to navigation Jump to search

Playstation 4 Camera

See also Discussion page

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
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
  • 7.5, 15, 30 or 60fps at 1280x800 pixels
  • 7.5, 15, 30, 60 or 120fps at 640x400 pixels
  • 7.5, 15, 30, 60, 120 or 240fps at 320x200 pixels
  • 7.5, 15, 30, 60, 120 or 240fps at 160x100 pixels
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
  • 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.

Back chip connected to Aux port is labeled OV00580-B21G-1C. The OmniVision 580 ASIC is not documented, so it seems it was made specially for Sony out of the 500/600 serie (none of them featuring USB 3.0, see external reference).

Front chip connected to microphone array is labeled 5703 324A.

Gallery

Pre E3 Playstation 4 Camera pictures

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