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.
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.
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 |
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.
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.
The device comes with a calibration card, with several patterns.
![]() calibration card | ![]() calibration card | ![]() calibration card | ![]() calibration card |
![]() calibration card | ![]() calibration card | ![]() calibration card |
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.
ioctl: VIDIOC_ENUM_FMT
Index : 0
Type : Video Capture
Pixel Format: 'YUYV'
Name : YUV 4:2:2 (YUYV)
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)
[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).
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)
[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
[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 }
### 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