back to index

USB webcam microscope GenesysLogic Aveo


Description
      Mechanics
      Internals
      Calibration
Streaming
Hardware characterization
      v4l2-ctl --list-formats
      v4l2-ctl --list-formats-ext
      dmesg
      lsusb -vv
      uvcdyndtrl -v -c
      uvcdynctrl -v -l
      v4l-info
TODO

The cheapest available USB microscope on eBay was purchased, to test its properties on linux, namely on a Raspberry Pi computer.

See also tool_3dPrinterMicroscope, attachment for the 3d printer, where photographs from this device are shown.


Description

The camera enumerated without significant problems after connecting to USB, as a standard UVC camera, with /dev/video0 device created. The LED ring for sample illumination lit up immediately and stayed lit; probably fed directly from power. A keyboard connected to the neighbouring port reenumerated; probably due to a voltage dip.

The maximum image size is 640x480 pixels. Rather low, but good enough for basic work. There is no onboard compression, only raw YUV output. This limits achievable framerate on low-power boards, as the compression for streaming has to be done in CPU.

This could be sidestepped if the compression could be performed on the GPU. The Broadcom chip on the Raspberry Pi can support GPU video compression, via OMX.broadcom.image_encode, but this is used usually by the raspicam camera, not by USB ones.

Mechanics

The total length without the transparent plastic cover is 94mm, or 114mm with the cover. The outer diameter is 33.0mm, it narrows towards the top to about 25mm and towards the bottom where the "business end" is to 29.7mm. The inner diameter there is 26.4mm, wall thickness about 1.6mm.


Microscope itself

Microscope itself

Microscope itself

