Skip to content

Instantly share code, notes, and snippets.

@psxdev
Created June 23, 2019 11:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save psxdev/d1a5ec910d89fdccbb61a3f1de065b2b to your computer and use it in GitHub Desktop.
Save psxdev/d1a5ec910d89fdccbb61a3f1de065b2b to your computer and use it in GitHub Desktop.
loading PlayStation Camera firmware second model using native winusb library on Windows 10 done
[Port13] : Dispositivo compuesto USB
Is Port User Connectable: yes
Is Port Debug Capable: yes
Companion Port Number: 1
Companion Hub Symbolic Link Name: USB#ROOT_HUB30#4&11b2f50b&0&0#{f18a0e88-c30c-11d0-8815-00a0c906bed8}
Protocols Supported:
USB 1.1: no
USB 2.0: no
USB 3.0: yes
Device Power State: PowerDeviceD3
---===>Device Information<===---
String Descriptor for index 2 not available while device is in low power state.
ConnectionStatus:
Current Config Value: 0x01 -> Device Bus Speed: SuperSpeed
Device Address: 0x05
Open Pipes: 0
*!*ERROR: No open pipes!
===>Device Descriptor<===
bLength: 0x12
bDescriptorType: 0x01
bcdUSB: 0x0300
bDeviceClass: 0xEF -> This is a Multi-interface Function Code Device
bDeviceSubClass: 0x02 -> This is the Common Class Sub Class
bDeviceProtocol: 0x01 -> This is the Interface Association Descriptor protocol
bMaxPacketSize0: 0x09 = (9) Bytes
idVendor: 0x05A9 = OmniVision Technologies, Inc.
idProduct: 0x058B
bcdDevice: 0x0100
iManufacturer: 0x01
String Descriptor for index 1 not available while device is in low power state.
iProduct: 0x02
String Descriptor for index 2 not available while device is in low power state.
iSerialNumber: 0x00
bNumConfigurations: 0x01
---===>Full Configuration Descriptor<===---
===>Configuration Descriptor<===
bLength: 0x09
bDescriptorType: 0x02
wTotalLength: 0x0137 -> Validated
bNumInterfaces: 0x02
bConfigurationValue: 0x01
iConfiguration: 0x00
bmAttributes: 0x80 -> Bus Powered
MaxPower: 0x40 = 512 mA
===>IAD Descriptor<===
bLength: 0x08
bDescriptorType: 0x0B
bFirstInterface: 0x00
bInterfaceCount: 0x02
bFunctionClass: 0x0E -> Video Interface Class
bFunctionSubClass: 0x03 -> Video Interface Collection
bFunctionProtocol: 0x00 -> PC_PROTOCOL_UNDEFINED protocol
iFunction: 0x02
String Descriptor for index 2 not available while device is in low power state.
===>Interface Descriptor<===
bLength: 0x09
bDescriptorType: 0x04
bInterfaceNumber: 0x00
bAlternateSetting: 0x00
bNumEndpoints: 0x00
bInterfaceClass: 0x0E -> Video Interface Class
bInterfaceSubClass: 0x01 -> Video Control Interface SubClass
bInterfaceProtocol: 0x00
iInterface: 0x02
String Descriptor for index 2 not available while device is in low power state.
===>Class-Specific Video Control Interface Header Descriptor<===
bLength: 0x0D
bDescriptorType: 0x24
bDescriptorSubtype: 0x01
bcdVDC: 0x0100
wTotalLength: 0x004D -> Validated
dwClockFreq: 0x07735940 = (125000000) Hz
bInCollection: 0x01
baInterfaceNr[1]: 0x01
USB Video Class device: spec version 1.0
===>Video Control Input Terminal Descriptor<===
bLength: 0x12
bDescriptorType: 0x24
bDescriptorSubtype: 0x02
bTerminalID: 0x01
wTerminalType: 0x0201 = (ITT_CAMERA)
bAssocTerminal: 0x00
iTerminal: 0x00
===>Camera Input Terminal Data
wObjectiveFocalLengthMin: 0x0000
wObjectiveFocalLengthMax: 0x0000
wOcularFocalLength: 0x0000
bControlSize: 0x03
bmControls : 0x0A 0x00 0x00
D00 = 0 no - Scanning Mode
D01 = 1 yes - Auto-Exposure Mode
D02 = 0 no - Auto-Exposure Priority
D03 = 1 yes - Exposure Time (Absolute)
D04 = 0 no - Exposure Time (Relative)
D05 = 0 no - Focus (Absolute)
D06 = 0 no - Focus (Relative)
D07 = 0 no - Iris (Absolute)
D08 = 0 no - Iris (Relative)
D09 = 0 no - Zoom (Absolute)
D10 = 0 no - Zoom (Relative)
D11 = 0 no - PanTilt (Absolute)
D12 = 0 no - PanTilt (Relative)
D13 = 0 no - Roll (Absolute)
D14 = 0 no - Roll (Relative)
D15 = 0 no - Reserved
D16 = 0 no - Reserved
D17 = 0 no - Focus, Auto
D18 = 0 no - Privacy
D19 = 0 no - Focus, Simple
D20 = 0 no - Window
D21 = 0 no - Region of Interest
D22 = 0 no - Reserved
D23 = 0 no - Reserved
===>Video Control Output Terminal Descriptor<===
bLength: 0x09
bDescriptorType: 0x24
bDescriptorSubtype: 0x03
bTerminalID: 0x02
wTerminalType: 0x0101 = (TT_STREAMING)
bAssocTerminal: 0x00
bSourceID: 0x03
iTerminal: 0x00
===>Video Control Processing Unit Descriptor<===
bLength: 0x0B
bDescriptorType: 0x24
bDescriptorSubtype: 0x05
bUnitID: 0x03
bSourceID: 0x01
wMaxMultiplier: 0x0000
bControlSize: 0x02
bmControls : 0x5F 0x16
D00 = 1 yes - Brightness
D01 = 1 yes - Contrast
D02 = 1 yes - Hue
D03 = 1 yes - Saturation
D04 = 1 yes - Sharpness
D05 = 0 no - Gamma
D06 = 1 yes - White Balance Temperature
D07 = 0 no - White Balance Component
D08 = 0 no - Backlight Compensation
D09 = 1 yes - Gain
D10 = 1 yes - Power Line Frequency
D11 = 0 no - Hue, Auto
D12 = 1 yes - White Balance Temperature, Auto
D13 = 0 no - White Balance Component, Auto
D14 = 0 no - Digital Multiplier
D15 = 0 no - Digital Multiplier Limit
iProcessing : 0x02
String Descriptor for index 2 not available while device is in low power state.
===>Video Control Extension Unit Descriptor<===
bLength: 0x1A
bDescriptorType: 0x24
bDescriptorSubtype: 0x06
bUnitID: 0x04
guidExtensionCode: {DD880F8A-1CBA-4954-8A25-F7875967F0F7}
bNumControls: 0x01
bNrInPins: 0x01
===>List of Connected Units and Terminal ID's
baSourceID[1]: 0x01
bControlSize: 0x01
bmControls : 0x01
D00 = 1 yes - Vendor-Specific (Optional)
D01 = 0 no - Vendor-Specific (Optional)
D02 = 0 no - Vendor-Specific (Optional)
D03 = 0 no - Vendor-Specific (Optional)
D04 = 0 no - Vendor-Specific (Optional)
D05 = 0 no - Vendor-Specific (Optional)
D06 = 0 no - Vendor-Specific (Optional)
D07 = 0 no - Vendor-Specific (Optional)
iExtension: 0x02
String Descriptor for index 2 not available while device is in low power state.
===>Interface Descriptor<===
bLength: 0x09
bDescriptorType: 0x04
bInterfaceNumber: 0x01
bAlternateSetting: 0x00
bNumEndpoints: 0x00
bInterfaceClass: 0x0E -> Video Interface Class
bInterfaceSubClass: 0x02 -> Video Streaming Interface SubClass
bInterfaceProtocol: 0x00
iInterface: 0x00
===>Video Class-Specific VS Video Input Header Descriptor<===
bLength: 0x0E
bDescriptorType: 0x24
bDescriptorSubtype: 0x01
bNumFormats: 0x01
wTotalLength: 0x00B1 -> Validated
bEndpointAddress: 0x81 -> Direction: IN - EndpointID: 1
bmInfo: 0x00 -> Dynamic Format Change not Supported
bTerminalLink: 0x02
bStillCaptureMethod: 0x00 -> No Still Capture
bTriggerSupport: 0x00 -> No Hardware Triggering Support
bTriggerUsage: 0x00
bControlSize: 0x01
Video Payload Format 1 0x00
D00 = 0 no - Key Frame Rate
D01 = 0 no - P Frame Rate
D02 = 0 no - Compression Quality
D03 = 0 no - Compression Window Size
D04 = 0 no - Generate Key Frame
D05 = 0 no - Update Frame Segment
D06 = 0 no - Reserved
D07 = 0 no - Reserved
===>Video Streaming Uncompressed Format Type Descriptor<===
bLength: 0x1B
bDescriptorType: 0x24
bDescriptorSubtype: 0x04
bFormatIndex: 0x01
bNumFrameDescriptors: 0x03
guidFormat: {32595559-0000-0010-8000-00AA00389B71} = YUY2 Format
bBitsPerPixel: 0x10
bDefaultFrameIndex: 0x01
bAspectRatioX: 0x00
bAspectRatioY: 0x00
bmInterlaceFlags: 0x00
D0 = 0x00 Interlaced stream or variable: No
D1 = 0x00 Fields per frame: 2 fields
D2 = 0x00 Field 1 first: No
D3 = 0x00 Reserved
D4..5 = 0x00 Field patterns -> Field 1 only
D6..7 = 0x00 Display Mode -> Bob only
bCopyProtect: 0x00 -> Duplication Unrestricted
===>Video Streaming Uncompressed Frame Type Descriptor<===
--->This is the Default (optimum) Frame index
bLength: 0x2A
bDescriptorType: 0x24
bDescriptorSubtype: 0x05
bFrameIndex: 0x01
bmCapabilities: 0x00
wWidth: 0x0D78 = 3448
wHeight: 0x0328 = 808
dwMinBitRate: 0x00550580
dwMaxBitRate: 0x09F6A500
dwMaxVideoFrameBufferSize: 0x00550580
dwDefaultFrameInterval: 0x00028B0A = 16.666600 mSec (60.00 Hz)
bFrameIntervalType: 0x04
===>Additional Discrete Frame Type Data
dwFrameInterval[1]: 0x00028B0A = 16.666600 mSec (60.00 Hz)
dwFrameInterval[2]: 0x00051615 = 33.333300 mSec (30.00 Hz)
dwFrameInterval[3]: 0x000A2C2A = 66.666600 mSec (15.00 Hz)
dwFrameInterval[4]: 0x001312D0 = 125.000000 mSec (8.00 Hz)
===>Video Streaming Uncompressed Frame Type Descriptor<===
bLength: 0x2E
bDescriptorType: 0x24
bDescriptorSubtype: 0x05
bFrameIndex: 0x02
bmCapabilities: 0x00
wWidth: 0x06D4 = 1748
wHeight: 0x0198 = 408
dwMinBitRate: 0x0015C3C0
dwMaxBitRate: 0x028CF080
dwMaxVideoFrameBufferSize: 0x0015C3C0
dwDefaultFrameInterval: 0x00014585 = 8.333300 mSec (120.00 Hz)
bFrameIntervalType: 0x05
===>Additional Discrete Frame Type Data
dwFrameInterval[1]: 0x00014585 = 8.333300 mSec (120.00 Hz)
dwFrameInterval[2]: 0x00028B0A = 16.666600 mSec (60.00 Hz)
dwFrameInterval[3]: 0x00051615 = 33.333300 mSec (30.00 Hz)
dwFrameInterval[4]: 0x000A2C2A = 66.666600 mSec (15.00 Hz)
dwFrameInterval[5]: 0x001312D0 = 125.000000 mSec (8.00 Hz)
===>Video Streaming Uncompressed Frame Type Descriptor<===
bLength: 0x2A
bDescriptorType: 0x24
bDescriptorSubtype: 0x05
bFrameIndex: 0x03
bmCapabilities: 0x00
wWidth: 0x0382 = 898
wHeight: 0x00C8 = 200
dwMinBitRate: 0x00057B20
dwMaxBitRate: 0x00A46DC0
dwMaxVideoFrameBufferSize: 0x00057B20
dwDefaultFrameInterval: 0x0000A2C2 = 4.166600 mSec (240.00 Hz)
bFrameIntervalType: 0x04
===>Additional Discrete Frame Type Data
dwFrameInterval[1]: 0x0000A2C2 = 4.166600 mSec (240.00 Hz)
dwFrameInterval[2]: 0x00014585 = 8.333300 mSec (120.00 Hz)
dwFrameInterval[3]: 0x00028B0A = 16.666600 mSec (60.00 Hz)
dwFrameInterval[4]: 0x00051615 = 33.333300 mSec (30.00 Hz)
===>Color Matching Descriptor<===
bLength: 0x06
bDescriptorType: 0x24
bDescriptorSubtype: 0x0D
bColorPrimaries: 0x01
bTransferCharacteristics: 0x01
bMatrixCoefficients: 0x04
===>Interface Descriptor<===
bLength: 0x09
bDescriptorType: 0x04
bInterfaceNumber: 0x01
bAlternateSetting: 0x01
bNumEndpoints: 0x01
bInterfaceClass: 0x0E -> Video Interface Class
bInterfaceSubClass: 0x02 -> Video Streaming Interface SubClass
bInterfaceProtocol: 0x00
iInterface: 0x00
===>Endpoint Descriptor<===
bLength: 0x07
bDescriptorType: 0x05
bEndpointAddress: 0x81 -> Direction: IN - EndpointID: 1
bmAttributes: 0x05 -> Isochronous Transfer Type, Synchronization Type = Asynchronous, Usage Type = Data Endpoint
wMaxPacketSize: 0x0400
bInterval: 0x01
===>SuperSpeed Endpoint Companion Descriptor<===
bLength: 0x06
bDescriptorType: 0x30
bMaxBurst: 0x0F
bmAttributes: 0x02 = 48 maximum number of packets within a service interval
wBytesPerInterval: 0xC000
===>Additional Error Checking<===
PASS: number of uncompressed-frame frame descriptors (3) == number of frame descriptors (3) specified in uncompressed format descriptor(s)
===>BOS Descriptor<===
bLength: 0x05
bDescriptorType: 0x0F
wTotalLength: 0x0016
bNumDeviceCaps: 0x02
===>USB 2.0 Extension Descriptor<===
bLength: 0x07
bDescriptorType: 0x10
bDevCapabilityType: 0x02
bmAttributes: 0x00000002 -> Supports Link Power Management protocol
===>SuperSpeed USB Device Capability Descriptor<===
bLength: 0x0A
bDescriptorType: 0x10
bDevCapabilityType: 0x03
bmAttributes: 0x00
wSpeedsSupported: 0x0C
-> Supports high-speed operation
-> Supports SuperSpeed operation
bFunctionalitySupport: 0x02 -> lowest speed = high-speed
bU1DevExitLat: 0x0A -> less than 10 micro-seconds
wU2DevExitLat: 0x0020 -> less than 32 micro-seconds
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment