CZUR Aura Pro - FreeBSD

Hardware info on main page.

local links

c1, c2,

History

2023-04-06: c2 - I connected the scanner to my other FreeBSD workstation, running FreeBSD 13.1-release-p5, this one does not run webcamd

root@kg-core2:~ # freebsd-version -ku
13.1-RELEASE-p3
13.1-RELEASE-p5

from /var/log/messages

Apr  6 18:11:36 kg-core2 kernel: ugen1.6: <iCatchtek Co Ltd CZUR> at usbus1
Apr  6 18:11:36 kg-core2 kernel: uaudio0 on uhub3
Apr  6 18:11:36 kg-core2 kernel: uaudio0: <iCatchtek Co Ltd CZUR, class 239/2, rev 2.00/1.00, addr 5> on usbus1
Apr  6 18:11:36 kg-core2 kernel: uaudio0: No playback.
Apr  6 18:11:36 kg-core2 kernel: uaudio0: Record[0]: 48000 Hz, 1 ch, 16-bit S-LE PCM format, 2x8ms buffer.
Apr  6 18:11:36 kg-core2 kernel: uaudio0: Record[0]: 24000 Hz, 1 ch, 16-bit S-LE PCM format, 2x8ms buffer.
Apr  6 18:11:36 kg-core2 kernel: uaudio0: Record[0]: 16000 Hz, 1 ch, 16-bit S-LE PCM format, 2x8ms buffer.
Apr  6 18:11:36 kg-core2 kernel: uaudio0: No MIDI sequencer.
Apr  6 18:11:36 kg-core2 kernel: pcm4: <USB audio> on uaudio0
Apr  6 18:11:36 kg-core2 kernel: uaudio0: No HID volume keys found.

usbconfig output is the same

root@kg-core2:~ # usbconfig -d ugen1.6
ugen1.6: <iCatchtek Co Ltd CZUR> at usbus1, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (100mA)

and when disconnected, these messages show up in /var/log/messages

Apr  6 19:00:13 kg-core2 kernel: ugen1.6: <iCatchtek Co Ltd CZUR> at usbus1 (disconnected)
Apr  6 19:00:13 kg-core2 kernel: uaudio0: at uhub3, port 2, addr 5 (disconnected)
Apr  6 19:00:13 kg-core2 kernel: pcm4: detached
Apr  6 19:00:13 kg-core2 kernel: uaudio0: detached

2023-04-06: c1 - I can get a picture using vlc, like this vlc v4l2:///dev/video0. If I try video1 instead, I just get the error message "not a video capture device".

2023-04-06: c1 - when the scanner is turned off, these lines show up in /var/log/messages:

Apr  6 17:40:52 kg-core1 kernel: ugen3.5: <iCatchtek Co Ltd CZUR> at usbus3 (disconnected)
Apr  6 17:40:52 kg-core1 kernel: uaudio0: at uhub8, port 1, addr 5 (disconnected)
Apr  6 17:40:52 kg-core1 kernel: pcm4: detached
Apr  6 17:40:52 kg-core1 kernel: uaudio0: detached

2023-04-06: c1 - I connected this scanner to a workstation running FreeBSD 13.1-release-p7 to collect some info.

root@kg-core1:~ # freebsd-version -ku
13.1-RELEASE-p6
13.1-RELEASE-p7

from /var/log/messages (when the scanner is turned on - press the button until the camera icon lights up)

Apr  6 16:09:01 kg-core1 kernel: ugen3.5: <iCatchtek Co Ltd CZUR> at usbus3
Apr  6 16:09:01 kg-core1 webcamd[8176]: Webcamd is already running for ugen3.5.0
Apr  6 16:09:01 kg-core1 webcamd[8183]: Webcamd is already running for ugen3.5.0
Apr  6 16:09:01 kg-core1 kernel: uaudio0 on uhub8
Apr  6 16:09:01 kg-core1 kernel: uaudio0: <iCatchtek Co Ltd CZUR, class 239/2, rev 2.00/1.00, addr 5> on usbus3
Apr  6 16:09:01 kg-core1 kernel: uaudio0: No playback.
Apr  6 16:09:01 kg-core1 kernel: uaudio0: Record[0]: 48000 Hz, 1 ch, 16-bit S-LE PCM format, 2x8ms buffer.
Apr  6 16:09:01 kg-core1 kernel: uaudio0: Record[0]: 24000 Hz, 1 ch, 16-bit S-LE PCM format, 2x8ms buffer.
Apr  6 16:09:01 kg-core1 kernel: uaudio0: Record[0]: 16000 Hz, 1 ch, 16-bit S-LE PCM format, 2x8ms buffer.
Apr  6 16:09:01 kg-core1 kernel: uaudio0: No MIDI sequencer.
Apr  6 16:09:01 kg-core1 kernel: pcm4: <USB audio> on uaudio0
Apr  6 16:09:01 kg-core1 kernel: uaudio0: No HID volume keys found.

usbconfig info

root@kg-core1:~ # usbconfig -d ugen3.5
ugen3.5: <iCatchtek Co Ltd CZUR> at usbus3, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (100mA)

device descriptor

root@kg-core1:~ # usbconfig -d ugen3.5 dump_device_desc
ugen3.5: <iCatchtek Co Ltd CZUR> at usbus3, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (100mA)

  bLength = 0x0012 
  bDescriptorType = 0x0001 
  bcdUSB = 0x0200 
  bDeviceClass = 0x00ef  <Miscellaneous device>
  bDeviceSubClass = 0x0002 
  bDeviceProtocol = 0x0001 
  bMaxPacketSize0 = 0x0040 
  idVendor = 0x04fc 
  idProduct = 0x1101 
  bcdDevice = 0x0100 
  iManufacturer = 0x0001  <iCatchtek Co Ltd >
  iProduct = 0x0002  <CZUR>
  iSerialNumber = 0x0003  <01.00.00>
  bNumConfigurations = 0x0001 

current config descriptor

root@kg-core1:~ # usbconfig -d ugen3.5 dump_curr_config_desc
ugen3.5: <iCatchtek Co Ltd CZUR> at usbus3, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (100mA)


 Configuration index 0

    bLength = 0x0009 
    bDescriptorType = 0x0002 
    wTotalLength = 0x0579 
    bNumInterfaces = 0x0005 
    bConfigurationValue = 0x0001 
    iConfiguration = 0x0000  <no string>
    bmAttributes = 0x00c0 
    bMaxPower = 0x0032 

    Additional Descriptor

    bLength = 0x08
    bDescriptorType = 0x0b
    bDescriptorSubType = 0x00
     RAW dump: 
     0x00 | 0x08, 0x0b, 0x00, 0x03, 0x0e, 0x03, 0x00, 0x00


    Interface 0
      bLength = 0x0009 
      bDescriptorType = 0x0004 
      bInterfaceNumber = 0x0000 
      bAlternateSetting = 0x0000 
      bNumEndpoints = 0x0001 
      bInterfaceClass = 0x000e  <Video device>
      bInterfaceSubClass = 0x0001 
      bInterfaceProtocol = 0x0000 
      iInterface = 0x0000  <no string>

      Additional Descriptor

      bLength = 0x0d
      bDescriptorType = 0x24
      bDescriptorSubType = 0x01
       RAW dump: 
       0x00 | 0x0d, 0x24, 0x01, 0x00, 0x01, 0x50, 0x00, 0x00, 
       0x08 | 0x6c, 0xdc, 0x02, 0x01, 0x02


      Additional Descriptor

      bLength = 0x12
      bDescriptorType = 0x24
      bDescriptorSubType = 0x02
       RAW dump: 
       0x00 | 0x12, 0x24, 0x02, 0x01, 0x01, 0x02, 0x00, 0x00, 
       0x08 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x2e, 
       0x10 | 0x00, 0x02


      Additional Descriptor

      bLength = 0x0b
      bDescriptorType = 0x24
      bDescriptorSubType = 0x05
       RAW dump: 
       0x00 | 0x0b, 0x24, 0x05, 0x02, 0x01, 0x00, 0x00, 0x02, 
       0x08 | 0x40, 0x20, 0x00


      Additional Descriptor

      bLength = 0x1d
      bDescriptorType = 0x24
      bDescriptorSubType = 0x06
       RAW dump: 
       0x00 | 0x1d, 0x24, 0x06, 0x03, 0x82, 0x06, 0x61, 0x63, 
       0x08 | 0x70, 0x50, 0xab, 0x49, 0xb8, 0xcc, 0xb3, 0x85, 
       0x10 | 0x5e, 0x8d, 0x22, 0x1d, 0x00, 0x01, 0x02, 0x04, 
       0x18 | 0xff, 0xff, 0xff, 0xff, 0x00


      Additional Descriptor

      bLength = 0x09
      bDescriptorType = 0x24
      bDescriptorSubType = 0x03
       RAW dump: 
       0x00 | 0x09, 0x24, 0x03, 0x05, 0x01, 0x01, 0x00, 0x03, 
       0x08 | 0x00

     Endpoint 0
        bLength = 0x0007 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0087  <IN>
        bmAttributes = 0x0003  <INTERRUPT>
        wMaxPacketSize = 0x0020 
        bInterval = 0x0001 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000 

      Additional Descriptor

      bLength = 0x05
      bDescriptorType = 0x25
      bDescriptorSubType = 0x03
       RAW dump: 
       0x00 | 0x05, 0x25, 0x03, 0x20, 0x00



    Interface 1
      bLength = 0x0009 
      bDescriptorType = 0x0004 
      bInterfaceNumber = 0x0001 
      bAlternateSetting = 0x0000 
      bNumEndpoints = 0x0000 
      bInterfaceClass = 0x000e  <Video device>
      bInterfaceSubClass = 0x0002 
      bInterfaceProtocol = 0x0000 
      iInterface = 0x0000  <no string>

      Additional Descriptor

      bLength = 0x0e
      bDescriptorType = 0x24
      bDescriptorSubType = 0x01
       RAW dump: 
       0x00 | 0x0e, 0x24, 0x01, 0x01, 0xc5, 0x00, 0x88, 0x00, 
       0x08 | 0x04, 0x01, 0x00, 0x00, 0x01, 0x00


      Additional Descriptor

      bLength = 0x1b
      bDescriptorType = 0x24
      bDescriptorSubType = 0x04
       RAW dump: 
       0x00 | 0x1b, 0x24, 0x04, 0x01, 0x03, 0x59, 0x55, 0x59, 
       0x08 | 0x32, 0x00, 0x00, 0x10, 0x00, 0x80, 0x00, 0x00, 
       0x10 | 0xaa, 0x00, 0x38, 0x9b, 0x71, 0x10, 0x01, 0x00, 
       0x18 | 0x00, 0x00, 0x00


      Additional Descriptor

      bLength = 0x32
      bDescriptorType = 0x24
      bDescriptorSubType = 0x05
       RAW dump: 
       0x00 | 0x32, 0x24, 0x05, 0x01, 0x01, 0x80, 0x02, 0xe0, 
       0x08 | 0x01, 0x00, 0x00, 0x77, 0x01, 0x00, 0x00, 0xca, 
       0x10 | 0x08, 0x00, 0x60, 0x09, 0x00, 0x15, 0x16, 0x05, 
       0x18 | 0x00, 0x06, 0x15, 0x16, 0x05, 0x00, 0x80, 0x1a, 
       0x20 | 0x06, 0x00, 0x20, 0xa1, 0x07, 0x00, 0x2a, 0x2c, 
       0x28 | 0x0a, 0x00, 0x40, 0x42, 0x0f, 0x00, 0x80, 0x84, 
       0x30 | 0x1e, 0x00


      Additional Descriptor

      bLength = 0x32
      bDescriptorType = 0x24
      bDescriptorSubType = 0x05
       RAW dump: 
       0x00 | 0x32, 0x24, 0x05, 0x02, 0x01, 0x40, 0x01, 0xf0, 
       0x08 | 0x00, 0x00, 0xc0, 0x5d, 0x00, 0x00, 0x80, 0x32, 
       0x10 | 0x02, 0x00, 0x58, 0x02, 0x00, 0x15, 0x16, 0x05, 
       0x18 | 0x00, 0x06, 0x15, 0x16, 0x05, 0x00, 0x80, 0x1a, 
       0x20 | 0x06, 0x00, 0x20, 0xa1, 0x07, 0x00, 0x2a, 0x2c, 
       0x28 | 0x0a, 0x00, 0x40, 0x42, 0x0f, 0x00, 0x80, 0x84, 
       0x30 | 0x1e, 0x00


      Additional Descriptor

      bLength = 0x32
      bDescriptorType = 0x24
      bDescriptorSubType = 0x05
       RAW dump: 
       0x00 | 0x32, 0x24, 0x05, 0x03, 0x01, 0x80, 0x01, 0xd8, 
       0x08 | 0x00, 0x00, 0x40, 0x65, 0x00, 0x00, 0x80, 0x5f, 
       0x10 | 0x02, 0x00, 0x88, 0x02, 0x00, 0x15, 0x16, 0x05, 
       0x18 | 0x00, 0x06, 0x15, 0x16, 0x05, 0x00, 0x80, 0x1a, 
       0x20 | 0x06, 0x00, 0x20, 0xa1, 0x07, 0x00, 0x2a, 0x2c, 
       0x28 | 0x0a, 0x00, 0x40, 0x42, 0x0f, 0x00, 0x80, 0x84, 
       0x30 | 0x1e, 0x00


      Additional Descriptor

      bLength = 0x06
      bDescriptorType = 0x24
      bDescriptorSubType = 0x0d
       RAW dump: 
       0x00 | 0x06, 0x24, 0x0d, 0x01, 0x01, 0x04



    Interface 1 Alt 1
      bLength = 0x0009 
      bDescriptorType = 0x0004 
      bInterfaceNumber = 0x0001 
      bAlternateSetting = 0x0001 
      bNumEndpoints = 0x0001 
      bInterfaceClass = 0x000e  <Video device>
      bInterfaceSubClass = 0x0002 
      bInterfaceProtocol = 0x0000 
      iInterface = 0x0000  <no string>

     Endpoint 0
        bLength = 0x0007 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0088  <IN>
        bmAttributes = 0x0005  <ASYNC-ISOCHRONOUS>
        wMaxPacketSize = 0x0080 
        bInterval = 0x0001 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000 


    Interface 1 Alt 2
      bLength = 0x0009 
      bDescriptorType = 0x0004 
      bInterfaceNumber = 0x0001 
      bAlternateSetting = 0x0002 
      bNumEndpoints = 0x0001 
      bInterfaceClass = 0x000e  <Video device>
      bInterfaceSubClass = 0x0002 
      bInterfaceProtocol = 0x0000 
      iInterface = 0x0000  <no string>

     Endpoint 0
        bLength = 0x0007 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0088  <IN>
        bmAttributes = 0x0005  <ASYNC-ISOCHRONOUS>
        wMaxPacketSize = 0x0180 
        bInterval = 0x0001 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000 


    Interface 1 Alt 3
      bLength = 0x0009 
      bDescriptorType = 0x0004 
      bInterfaceNumber = 0x0001 
      bAlternateSetting = 0x0003 
      bNumEndpoints = 0x0001 
      bInterfaceClass = 0x000e  <Video device>
      bInterfaceSubClass = 0x0002 
      bInterfaceProtocol = 0x0000 
      iInterface = 0x0000  <no string>

     Endpoint 0
        bLength = 0x0007 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0088  <IN>
        bmAttributes = 0x0005  <ASYNC-ISOCHRONOUS>
        wMaxPacketSize = 0x0200 
        bInterval = 0x0001 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000 


    Interface 1 Alt 4
      bLength = 0x0009 
      bDescriptorType = 0x0004 
      bInterfaceNumber = 0x0001 
      bAlternateSetting = 0x0004 
      bNumEndpoints = 0x0001 
      bInterfaceClass = 0x000e  <Video device>
      bInterfaceSubClass = 0x0002 
      bInterfaceProtocol = 0x0000 
      iInterface = 0x0000  <no string>

     Endpoint 0
        bLength = 0x0007 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0088  <IN>
        bmAttributes = 0x0005  <ASYNC-ISOCHRONOUS>
        wMaxPacketSize = 0x1280 
        bInterval = 0x0001 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000 


    Interface 2
      bLength = 0x0009 
      bDescriptorType = 0x0004 
      bInterfaceNumber = 0x0002 
      bAlternateSetting = 0x0000 
      bNumEndpoints = 0x0000 
      bInterfaceClass = 0x000e  <Video device>
      bInterfaceSubClass = 0x0002 
      bInterfaceProtocol = 0x0000 
      iInterface = 0x0000  <no string>

      Additional Descriptor

      bLength = 0x0f
      bDescriptorType = 0x24
      bDescriptorSubType = 0x01
       RAW dump: 
       0x00 | 0x0f, 0x24, 0x01, 0x02, 0x3f, 0x02, 0x81, 0x00, 
       0x08 | 0x05, 0x02, 0x01, 0x01, 0x01, 0x00, 0x00


      Additional Descriptor

      bLength = 0x0b
      bDescriptorType = 0x24
      bDescriptorSubType = 0x06
       RAW dump: 
       0x00 | 0x0b, 0x24, 0x06, 0x02, 0x09, 0x01, 0x01, 0x00, 
       0x08 | 0x00, 0x00, 0x00


      Additional Descriptor

      bLength = 0x1e
      bDescriptorType = 0x24
      bDescriptorSubType = 0x07
       RAW dump: 
       0x00 | 0x1e, 0x24, 0x07, 0x01, 0x00, 0x00, 0x06, 0x80, 
       0x08 | 0x04, 0x00, 0x00, 0x77, 0x01, 0x00, 0x00, 0xca, 
       0x10 | 0x08, 0x00, 0x60, 0x09, 0x00, 0x15, 0x16, 0x05, 
       0x18 | 0x00, 0x01, 0x15, 0x16, 0x05, 0x00


      Additional Descriptor

      bLength = 0x1e
      bDescriptorType = 0x24
      bDescriptorSubType = 0x07
       RAW dump: 
       0x00 | 0x1e, 0x24, 0x07, 0x02, 0x00, 0x00, 0x0c, 0xc0, 
       0x08 | 0x06, 0x00, 0x00, 0x77, 0x01, 0x00, 0x00, 0xca, 
       0x10 | 0x08, 0x00, 0x60, 0x09, 0x00, 0x15, 0x16, 0x05, 
       0x18 | 0x00, 0x01, 0x15, 0x16, 0x05, 0x00


      Additional Descriptor

      bLength = 0x32
      bDescriptorType = 0x24
      bDescriptorSubType = 0x07
       RAW dump: 
       0x00 | 0x32, 0x24, 0x07, 0x03, 0x00, 0x80, 0x02, 0xe0, 
       0x08 | 0x01, 0x00, 0x00, 0x77, 0x01, 0x00, 0x00, 0xca, 
       0x10 | 0x08, 0x00, 0x60, 0x09, 0x00, 0x15, 0x16, 0x05, 
       0x18 | 0x00, 0x06, 0x15, 0x16, 0x05, 0x00, 0x80, 0x1a, 
       0x20 | 0x06, 0x00, 0x20, 0xa1, 0x07, 0x00, 0x2a, 0x2c, 
       0x28 | 0x0a, 0x00, 0x40, 0x42, 0x0f, 0x00, 0x80, 0x84, 
       0x30 | 0x1e, 0x00


      Additional Descriptor

      bLength = 0x32
      bDescriptorType = 0x24
      bDescriptorSubType = 0x07
       RAW dump: 
       0x00 | 0x32, 0x24, 0x07, 0x04, 0x00, 0x40, 0x01, 0xf0, 
       0x08 | 0x00, 0x00, 0xc0, 0x5d, 0x00, 0x00, 0x80, 0x32, 
       0x10 | 0x02, 0x00, 0x58, 0x02, 0x00, 0x15, 0x16, 0x05, 
       0x18 | 0x00, 0x06, 0x15, 0x16, 0x05, 0x00, 0x80, 0x1a, 
       0x20 | 0x06, 0x00, 0x20, 0xa1, 0x07, 0x00, 0x2a, 0x2c, 
       0x28 | 0x0a, 0x00, 0x40, 0x42, 0x0f, 0x00, 0x80, 0x84, 
       0x30 | 0x1e, 0x00


      Additional Descriptor

      bLength = 0x32
      bDescriptorType = 0x24
      bDescriptorSubType = 0x07
       RAW dump: 
       0x00 | 0x32, 0x24, 0x07, 0x05, 0x00, 0x00, 0x05, 0xd0, 
       0x08 | 0x02, 0x00, 0x00, 0x77, 0x01, 0x00, 0x00, 0xca, 
       0x10 | 0x08, 0x00, 0x60, 0x09, 0x00, 0x15, 0x16, 0x05, 
       0x18 | 0x00, 0x06, 0x15, 0x16, 0x05, 0x00, 0x80, 0x1a, 
       0x20 | 0x06, 0x00, 0x20, 0xa1, 0x07, 0x00, 0x2a, 0x2c, 
       0x28 | 0x0a, 0x00, 0x40, 0x42, 0x0f, 0x00, 0x80, 0x84, 
       0x30 | 0x1e, 0x00


      Additional Descriptor

      bLength = 0x32
      bDescriptorType = 0x24
      bDescriptorSubType = 0x07
       RAW dump: 
       0x00 | 0x32, 0x24, 0x07, 0x06, 0x00, 0x00, 0x09, 0xc0, 
       0x08 | 0x06, 0x00, 0x00, 0x77, 0x01, 0x00, 0x00, 0xca, 
       0x10 | 0x08, 0x00, 0x60, 0x09, 0x00, 0x15, 0x16, 0x05, 
       0x18 | 0x00, 0x06, 0x15, 0x16, 0x05, 0x00, 0x80, 0x1a, 
       0x20 | 0x06, 0x00, 0x20, 0xa1, 0x07, 0x00, 0x2a, 0x2c, 
       0x28 | 0x0a, 0x00, 0x40, 0x42, 0x0f, 0x00, 0x80, 0x84, 
       0x30 | 0x1e, 0x00


      Additional Descriptor

      bLength = 0x1e
      bDescriptorType = 0x24
      bDescriptorSubType = 0x07
       RAW dump: 
       0x00 | 0x1e, 0x24, 0x07, 0x07, 0x00, 0x80, 0x07, 0x38, 
       0x08 | 0x04, 0x00, 0x00, 0x77, 0x01, 0x00, 0x00, 0xca, 
       0x10 | 0x08, 0x00, 0x60, 0x09, 0x00, 0x15, 0x16, 0x05, 
       0x18 | 0x00, 0x01, 0x15, 0x16, 0x05, 0x00


      Additional Descriptor

      bLength = 0x1e
      bDescriptorType = 0x24
      bDescriptorSubType = 0x07
       RAW dump: 
       0x00 | 0x1e, 0x24, 0x07, 0x08, 0x00, 0xb8, 0x11, 0x80, 
       0x08 | 0x0d, 0x00, 0x00, 0x77, 0x01, 0x00, 0x00, 0xca, 
       0x10 | 0x08, 0x00, 0x60, 0x09, 0x00, 0x15, 0x16, 0x05, 
       0x18 | 0x00, 0x01, 0x15, 0x16, 0x05, 0x00


      Additional Descriptor

      bLength = 0x1e
      bDescriptorType = 0x24
      bDescriptorSubType = 0x07
       RAW dump: 
       0x00 | 0x1e, 0x24, 0x07, 0x09, 0x00, 0x00, 0x12, 0x80, 
       0x08 | 0x0d, 0x00, 0x00, 0x77, 0x01, 0x00, 0x00, 0xca, 
       0x10 | 0x08, 0x00, 0x60, 0x09, 0x00, 0x15, 0x16, 0x05, 
       0x18 | 0x00, 0x01, 0x15, 0x16, 0x05, 0x00


      Additional Descriptor

      bLength = 0x16
      bDescriptorType = 0x24
      bDescriptorSubType = 0x03
       RAW dump: 
       0x00 | 0x16, 0x24, 0x03, 0x00, 0x04, 0x00, 0x12, 0x80, 
       0x08 | 0x0d, 0x80, 0x02, 0xe0, 0x01, 0x00, 0x05, 0xd0, 
       0x10 | 0x02, 0x20, 0x0a, 0x98, 0x07, 0x00


      Additional Descriptor

      bLength = 0x1b
      bDescriptorType = 0x24
      bDescriptorSubType = 0x04
       RAW dump: 
       0x00 | 0x1b, 0x24, 0x04, 0x01, 0x04, 0x59, 0x55, 0x59, 
       0x08 | 0x32, 0x00, 0x00, 0x10, 0x00, 0x80, 0x00, 0x00, 
       0x10 | 0xaa, 0x00, 0x38, 0x9b, 0x71, 0x10, 0x01, 0x00, 
       0x18 | 0x00, 0x00, 0x00


      Additional Descriptor

      bLength = 0x1e
      bDescriptorType = 0x24
      bDescriptorSubType = 0x05
       RAW dump: 
       0x00 | 0x1e, 0x24, 0x05, 0x01, 0x00, 0x80, 0x02, 0xe0, 
       0x08 | 0x01, 0x00, 0x00, 0x77, 0x01, 0x00, 0x00, 0xca, 
       0x10 | 0x08, 0x00, 0x60, 0x09, 0x00, 0x2a, 0x2c, 0x0a, 
       0x18 | 0x00, 0x01, 0x2a, 0x2c, 0x0a, 0x00


      Additional Descriptor

      bLength = 0x32
      bDescriptorType = 0x24
      bDescriptorSubType = 0x05
       RAW dump: 
       0x00 | 0x32, 0x24, 0x05, 0x02, 0x00, 0x40, 0x01, 0xf0, 
       0x08 | 0x00, 0x00, 0xc0, 0x5d, 0x00, 0x00, 0x80, 0x32, 
       0x10 | 0x02, 0x00, 0x58, 0x02, 0x00, 0x15, 0x16, 0x05, 
       0x18 | 0x00, 0x06, 0x15, 0x16, 0x05, 0x00, 0x80, 0x1a, 
       0x20 | 0x06, 0x00, 0x20, 0xa1, 0x07, 0x00, 0x2a, 0x2c, 
       0x28 | 0x0a, 0x00, 0x40, 0x42, 0x0f, 0x00, 0x80, 0x84, 
       0x30 | 0x1e, 0x00


      Additional Descriptor

      bLength = 0x22
      bDescriptorType = 0x24
      bDescriptorSubType = 0x05
       RAW dump: 
       0x00 | 0x22, 0x24, 0x05, 0x03, 0x00, 0x00, 0x05, 0xd0, 
       0x08 | 0x02, 0x00, 0x00, 0x77, 0x01, 0x00, 0x00, 0xca, 
       0x10 | 0x08, 0x00, 0x60, 0x09, 0x00, 0x80, 0x84, 0x1e, 
       0x18 | 0x00, 0x02, 0x40, 0x42, 0x0f, 0x00, 0x80, 0x84, 
       0x20 | 0x1e, 0x00


      Additional Descriptor

      bLength = 0x1e
      bDescriptorType = 0x24
      bDescriptorSubType = 0x05
       RAW dump: 
       0x00 | 0x1e, 0x24, 0x05, 0x04, 0x00, 0x00, 0x09, 0xc0, 
       0x08 | 0x06, 0x00, 0x00, 0x77, 0x01, 0x00, 0x00, 0xca, 
       0x10 | 0x08, 0x00, 0x60, 0x09, 0x00, 0x15, 0x16, 0x05, 
       0x18 | 0x00, 0x01, 0x80, 0x84, 0x1e, 0x00


      Additional Descriptor

      bLength = 0x06
      bDescriptorType = 0x24
      bDescriptorSubType = 0x0d
       RAW dump: 
       0x00 | 0x06, 0x24, 0x0d, 0x01, 0x01, 0x04



    Interface 2 Alt 1
      bLength = 0x0009 
      bDescriptorType = 0x0004 
      bInterfaceNumber = 0x0002 
      bAlternateSetting = 0x0001 
      bNumEndpoints = 0x0001 
      bInterfaceClass = 0x000e  <Video device>
      bInterfaceSubClass = 0x0002 
      bInterfaceProtocol = 0x0000 
      iInterface = 0x0000  <no string>

     Endpoint 0
        bLength = 0x0007 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0081  <IN>
        bmAttributes = 0x0005  <ASYNC-ISOCHRONOUS>
        wMaxPacketSize = 0x0080 
        bInterval = 0x0001 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000 


    Interface 2 Alt 2
      bLength = 0x0009 
      bDescriptorType = 0x0004 
      bInterfaceNumber = 0x0002 
      bAlternateSetting = 0x0002 
      bNumEndpoints = 0x0001 
      bInterfaceClass = 0x000e  <Video device>
      bInterfaceSubClass = 0x0002 
      bInterfaceProtocol = 0x0000 
      iInterface = 0x0000  <no string>

     Endpoint 0
        bLength = 0x0007 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0081  <IN>
        bmAttributes = 0x0005  <ASYNC-ISOCHRONOUS>
        wMaxPacketSize = 0x0180 
        bInterval = 0x0001 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000 


    Interface 2 Alt 3
      bLength = 0x0009 
      bDescriptorType = 0x0004 
      bInterfaceNumber = 0x0002 
      bAlternateSetting = 0x0003 
      bNumEndpoints = 0x0001 
      bInterfaceClass = 0x000e  <Video device>
      bInterfaceSubClass = 0x0002 
      bInterfaceProtocol = 0x0000 
      iInterface = 0x0000  <no string>

     Endpoint 0
        bLength = 0x0007 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0081  <IN>
        bmAttributes = 0x0005  <ASYNC-ISOCHRONOUS>
        wMaxPacketSize = 0x0200 
        bInterval = 0x0001 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000 


    Interface 2 Alt 4
      bLength = 0x0009 
      bDescriptorType = 0x0004 
      bInterfaceNumber = 0x0002 
      bAlternateSetting = 0x0004 
      bNumEndpoints = 0x0001 
      bInterfaceClass = 0x000e  <Video device>
      bInterfaceSubClass = 0x0002 
      bInterfaceProtocol = 0x0000 
      iInterface = 0x0000  <no string>

     Endpoint 0
        bLength = 0x0007 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0081  <IN>
        bmAttributes = 0x0005  <ASYNC-ISOCHRONOUS>
        wMaxPacketSize = 0x1280 
        bInterval = 0x0001 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000 

      Additional Descriptor

      bLength = 0x08
      bDescriptorType = 0x0b
      bDescriptorSubType = 0x03
       RAW dump: 
       0x00 | 0x08, 0x0b, 0x03, 0x02, 0x01, 0x02, 0x00, 0x00



    Interface 3
      bLength = 0x0009 
      bDescriptorType = 0x0004 
      bInterfaceNumber = 0x0003 
      bAlternateSetting = 0x0000 
      bNumEndpoints = 0x0000 
      bInterfaceClass = 0x0001  <Audio device>
      bInterfaceSubClass = 0x0001 
      bInterfaceProtocol = 0x0000 
      iInterface = 0x0000  <no string>

      Additional Descriptor

      bLength = 0x09
      bDescriptorType = 0x24
      bDescriptorSubType = 0x01
       RAW dump: 
       0x00 | 0x09, 0x24, 0x01, 0x00, 0x01, 0x26, 0x00, 0x01, 
       0x08 | 0x04

      Additional Descriptor

      bLength = 0x0c
      bDescriptorType = 0x24
      bDescriptorSubType = 0x02
       RAW dump: 
       0x00 | 0x0c, 0x24, 0x02, 0x01, 0x01, 0x02, 0x00, 0x01, 
       0x08 | 0x00, 0x00, 0x00, 0x00


      Additional Descriptor

      bLength = 0x09
      bDescriptorType = 0x24
      bDescriptorSubType = 0x03
       RAW dump: 
       0x00 | 0x09, 0x24, 0x03, 0x03, 0x01, 0x01, 0x00, 0x05, 
       0x08 | 0x00

      Additional Descriptor

      bLength = 0x08
      bDescriptorType = 0x24
      bDescriptorSubType = 0x06
       RAW dump: 
       0x00 | 0x08, 0x24, 0x06, 0x05, 0x01, 0x01, 0x03, 0x00



    Interface 4
      bLength = 0x0009 
      bDescriptorType = 0x0004 
      bInterfaceNumber = 0x0004 
      bAlternateSetting = 0x0000 
      bNumEndpoints = 0x0000 
      bInterfaceClass = 0x0001  <Audio device>
      bInterfaceSubClass = 0x0002 
      bInterfaceProtocol = 0x0000 
      iInterface = 0x0000  <no string>


    Interface 4 Alt 1
      bLength = 0x0009 
      bDescriptorType = 0x0004 
      bInterfaceNumber = 0x0004 
      bAlternateSetting = 0x0001 
      bNumEndpoints = 0x0001 
      bInterfaceClass = 0x0001  <Audio device>
      bInterfaceSubClass = 0x0002 
      bInterfaceProtocol = 0x0000 
      iInterface = 0x0000  <no string>

      Additional Descriptor

      bLength = 0x07
      bDescriptorType = 0x24
      bDescriptorSubType = 0x01
       RAW dump: 
       0x00 | 0x07, 0x24, 0x01, 0x03, 0x01, 0x01, 0x00


      Additional Descriptor

      bLength = 0x0b
      bDescriptorType = 0x24
      bDescriptorSubType = 0x02
       RAW dump: 
       0x00 | 0x0b, 0x24, 0x02, 0x01, 0x01, 0x02, 0x10, 0x01, 
       0x08 | 0x80, 0x3e, 0x00


     Endpoint 0
        bLength = 0x0009 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0086  <IN>
        bmAttributes = 0x0005  <ASYNC-ISOCHRONOUS>
        wMaxPacketSize = 0x0020 
        bInterval = 0x0004 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000 

      Additional Descriptor

      bLength = 0x07
      bDescriptorType = 0x25
      bDescriptorSubType = 0x01
       RAW dump: 
       0x00 | 0x07, 0x25, 0x01, 0x01, 0x00, 0x00, 0x00



    Interface 4 Alt 2
      bLength = 0x0009 
      bDescriptorType = 0x0004 
      bInterfaceNumber = 0x0004 
      bAlternateSetting = 0x0002 
      bNumEndpoints = 0x0001 
      bInterfaceClass = 0x0001  <Audio device>
      bInterfaceSubClass = 0x0002 
      bInterfaceProtocol = 0x0000 
      iInterface = 0x0000  <no string>

      Additional Descriptor

      bLength = 0x07
      bDescriptorType = 0x24
      bDescriptorSubType = 0x01
       RAW dump: 
       0x00 | 0x07, 0x24, 0x01, 0x03, 0x01, 0x01, 0x00


      Additional Descriptor

      bLength = 0x0b
      bDescriptorType = 0x24
      bDescriptorSubType = 0x02
       RAW dump: 
       0x00 | 0x0b, 0x24, 0x02, 0x01, 0x01, 0x02, 0x10, 0x01, 
       0x08 | 0xc0, 0x5d, 0x00


     Endpoint 0
        bLength = 0x0009 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0086  <IN>
        bmAttributes = 0x0005  <ASYNC-ISOCHRONOUS>
        wMaxPacketSize = 0x0040 
        bInterval = 0x0004 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000 

      Additional Descriptor

      bLength = 0x07
      bDescriptorType = 0x25
      bDescriptorSubType = 0x01
       RAW dump: 
       0x00 | 0x07, 0x25, 0x01, 0x01, 0x00, 0x00, 0x00



    Interface 4 Alt 3
      bLength = 0x0009 
      bDescriptorType = 0x0004 
      bInterfaceNumber = 0x0004 
      bAlternateSetting = 0x0003 
      bNumEndpoints = 0x0001 
      bInterfaceClass = 0x0001  <Audio device>
      bInterfaceSubClass = 0x0002 
      bInterfaceProtocol = 0x0000 
      iInterface = 0x0000  <no string>

      Additional Descriptor

      bLength = 0x07
      bDescriptorType = 0x24
      bDescriptorSubType = 0x01
       RAW dump: 
       0x00 | 0x07, 0x24, 0x01, 0x03, 0x01, 0x01, 0x00


      Additional Descriptor

      bLength = 0x0b
      bDescriptorType = 0x24
      bDescriptorSubType = 0x02
       RAW dump: 
       0x00 | 0x0b, 0x24, 0x02, 0x01, 0x01, 0x02, 0x10, 0x01, 
       0x08 | 0xc0, 0x5d, 0x00


     Endpoint 0
        bLength = 0x0009 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0086  <IN>
        bmAttributes = 0x0005  <ASYNC-ISOCHRONOUS>
        wMaxPacketSize = 0x0060 
        bInterval = 0x0004 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000 

      Additional Descriptor

      bLength = 0x07
      bDescriptorType = 0x25
      bDescriptorSubType = 0x01
       RAW dump: 
       0x00 | 0x07, 0x25, 0x01, 0x01, 0x00, 0x00, 0x00



    Interface 4 Alt 4
      bLength = 0x0009 
      bDescriptorType = 0x0004 
      bInterfaceNumber = 0x0004 
      bAlternateSetting = 0x0004 
      bNumEndpoints = 0x0001 
      bInterfaceClass = 0x0001  <Audio device>
      bInterfaceSubClass = 0x0002 
      bInterfaceProtocol = 0x0000 
      iInterface = 0x0000  <no string>

      Additional Descriptor

      bLength = 0x07
      bDescriptorType = 0x24
      bDescriptorSubType = 0x01
       RAW dump: 
       0x00 | 0x07, 0x24, 0x01, 0x03, 0x01, 0x01, 0x00


      Additional Descriptor

      bLength = 0x0b
      bDescriptorType = 0x24
      bDescriptorSubType = 0x02
       RAW dump: 
       0x00 | 0x0b, 0x24, 0x02, 0x01, 0x01, 0x02, 0x10, 0x01, 
       0x08 | 0x80, 0xbb, 0x00


     Endpoint 0
        bLength = 0x0009 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0086  <IN>
        bmAttributes = 0x0005  <ASYNC-ISOCHRONOUS>
        wMaxPacketSize = 0x0080 
        bInterval = 0x0004 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000 

      Additional Descriptor

      bLength = 0x07
      bDescriptorType = 0x25
      bDescriptorSubType = 0x01
       RAW dump: 
       0x00 | 0x07, 0x25, 0x01, 0x01, 0x00, 0x00, 0x00



    Interface 4 Alt 5
      bLength = 0x0009 
      bDescriptorType = 0x0004 
      bInterfaceNumber = 0x0004 
      bAlternateSetting = 0x0005 
      bNumEndpoints = 0x0001 
      bInterfaceClass = 0x0001  <Audio device>
      bInterfaceSubClass = 0x0002 
      bInterfaceProtocol = 0x0000 
      iInterface = 0x0000  <no string>

      Additional Descriptor

      bLength = 0x07
      bDescriptorType = 0x24
      bDescriptorSubType = 0x01
       RAW dump: 
       0x00 | 0x07, 0x24, 0x01, 0x03, 0x01, 0x01, 0x00


      Additional Descriptor

      bLength = 0x0b
      bDescriptorType = 0x24
      bDescriptorSubType = 0x02
       RAW dump: 
       0x00 | 0x0b, 0x24, 0x02, 0x01, 0x01, 0x02, 0x10, 0x01, 
       0x08 | 0x80, 0xbb, 0x00


     Endpoint 0
        bLength = 0x0009 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0086  <IN>
        bmAttributes = 0x0005  <ASYNC-ISOCHRONOUS>
        wMaxPacketSize = 0x00a0 
        bInterval = 0x0004 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000 

      Additional Descriptor

      bLength = 0x07
      bDescriptorType = 0x25
      bDescriptorSubType = 0x01
       RAW dump: 
       0x00 | 0x07, 0x25, 0x01, 0x01, 0x00, 0x00, 0x00



    Interface 4 Alt 6
      bLength = 0x0009 
      bDescriptorType = 0x0004 
      bInterfaceNumber = 0x0004 
      bAlternateSetting = 0x0006 
      bNumEndpoints = 0x0001 
      bInterfaceClass = 0x0001  <Audio device>
      bInterfaceSubClass = 0x0002 
      bInterfaceProtocol = 0x0000 
      iInterface = 0x0000  <no string>

      Additional Descriptor

      bLength = 0x07
      bDescriptorType = 0x24
      bDescriptorSubType = 0x01
       RAW dump: 
       0x00 | 0x07, 0x24, 0x01, 0x03, 0x01, 0x01, 0x00


      Additional Descriptor

      bLength = 0x0b
      bDescriptorType = 0x24
      bDescriptorSubType = 0x02
       RAW dump: 
       0x00 | 0x0b, 0x24, 0x02, 0x01, 0x01, 0x02, 0x10, 0x01, 
       0x08 | 0x80, 0xbb, 0x00


     Endpoint 0
        bLength = 0x0009 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0086  <IN>
        bmAttributes = 0x0005  <ASYNC-ISOCHRONOUS>
        wMaxPacketSize = 0x00c0 
        bInterval = 0x0004 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000 

      Additional Descriptor

      bLength = 0x07
      bDescriptorType = 0x25
      bDescriptorSubType = 0x01
       RAW dump: 
       0x00 | 0x07, 0x25, 0x01, 0x01, 0x00, 0x00, 0x00



    Interface 4 Alt 7
      bLength = 0x0009 
      bDescriptorType = 0x0004 
      bInterfaceNumber = 0x0004 
      bAlternateSetting = 0x0007 
      bNumEndpoints = 0x0001 
      bInterfaceClass = 0x0001  <Audio device>
      bInterfaceSubClass = 0x0002 
      bInterfaceProtocol = 0x0000 
      iInterface = 0x0000  <no string>

      Additional Descriptor

      bLength = 0x07
      bDescriptorType = 0x24
      bDescriptorSubType = 0x01
       RAW dump: 
       0x00 | 0x07, 0x24, 0x01, 0x03, 0x01, 0x01, 0x00


      Additional Descriptor

      bLength = 0x0b
      bDescriptorType = 0x24
      bDescriptorSubType = 0x02
       RAW dump: 
       0x00 | 0x0b, 0x24, 0x02, 0x01, 0x01, 0x02, 0x10, 0x01, 
       0x08 | 0x80, 0xbb, 0x00


     Endpoint 0
        bLength = 0x0009 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0086  <IN>
        bmAttributes = 0x0005  <ASYNC-ISOCHRONOUS>
        wMaxPacketSize = 0x00e0 
        bInterval = 0x0004 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000 

      Additional Descriptor

      bLength = 0x07
      bDescriptorType = 0x25
      bDescriptorSubType = 0x01
       RAW dump: 
       0x00 | 0x07, 0x25, 0x01, 0x01, 0x00, 0x00, 0x00

very long.

2023-04-06: I created this page.