There is a groove at about the middle, with outer diameter of 33.0mm, inner diameter 28.4mm, and width 4.0mm (the plastic holder's matching ring is 3.1mm high).

The light is provided with a ring of eight white LEDs. The outer diameter of the ring is about 25mm, inner diameter is 14.7mm, and the diameter of the circle intersecting the centers of the LEDs is 18mm.


LED lights ring, lens retracted

LED lights ring, lens extended

LED lights ring, lens extended

LED lights ring, lens extended

LED lights ring, lens retracted

LED lights ring, lens retracted

The lens is moving in and out by the focus/magnification ring, sliding by a simple mechanism. The lens holder is a brass part with standard M12x0.5 thread, the objective is a compact metal module with lenses inside, small but apparently glass. The sensor, fairly small, is located on a fixed-mount circuitboard at the back side of the assembly.


Lens thread

Lens itself

Lens itself

Lens itself

The microscope comes with a transparent plastic cover, apparently to facilitate constant distance by pressing it against the sample.


microscope with lid

lid

lid

lid

The assembly itself is apparently glued together, and made from two sections separated with a thin metal ring. This ring possibly serves to hold the parts together and hold the circuitboard and lens carriage.

The device has somewhat crappy plastic stand, which can be excused due to its low low price.


stand

microscope on stand

microscope on stand

microscope and cable

Internals

The casing was cracked open, using large pliers or a vise, carefully compressing the assembly just below the metal ring. The casing consists of two segments of plastic tube, with a metal spacer ring in between, joined together with weakly glued pads. This exposes the circuitboard, with the camera chip (U2, a 28-pin SMD), a 24C64 serial EEPROM (U6, 8 kilobytes, probably with some calibrations and USB parameters), and the camera sensor itself (U4, probably a BGA CMOS sensor with the sensing array as the rainbowy rectangle and some preprocessing electronics as the dark part along its edges).


Casing cracked open

Casing cracked open

Circuitboard bottom

Circuitboard bottom

Circuitboard bottom

Circuitboard top

Circuitboard top

Circuitboard top

The LED light is attached to the circuitboard using a pair of thin brass standoff tubes, using a pair of screws. The standoffs also function as power wiring and vertical slides that prevent the lens holder rotation and maintain its position in axis with the sensor. It is powered via a separate connector on the board.


Lens holder in tube, with guides

LED light with guides

LED light

LED light

LED light

LED light, threads on guides

The bottom tube contains the zoom assembly. This consists of three parts - the zoom tube, the lens holder, and the lens itself. The zoom tube has a spiral groove on its inner side, to which pads on the lens holder are mated. The LED standoff tubes are also led through the lens holder, holding it against axial rotation while allowing its axial movement, and aligning it with the sensor. This translates to longitudal movement of the lens holder when the zoom tube is rotated. All the mutually moving surfaces are richly covered with grease, probably silicone.


Optical tube, sensor end

Optical tube, sensor end

Optical tube, lens end

Tube bottom, top, LED, zoom assembly

Tube bottom, top, zoom assembly

Zoom assembly

Zoom assembly

Zoom tube, with spiral groove

Zoom tube, with spiral groove

Zoom tube, with spiral groove

Zoom tube, with spiral groove

The lens holder is a plastic part with the pads for the zoom tube grooves, holes for the LED standoffs/guides, and a brass inset with a M12x0.5 thread for the lens itself. The lens is a fairly high quality all-glass optical assembly in a metal tube.


Lens holder

Lens holder

Lens holder and lens, separate

Lens holder and lens, separate

Lens holder and lens, separate

Lens holder

Lens holder

Lens holder

Lens holder and lens

Lens holder and lens

Lens holder and lens

Calibration

The device comes with a calibration card, with several patterns.


calibration card

calibration card

calibration card

calibration card

calibration card

calibration card

calibration card

Streaming

The mjpg-streamer can be used for streaming the image. On Raspberry Pi v1 and v2 the performance is rather low, due to unaccelerated CPU-based compression. GPU-accelerated compression would be desired.

 ./mjpg_streamer --input "./input_uvc.so" --output "./output_http.so -w ./www"

Note: after a while, the little kernel errors filled the disk, via the overgrowth of /var/log/uvcdynctrl-udev.log. This can be erased, and the owner process killed by killall uvcdynctrl.


Hardware characterization

v4l2-ctl --list-formats

ioctl: VIDIOC_ENUM_FMT
        Index       : 0
        Type        : Video Capture
        Pixel Format: 'YUYV'
        Name        : YUV 4:2:2 (YUYV)

v4l2-ctl --list-formats-ext

ioctl: VIDIOC_ENUM_FMT
        Index       : 0
        Type        : Video Capture
        Pixel Format: 'YUYV'
        Name        : YUV 4:2:2 (YUYV)
                Size: Discrete 640x480
                        Interval: Discrete 0.040s (25.000 fps)
                Size: Discrete 160x120
                        Interval: Discrete 0.040s (25.000 fps)
                Size: Discrete 176x144
                        Interval: Discrete 0.040s (25.000 fps)
                Size: Discrete 320x240
                        Interval: Discrete 0.040s (25.000 fps)
                Size: Discrete 352x288
                        Interval: Discrete 0.040s (25.000 fps)
                Size: Discrete 640x480
                        Interval: Discrete 0.040s (25.000 fps)

dmesg

[313092.994085] usb 1-1.3: new high-speed USB device number 13 using dwc_otg
[313093.129771] usb 1-1.3: New USB device found, idVendor=1871, idProduct=7670
[313093.137258] usb 1-1.3: New USB device strings: Mfr=2, Product=3, SerialNumber=0
[313093.146635] usb 1-1.3: Product: USB2.0 UVC PC Camera
[313093.151867] usb 1-1.3: Manufacturer: GenesysLogic Technology Co., Ltd.
[313093.267339] media: Linux media interface: v0.10
[313093.304924] Linux video capture interface: v2.00
[313093.357670] uvcvideo: Found UVC 1.00 device USB2.0 UVC PC Camera (1871:7670)
[313093.412672] input: USB2.0 UVC PC Camera as /devices/platform/bcm2708_usb/usb1/1-1/1-1.3/1-1.3:1.0/input/input8
[313093.428480] usbcore: registered new interface driver uvcvideo
[313093.434797] USB Video Class driver (1.1.1)
[313093.704665] uvcvideo: Failed to query (GET_DEF) UVC control 11 on unit 3: -32 (exp. 1).
[313093.715035] uvcvideo: Failed to query (GET_DEF) UVC control 11 on unit 3: -32 (exp. 1).
[313093.724883] uvcvideo: Failed to query (GET_DEF) UVC control 11 on unit 3: -32 (exp. 1).
[313093.734933] uvcvideo: Failed to query (GET_DEF) UVC control 11 on unit 3: -32 (exp. 1).
[313093.768585] uvcvideo: Failed to query (GET_DEF) UVC control 11 on unit 3: -32 (exp. 1).
[313093.803320] uvcvideo: Failed to query (GET_DEF) UVC control 11 on unit 3: -32 (exp. 1).
[313093.837311] uvcvideo: Failed to query (GET_DEF) UVC control 11 on unit 3: -32 (exp. 1).
[313093.871420] uvcvideo: Failed to query (GET_DEF) UVC control 11 on unit 3: -32 (exp. 1).
[313093.904754] uvcvideo: Failed to query (GET_DEF) UVC control 11 on unit 3: -32 (exp. 1).
[313093.937536] uvcvideo: Failed to query (GET_DEF) UVC control 11 on unit 3: -32 (exp. 1).
[313093.970898] uvcvideo: Failed to query (GET_DEF) UVC control 11 on unit 3: -32 (exp. 1).
[313094.002695] uvcvideo: Failed to query (GET_DEF) UVC control 11 on unit 3: -32 (exp. 1).
[313094.035853] uvcvideo: Failed to query (GET_DEF) UVC control 11 on unit 3: -32 (exp. 1).
[313094.067355] uvcvideo: Failed to query (GET_DEF) UVC control 11 on unit 3: -32 (exp. 1).
[313094.100041] uvcvideo: Failed to query (GET_DEF) UVC control 11 on unit 3: -32 (exp. 1).
[313094.133816] uvcvideo: Failed to query (GET_DEF) UVC control 11 on unit 3: -32 (exp. 1).
[313094.165624] uvcvideo: Failed to query (GET_DEF) UVC control 11 on unit 3: -32 (exp. 1).
[313094.197377] uvcvideo: Failed to query (GET_DEF) UVC control 11 on unit 3: -32 (exp. 1).
[313094.228065] uvcvideo: Failed to query (GET_DEF) UVC control 11 on unit 3: -32 (exp. 1).
[313094.259133] uvcvideo: Failed to query (GET_DEF) UVC control 11 on unit 3: -32 (exp. 1).
[313094.288753] uvcvideo: Failed to query (GET_DEF) UVC control 11 on unit 3: -32 (exp. 1).
[313094.320317] uvcvideo: Failed to query (GET_DEF) UVC control 11 on unit 3: -32 (exp. 1).
[313094.349573] uvcvideo: Failed to query (GET_DEF) UVC control 11 on unit 3: -32 (exp. 1).
[313094.379885] uvcvideo: Failed to query (GET_DEF) UVC control 11 on unit 3: -32 (exp. 1).
[313094.408707] uvcvideo: Failed to query (GET_DEF) UVC control 11 on unit 3: -32 (exp. 1).
[313094.437521] uvcvideo: Failed to query (GET_DEF) UVC control 11 on unit 3: -32 (exp. 1).
[313094.464960] uvcvideo: Failed to query (GET_DEF) UVC control 11 on unit 3: -32 (exp. 1).
[313094.491775] uvcvideo: Failed to query (GET_DEF) UVC control 11 on unit 3: -32 (exp. 1).
[313094.518835] uvcvideo: Failed to query (GET_DEF) UVC control 11 on unit 3: -32 (exp. 1).
[313094.544935] uvcvideo: Failed to query (GET_DEF) UVC control 11 on unit 3: -32 (exp. 1).
[313094.570291] uvcvideo: Failed to query (GET_DEF) UVC control 11 on unit 3: -32 (exp. 1).
[313094.648813] uvcvideo: Failed to query (GET_CUR) UVC control 11 on unit 3: -32 (exp. 1).
[313094.673605] uvcvideo: Failed to query (GET_CUR) UVC control 11 on unit 3: -32 (exp. 1).
[313094.699550] uvcvideo: Failed to query (GET_CUR) UVC control 11 on unit 3: -32 (exp. 1).
[313094.723209] uvcvideo: Failed to query (GET_CUR) UVC control 11 on unit 3: -32 (exp. 1).
[313094.747387] uvcvideo: Failed to query (GET_CUR) UVC control 11 on unit 3: -32 (exp. 1).
[313094.769915] uvcvideo: Failed to query (GET_CUR) UVC control 11 on unit 3: -32 (exp. 1).
[313094.793292] uvcvideo: Failed to query (GET_CUR) UVC control 11 on unit 3: -32 (exp. 1).
[313094.814955] uvcvideo: Failed to query (GET_CUR) UVC control 11 on unit 3: -32 (exp. 1).
[313094.835987] uvcvideo: Failed to query (GET_CUR) UVC control 11 on unit 3: -32 (exp. 1).
[313094.857984] uvcvideo: Failed to query (GET_CUR) UVC control 11 on unit 3: -32 (exp. 1).

lsusb -vv

Bus 001 Device 013: ID 1871:7670 Aveo Technology Corp.


Bus 001 Device 013: ID 1871:7670 Aveo Technology Corp.
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass          239 Miscellaneous Device
  bDeviceSubClass         2 ?
  bDeviceProtocol         1 Interface Association
  bMaxPacketSize0        64
  idVendor           0x1871 Aveo Technology Corp.
  idProduct          0x7670
  bcdDevice            6.20
  iManufacturer           2 GenesysLogic Technology Co., Ltd.
  iProduct                3 USB2.0 UVC PC Camera
  iSerial                 0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength          425
    bNumInterfaces          2
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              200mA
    Interface Association:
      bLength                 8
      bDescriptorType        11
      bFirstInterface         0
      bInterfaceCount         2
      bFunctionClass         14 Video
      bFunctionSubClass       3 Video Interface Collection
      bFunctionProtocol       0
      iFunction               1 USB2.0 UVC PC Camera
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass        14 Video
      bInterfaceSubClass      1 Video Control
      bInterfaceProtocol      0
      iInterface              1 USB2.0 UVC PC Camera
      VideoControl Interface Descriptor:
        bLength                13
        bDescriptorType        36
        bDescriptorSubtype      1 (HEADER)
        bcdUVC               1.00
        wTotalLength          105
        dwClockFrequency       60.000000MHz
        bInCollection           1
        baInterfaceNr( 0)       1
      VideoControl Interface Descriptor:
        bLength                 9
        bDescriptorType        36
        bDescriptorSubtype      3 (OUTPUT_TERMINAL)
        bTerminalID             4
        wTerminalType      0x0101 USB Streaming
        bAssocTerminal          0
        bSourceID               2
        iTerminal               0
      VideoControl Interface Descriptor:
        bLength                27
        bDescriptorType        36
        bDescriptorSubtype      6 (EXTENSION_UNIT)
        bUnitID                 2
        guidExtensionCode         {0b365d5e-5fe4-8145-9b0b-374669ba05d4}
        bNumControl            16
        bNrPins                 1
        baSourceID( 0)          5
        bControlSize            2
        bmControls( 0)       0xff
        bmControls( 1)       0x00
        iExtension              0
      VideoControl Interface Descriptor:
        bLength                27
        bDescriptorType        36
        bDescriptorSubtype      6 (EXTENSION_UNIT)
        bUnitID                 5
        guidExtensionCode         {03dfdaec-e38f-274d-893b-a18d25aeee09}
        bNumControl            16
        bNrPins                 1
        baSourceID( 0)          3
        bControlSize            2
        bmControls( 0)       0xff
        bmControls( 1)       0x03
        iExtension              0
      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           0x00000000
      VideoControl Interface Descriptor:
        bLength                11
        bDescriptorType        36
        bDescriptorSubtype      5 (PROCESSING_UNIT)
      Warning: Descriptor too short
        bUnitID                 3
        bSourceID               1
        wMaxMultiplier          0
        bControlSize            2
        bmControls     0x0000177f
          Brightness
          Contrast
          Hue
          Saturation
          Sharpness
          Gamma
          White Balance Temperature
          Backlight Compensation
          Gain
          Power Line Frequency
          White Balance Temperature, Auto
        iProcessing             0
        bmVideoStandards     0x 2
          NTSC - 525/60
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0017  1x 23 bytes
        bInterval               6
    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                      257
        bEndPointAddress                  129
        bmInfo                              0
        bTerminalLink                       4
        bStillCaptureMethod                 2
        bTriggerSupport                     1
        bTriggerUsage                       1
        bControlSize                        1
        bmaControls( 0)                    27
      VideoStreaming Interface Descriptor:
        bLength                            27
        bDescriptorType                    36
        bDescriptorSubtype                  4 (FORMAT_UNCOMPRESSED)
        bFormatIndex                        1
        bNumFrameDescriptors                6
        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                            30
        bDescriptorType                    36
        bDescriptorSubtype                  5 (FRAME_UNCOMPRESSED)
        bFrameIndex                         1
        bmCapabilities                   0x00
          Still image unsupported
        wWidth                            640
        wHeight                           480
        dwMinBitRate                 15360000
        dwMaxBitRate                 15360000
        dwMaxVideoFrameBufferSize      614400
        dwDefaultFrameInterval         400000
        bFrameIntervalType                  1
        dwFrameInterval( 0)            400000
      VideoStreaming Interface Descriptor:
        bLength                            30
        bDescriptorType                    36
        bDescriptorSubtype                  5 (FRAME_UNCOMPRESSED)
        bFrameIndex                         2
        bmCapabilities                   0x00
          Still image unsupported
        wWidth                            160
        wHeight                           120
        dwMinBitRate                   960000
        dwMaxBitRate                   960000
        dwMaxVideoFrameBufferSize       38400
        dwDefaultFrameInterval         400000
        bFrameIntervalType                  1
        dwFrameInterval( 0)            400000
      VideoStreaming Interface Descriptor:
        bLength                            30
        bDescriptorType                    36
        bDescriptorSubtype                  5 (FRAME_UNCOMPRESSED)
        bFrameIndex                         3
        bmCapabilities                   0x00
          Still image unsupported
        wWidth                            176
        wHeight                           144
        dwMinBitRate                  1267200
        dwMaxBitRate                  1267200
        dwMaxVideoFrameBufferSize       50688
        dwDefaultFrameInterval         400000
        bFrameIntervalType                  1
        dwFrameInterval( 0)            400000
      VideoStreaming Interface Descriptor:
        bLength                            30
        bDescriptorType                    36
        bDescriptorSubtype                  5 (FRAME_UNCOMPRESSED)
        bFrameIndex                         4
        bmCapabilities                   0x00
          Still image unsupported
        wWidth                            320
        wHeight                           240
        dwMinBitRate                  3840000
        dwMaxBitRate                  3840000
        dwMaxVideoFrameBufferSize      153600
        dwDefaultFrameInterval         400000
        bFrameIntervalType                  1
        dwFrameInterval( 0)            400000
      VideoStreaming Interface Descriptor:
        bLength                            30
        bDescriptorType                    36
        bDescriptorSubtype                  5 (FRAME_UNCOMPRESSED)
        bFrameIndex                         5
        bmCapabilities                   0x00
          Still image unsupported
        wWidth                            352
        wHeight                           288
        dwMinBitRate                  5068800
        dwMaxBitRate                  5068800
        dwMaxVideoFrameBufferSize      202752
        dwDefaultFrameInterval         400000
        bFrameIntervalType                  1
        dwFrameInterval( 0)            400000
      VideoStreaming Interface Descriptor:
        bLength                            30
        bDescriptorType                    36
        bDescriptorSubtype                  5 (FRAME_UNCOMPRESSED)
        bFrameIndex                         6
        bmCapabilities                   0x00
          Still image unsupported
        wWidth                            640
        wHeight                           480
        dwMinBitRate                 15360000
        dwMaxBitRate                 15360000
        dwMaxVideoFrameBufferSize      614400
        dwDefaultFrameInterval         400000
        bFrameIntervalType                  1
        dwFrameInterval( 0)            400000
      VideoStreaming Interface Descriptor:
        bLength                            30
        bDescriptorType                    36
        bDescriptorSubtype                  3 (STILL_IMAGE_FRAME)
        bEndpointAddress                    0
        bNumImageSizePatterns               6
        wWidth( 0)                        640
        wHeight( 0)                       480
        wWidth( 1)                        160
        wHeight( 1)                       120
        wWidth( 2)                        176
        wHeight( 2)                       144
        wWidth( 3)                        320
        wHeight( 3)                       240
        wWidth( 4)                        352
        wHeight( 4)                       288
        wWidth( 5)                        640
        wHeight( 5)                       480
        bNumCompressionPatterns             6
      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     0x1400  3x 1024 bytes
        bInterval               1
Device Qualifier (for other device speed):
  bLength                10
  bDescriptorType         6
  bcdUSB               2.00
  bDeviceClass          239 Miscellaneous Device
  bDeviceSubClass         2 ?
  bDeviceProtocol         1 Interface Association
  bMaxPacketSize0        64
  bNumConfigurations      1
Device Status:     0x0000
  (Bus Powered)

uvcdyndtrl -v -c

[libwebcam] Warning: The driver behind device video0 has a slightly buggy implementation
  of the V4L2_CTRL_FLAG_NEXT_CTRL flag. It does not return the next higher
  control ID if a control query fails. A workaround has been enabled.
[libwebcam] Warning: The driver behind device video0 has a slightly buggy implementation
  of the V4L2_CTRL_FLAG_NEXT_CTRL flag. It does not return the next higher
  control ID if a control query fails. A workaround has been enabled.
[libwebcam] Warning: The driver behind device video0 has a slightly buggy implementation
  of the V4L2_CTRL_FLAG_NEXT_CTRL flag. It does not return the next higher
  control ID if a control query fails. A workaround has been enabled.
[libwebcam] Warning: The driver behind device video0 has a slightly buggy implementation
  of the V4L2_CTRL_FLAG_NEXT_CTRL flag. It does not return the next higher
  control ID if a control query fails. A workaround has been enabled.
[libwebcam] Warning: The driver behind device video0 has a slightly buggy implementation
  of the V4L2_CTRL_FLAG_NEXT_CTRL flag. It does not return the next higher
  control ID if a control query fails. A workaround has been enabled.
[libwebcam] Warning: The driver behind device video0 has a slightly buggy implementation
  of the V4L2_CTRL_FLAG_NEXT_CTRL flag. It does not return the next higher
  control ID if a control query fails. A workaround has been enabled.
[libwebcam] Warning: The driver behind device video0 has a slightly buggy implementation
  of the V4L2_CTRL_FLAG_NEXT_CTRL flag. It does not return the next higher
  control ID if a control query fails. A workaround has been enabled.
[libwebcam] Warning: The driver behind device video0 has a slightly buggy implementation
  of the V4L2_CTRL_FLAG_NEXT_CTRL flag. It does not return the next higher
  control ID if a control query fails. A workaround has been enabled.
[libwebcam] Warning: The driver behind device video0 has a slightly buggy implementation
  of the V4L2_CTRL_FLAG_NEXT_CTRL flag. It does not return the next higher
  control ID if a control query fails. A workaround has been enabled.
[libwebcam] Warning: The driver behind device video0 has a slightly buggy implementation
  of the V4L2_CTRL_FLAG_NEXT_CTRL flag. It does not return the next higher
  control ID if a control query fails. A workaround has been enabled.
[libwebcam] Warning: The driver behind device video0 has a slightly buggy implementation
  of the V4L2_CTRL_FLAG_NEXT_CTRL flag. It does not return the next higher
  control ID if a control query fails. A workaround has been enabled.
Listing available controls for device video0:
  Brightness
    ID      : 0x00000001,
    Type    : Dword,
    Flags   : { CAN_READ, CAN_WRITE },
    Values  : [ 0 .. 96, step size: 1 ],
    Default : -8193
  Contrast
    ID      : 0x00000002,
    Type    : Dword,
    Flags   : { CAN_READ, CAN_WRITE },
    Values  : [ 0 .. 64, step size: 1 ],
    Default : 57343
  Saturation
    ID      : 0x00000004,
    Type    : Dword,
    Flags   : { CAN_READ, CAN_WRITE },
    Values  : [ 0 .. 128, step size: 1 ],
    Default : 57343
  Hue
    ID      : 0x00000005,
    Type    : Dword,
    Flags   : { CAN_READ, CAN_WRITE },
    Values  : [ 0 .. 8, step size: 1 ],
    Default : -8193
  Gamma
    ID      : 0x00000006,
    Type    : Dword,
    Flags   : { CAN_READ, CAN_WRITE },
    Values  : [ 1 .. 5, step size: 1 ],
    Default : 57343
  Gain
    ID      : 0x00000003,
    Type    : Dword,
    Flags   : { CAN_READ, CAN_WRITE },
    Values  : [ 0 .. 100, step size: 1 ],
    Default : 57343
  Power Line Frequency
    ID      : 0x0000000d,
    Type    : Choice,
    Flags   : { CAN_READ, CAN_WRITE },
    Values  : { 'Disabled'[0], '50 Hz'[1], '60 Hz'[2] },
    Default : 1
  Sharpness
    ID      : 0x00000007,
    Type    : Dword,
    Flags   : { CAN_READ, CAN_WRITE },
    Values  : [ 1 .. 15, step size: 1 ],
    Default : 57343
  Backlight Compensation
    ID      : 0x0000000c,
    Type    : Dword,
    Flags   : { CAN_READ, CAN_WRITE },
    Values  : [ 0 .. 2, step size: 1 ],
    Default : 57343

uvcdynctrl -v -l

[libwebcam] Warning: The driver behind device video0 has a slightly buggy implementation
  of the V4L2_CTRL_FLAG_NEXT_CTRL flag. It does not return the next higher
  control ID if a control query fails. A workaround has been enabled.
[libwebcam] Warning: The driver behind device video0 has a slightly buggy implementation
  of the V4L2_CTRL_FLAG_NEXT_CTRL flag. It does not return the next higher
  control ID if a control query fails. A workaround has been enabled.
[libwebcam] Warning: The driver behind device video0 has a slightly buggy implementation
  of the V4L2_CTRL_FLAG_NEXT_CTRL flag. It does not return the next higher
  control ID if a control query fails. A workaround has been enabled.
[libwebcam] Warning: The driver behind device video0 has a slightly buggy implementation
  of the V4L2_CTRL_FLAG_NEXT_CTRL flag. It does not return the next higher
  control ID if a control query fails. A workaround has been enabled.
[libwebcam] Warning: The driver behind device video0 has a slightly buggy implementation
  of the V4L2_CTRL_FLAG_NEXT_CTRL flag. It does not return the next higher
  control ID if a control query fails. A workaround has been enabled.
[libwebcam] Warning: The driver behind device video0 has a slightly buggy implementation
  of the V4L2_CTRL_FLAG_NEXT_CTRL flag. It does not return the next higher
  control ID if a control query fails. A workaround has been enabled.
[libwebcam] Warning: The driver behind device video0 has a slightly buggy implementation
  of the V4L2_CTRL_FLAG_NEXT_CTRL flag. It does not return the next higher
  control ID if a control query fails. A workaround has been enabled.
[libwebcam] Warning: The driver behind device video0 has a slightly buggy implementation
  of the V4L2_CTRL_FLAG_NEXT_CTRL flag. It does not return the next higher
  control ID if a control query fails. A workaround has been enabled.
[libwebcam] Warning: The driver behind device video0 has a slightly buggy implementation
  of the V4L2_CTRL_FLAG_NEXT_CTRL flag. It does not return the next higher
  control ID if a control query fails. A workaround has been enabled.
[libwebcam] Warning: The driver behind device video0 has a slightly buggy implementation
  of the V4L2_CTRL_FLAG_NEXT_CTRL flag. It does not return the next higher
  control ID if a control query fails. A workaround has been enabled.
[libwebcam] Warning: The driver behind device video0 has a slightly buggy implementation
  of the V4L2_CTRL_FLAG_NEXT_CTRL flag. It does not return the next higher
  control ID if a control query fails. A workaround has been enabled.
Listing available devices:
  video0   USB2.0 UVC PC Camera [uvcvideo, usb-bcm2708_usb-1.3]
    Media controller device: /dev/media0
    Entity 1: USB2.0 UVC PC Camera. Type: 65537, Revision: 0, Flags: 1, Group-id: 0, Pads: 1, Links: 0
      Device node
      Entity: 1, Pad 0, Flags: 1
    Entity 2: Extension 2. Type: 131072, Revision: 0, Flags: 0, Group-id: 0, Pads: 2, Links: 1
      Subdevice:       Entity: 2, Pad 0, Flags: 1
      Entity: 2, Pad 1, Flags: 2
      Out link: Source pad { Entity: 2, Index: 1, Flags: 2 } => Sink pad { Entity: 1, Index: 0, Flags: 1 }
    Entity 3: Extension 5. Type: 131072, Revision: 0, Flags: 0, Group-id: 0, Pads: 2, Links: 1
      Subdevice:       Entity: 3, Pad 0, Flags: 1
      Entity: 3, Pad 1, Flags: 2
      Out link: Source pad { Entity: 3, Index: 1, Flags: 2 } => Sink pad { Entity: 2, Index: 0, Flags: 1 }
    Entity 4: Processing 3. Type: 131072, Revision: 0, Flags: 0, Group-id: 0, Pads: 2, Links: 1
      Subdevice:       Entity: 4, Pad 0, Flags: 1
      Entity: 4, Pad 1, Flags: 2
      Out link: Source pad { Entity: 4, Index: 1, Flags: 2 } => Sink pad { Entity: 3, Index: 0, Flags: 1 }
    Entity 5: Camera 1. Type: 131072, Revision: 0, Flags: 0, Group-id: 0, Pads: 1, Links: 1
      Subdevice:       Entity: 5, Pad 0, Flags: 2
      Out link: Source pad { Entity: 5, Index: 0, Flags: 2 } => Sink pad { Entity: 4, Index: 0, Flags: 1 }

v4l-info

### v4l2 device info [/dev/video0] ###
general info
    VIDIOC_QUERYCAP
        driver                  : "uvcvideo"
        card                    : "USB2.0 UVC PC Camera"
        bus_info                : "usb-bcm2708_usb-1.3"
        version                 : 3.18.7
        capabilities            : 0x84000001 [VIDEO_CAPTURE,STREAMING,(null)]

standards

inputs
    VIDIOC_ENUMINPUT(0)
        index                   : 0
        name                    : "Camera 1"
        type                    : CAMERA
        audioset                : 0
        tuner                   : 0
        std                     : 0x0 []
        status                  : 0x0 []

video capture
    VIDIOC_ENUM_FMT(0,VIDEO_CAPTURE)
        index                   : 0
        type                    : VIDEO_CAPTURE
        flags                   : 0
        description             : "YUV 4:2:2 (YUYV)"
        pixelformat             : 0x56595559 [YUYV]
    VIDIOC_G_FMT(VIDEO_CAPTURE)
        type                    : VIDEO_CAPTURE
        fmt.pix.width           : 640
        fmt.pix.height          : 480
        fmt.pix.pixelformat     : 0x56595559 [YUYV]
        fmt.pix.field           : NONE
        fmt.pix.bytesperline    : 1280
        fmt.pix.sizeimage       : 614400
        fmt.pix.colorspace      : SRGB
        fmt.pix.priv            : 0

controls
    VIDIOC_QUERYCTRL(BASE+0)
        id                      : 9963776
        type                    : INTEGER
        name                    : "Brightness"
        minimum                 : 0
        maximum                 : 96
        step                    : 1
        default_value           : -8193
        flags                   : 0
    VIDIOC_QUERYCTRL(BASE+1)
        id                      : 9963777
        type                    : INTEGER
        name                    : "Contrast"
        minimum                 : 0
        maximum                 : 64
        step                    : 1
        default_value           : 57343
        flags                   : 0
    VIDIOC_QUERYCTRL(BASE+2)
        id                      : 9963778
        type                    : INTEGER
        name                    : "Saturation"
        minimum                 : 0
        maximum                 : 128
        step                    : 1
        default_value           : 57343
        flags                   : 0
    VIDIOC_QUERYCTRL(BASE+3)
        id                      : 9963779
        type                    : INTEGER
        name                    : "Hue"
        minimum                 : 0
        maximum                 : 8
        step                    : 1
        default_value           : -8193
        flags                   : 0
    VIDIOC_QUERYCTRL(BASE+16)
        id                      : 9963792
        type                    : INTEGER
        name                    : "Gamma"
        minimum                 : 1
        maximum                 : 5
        step                    : 1
        default_value           : 57343
        flags                   : 0
    VIDIOC_QUERYCTRL(BASE+19)
        id                      : 9963795
        type                    : INTEGER
        name                    : "Gain"
        minimum                 : 0
        maximum                 : 100
        step                    : 1
        default_value           : 57343
        flags                   : 0
    VIDIOC_QUERYCTRL(BASE+24)
        id                      : 9963800
        type                    : MENU
        name                    : "Power Line Frequency"
        minimum                 : 0
        maximum                 : 2
        step                    : 1
        default_value           : 1
        flags                   : 0
    VIDIOC_QUERYCTRL(BASE+27)
        id                      : 9963803
        type                    : INTEGER
        name                    : "Sharpness"
        minimum                 : 1
        maximum                 : 15
        step                    : 1
        default_value           : 57343
        flags                   : 0
    VIDIOC_QUERYCTRL(BASE+28)
        id                      : 9963804
        type                    : INTEGER
        name                    : "Backlight Compensation"
        minimum                 : 0
        maximum                 : 2
        step                    : 1
        default_value           : 57343
        flags                   : 0

TODO


If you have any comments or questions about the topic, please let me know here:
Your name:
Your email:
Spambait
Leave this empty!
Only spambots enter stuff here.
Feedback: