Rilasciati strumenti per la comunicazione della Playstation Camera via USB

Il developer e hacker della scena PS4eye ha rilasciato alcuni tool per il porting della Playstation Camera su Linux, questi strumenti sono ancora in fase di sviluppo e potrebbero non consentire la completa, se del caso, funzionalità della fotocamera.

PlayStation-Camera-box

I driver open source per il Kinect sono stati rilasciati circa tre anni fa, e questo non più di una settimana dopo il suo rilascio. La fotocamera PS4 promette di essere ancora più versatile nelle sue modalità di funzionamento, dal rilevamento di profondità, per il monitoraggio di immagini e video 3D.

La porta ausiliaria della fotocamera sulla PS4 è in realtà solo una porta USB 3.0, e modificando il cavo della telecamera è adatta per essere collegata a un computer tramite USB 3.0.

Sono attualmente disponibili un paio di informazioni sul chipset, sembra essere un OmniVision 580 con circuito integrato ASIC, anche se attualmente non esiste alcuna documentazione sul loro sito che punti ad una cosa del genere.

Requisiti

  • Pyusb 1.0 (obbligatorio ma potrebbe non essere disponibile tramite il package manager di alcuni sistemi, in alternativa Python-pip potrebbe venirci incontro per l’installazione della versione più recente di pyusb.

Da terminale andiamo ad installare python-pippyusb.

sudo apt-get install python-pip # on apt based systems
sudo pip install –pre pyusb

Utilizzo

Assicurarsi che la fotocamera non inizializzata venga riconosciuta.

$ lsusb -d 05a9:0580
Bus 004 Device 001: ID 05a9:0580 OmniVision Technologies, Inc.

Inizializzare in seguito la fotocamera con lo script rilasciato.

$ sudo ./ps4eye_init.py
PS4 camera firmware uploaded and device reset

Il dispositivo dovrebbe ora essere disponibile con un nuovo product id: inizializzata la fotocamera PS4 in Linux.

$ 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

Le due telecamere possono essere utilizzate insieme per la profondità del rilevamento di oggetti nel suo campo visivo, simile al Kinect di Xbox 360. In alternativa, una delle telecamere può essere utilizzata per generare l’immagine video e l’altra per la localizzazione del movimento.

PS4 Camera in Linux (Ubuntu 13.10)

~$ 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)

Il cavo della videocamera PS4 a sinistra è di colore nero, il cavo USB 3.0 sulla destra è blu. C’è una coppia di fili verde e bianco mancante sul cavo PS4, questa è la coppia differenziale nella USB 2.0 per la retrocompatibilità, questa pur volendo non è necessaria per collegare la telecamera PS4 a una porta USB 3.0.

tumblr_mvx85jrJ2W1t0cilxo1_1280

La vista anteriore e posteriore della scheda madre per la telecamera PS4, con array di microfoni collegati. il chip torna collegato alla speciale porta USB 3.0 è etichettato OV00580 – B21G – 1C PPU889 1322 09.

coppia

I chip frontali sono collegati a schiera con i microfoni è etichettati 5703 324A. La porta esterna posteriore appare molto simile ad una presa micro USB 2.0, tranne leggermente più grande e con ulteriori collegamenti.

tumblr_mvx7tryMEj1t0cilxo1_1280

Cerchiati in rosso vediamo i fori per le viti sotto il coperchio della lente frontale.

tumblr_mvx76yTQZG1t0cilxo5_1280

Attenzione: Questi strumenti sono ancora in sviluppo e non possono consentire la completa eventuale funzionalità della camera. La fotocamera PS4 è solo USB 3.0 e non è compatibile con i sistemi USB 2.0.

Nel caso in cui qualcuno fosse interessato, ecco un link per il dump della fotocamera: drive.google.com, lo sviluppatore ci fa sapere che è alla ricerca di personale che possano aiutarlo nella creazione di un driver gspca e contribuire alla realizzazione del portale github.com/ps4eye/ps4eye.

Download: ps4_camera (file tlc)

Code Source: Github

(Visited 335 times, 1 visits today)

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *