Oasis UMO19 MCU003 USB microscope

From Random Projects
Jump to: navigation, search
Oasis UMO19 MCU003 USB microscope
Details
Stand
Box

The Oasis UMO19 MCU003 USB microscope is a cheap (ca. 50 Euros from various eBay vendors), portable, USB-based digital microscope. It can be focused on a 20x or 400x magnification. The device basically is a "webcam" when attached to USB and you can use it for live viewing of the magnified area, and also create screen captures (still photos), see below for a few sample images.

Note: See also my blogpost Using the Oasis UMO19 MCU003 400x USB microscope on Linux via luvcview for additional info.

Contents

Specification

This is what the box says:

  • Image sensor: 1.3 Megapixels (interpolated to 2M)
  • Still capture resolution: 1600x1200, 1280x960, 800x600, 352x288, 320x240, 160x120
  • Video capture resolution: 1600x1200, 1280x960, 800x600, 352x288, 320x240, 160x120
  • Color: 24 bit RGB
  • Flicker frequency: 50Hz / 60Hz
  • Frame rate: max. 30 frames per second under 600 Lux brightness
  • Magnification ratio: 20x to 400x
  • Shutter speed: 1 sec. to 1/1000 sec.
  • Video format: AVI
  • Photo format: JPEG or BMP
  • White balance: auto
  • Exposure: auto
  • Light source: 8 LEDs (switchable by software)
  • PC interface: USB 2.0
  • Power source: 5V DC from USB port
  • OS: Windows 2000/XP/Vista, Mac OS X 10.5 or above
  • OSD language: English, German, Spanish, Korean, French, Russian
  • Bundled software: MicroCapture
  • Size: 125mm (L) x 33mm (R)

Usage on Linux

The device works out of the box on Linux using the uvcvideo kernel module and any application that can work with UVC / V4L2 devices, e.g. luvcview, guvcview, cheese, or uvccapture.

$ lsusb
Bus 001 Device 013: ID 0ac8:3610 Z-Star Microelectronics Corp.
luvcview
$ luvcview
luvcview 0.2.6
SDL information:
  Video driver: x11
  A window manager is available
Device information:
  Device path:  /dev/video1
Stream settings:
  Frame format: YUYV (MJPG is not supported by device)
  Frame size:   640x480
  Frame rate:   30 fps
guvcview
$ guvcview
guvcview 1.3.1
video device: /dev/video0
/dev/video0 - device 1
Init. Vimicro USB2.0 UVC PC Camera (location: usb-0000:00:13.2-3)
{ pixelformat = 'YUYV', description = 'YUV 4:2:2 (YUYV)' }
{ discrete: width = 640, height = 480 }
        Time interval between frame: 1/30, 1/15, 2/15, 
{ discrete: width = 352, height = 288 }
[...]
{ discrete: width = 160, height = 120 }
        Time interval between frame: 1/30, 1/15, 2/15, 
vid:0ac8 
pid:3610 
driver:uvcvideo
checking format: 1448695129
fps is set to 1/30
V4L2_CTRL_FLAG_NEXT_CTRL supported
fps is set to 1/30
[...]

cheese
$ cheese
(works fine too)
$ uvccapture -v -m
Using videodevice: /dev/video0
Saving images to: snap.jpg
Image size: 320x240
Taking snapshot every 0 seconds
Taking images using mmap
Resetting camera settings
ioctl querycontrol error 22 
Camera brightness level is 0
Camera contrast level is 18
Camera saturation level is 8
ioctl querycontrol error 22 
Camera gain level is -1
Saving image to: snap.jpg

Photos

Fabrics

Various pieces of clothes, jeans, curtains, carpets, jackets, etc.

LEDs

PCB

Chips

Paper

Screens, displays

Misc

Details

lsusb

$ lsusb -vvv
Bus 001 Device 097: ID 0ac8:3610 Z-Star Microelectronics Corp.
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass          239 Miscellaneous Device
  bDeviceSubClass         2 ?
  bDeviceProtocol         1 Interface Association
  bMaxPacketSize0        64
  idVendor           0x0ac8 Z-Star Microelectronics Corp.
  idProduct          0x3610 
  bcdDevice            1.00
  iManufacturer           1 Vimicro Co.,ltd
  iProduct                2 Vimicro USB2.0 UVC PC Camera
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength          501
    bNumInterfaces          2
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              320mA
    Interface Association:
      bLength                 8
      bDescriptorType        11
      bFirstInterface         0
      bInterfaceCount         2
      bFunctionClass         14 Video
      bFunctionSubClass       3 Video Interface Collection
      bFunctionProtocol       0 
      iFunction               2 Vimicro 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              2 Vimicro USB2.0 UVC PC Camera
      VideoControl Interface Descriptor:
        bLength                13
        bDescriptorType        36
        bDescriptorSubtype      1 (HEADER)
        bcdUVC               1.00
        wTotalLength           79
        dwClockFrequency       30.000000MHz
        bInCollection           1
        baInterfaceNr( 0)       1
      VideoControl Interface Descriptor:
        bLength                18
        bDescriptorType        36
        bDescriptorSubtype      2 (INPUT_TERMINAL)
        bTerminalID             1
        wTerminalType      0x0201 Camera Sensor
        bAssocTerminal          0
        iTerminal               0 
        wObjectiveFocalLengthMin      0
        wObjectiveFocalLengthMax      0
        wOcularFocalLength            0
        bControlSize                  3
        bmControls           0x00040a0e
          Auto-Exposure Mode
          Auto-Exposure Priority
          Exposure Time (Absolute)
          Zoom (Absolute)
          PanTilt (Absolute)
          Privacy
      VideoControl Interface Descriptor:
        bLength                11
        bDescriptorType        36
        bDescriptorSubtype      5 (PROCESSING_UNIT)
      Warning: Descriptor too short
        bUnitID                 2
        bSourceID               1
        wMaxMultiplier          0
        bControlSize            2
        bmControls     0x0000547f
          Brightness
          Contrast
          Hue
          Saturation
          Sharpness
          Gamma
          White Balance Temperature
          Power Line Frequency
          White Balance Temperature, Auto
          Digital Multiplier
        iProcessing             0 
        bmVideoStandards     0x 9
          None
          SECAM - 625/50
      VideoControl Interface Descriptor:
        bLength                 9
        bDescriptorType        36
        bDescriptorSubtype      3 (OUTPUT_TERMINAL)
        bTerminalID             3
        wTerminalType      0x0101 USB Streaming
        bAssocTerminal          0
        bSourceID               2
        iTerminal               0 
      VideoControl Interface Descriptor:
        bLength                28
        bDescriptorType        36
        bDescriptorSubtype      6 (EXTENSION_UNIT)
        bUnitID                 4
        guidExtensionCode         {5dc717a9-1941-da11-ae0e-000d56ac7b4c}
        bNumControl             9
        bNrPins                 1
        baSourceID( 0)          1
        bControlSize            3
        bmControls( 0)       0xf9
        bmControls( 1)       0x81
        bmControls( 2)       0x80
        iExtension              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x000a  1x 10 bytes
        bInterval               5
    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                      263
        bEndPointAddress                  130
        bmInfo                              0
        bTerminalLink                       3
        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                5
        guidFormat                            {59555932-0000-1000-8000-00aa00389b71}
        bBitsPerPixel                      16
        bDefaultFrameIndex                  1
        bAspectRatioX                       0
        bAspectRatioY                       0
        bmInterlaceFlags                 0x00
          Interlaced stream or variable: No
          Fields per frame: 1 fields
          Field 1 first: No
          Field pattern: Field 1 only
          bCopyProtect                      0
      VideoStreaming Interface Descriptor:
        bLength                            38
        bDescriptorType                    36
        bDescriptorSubtype                  5 (FRAME_UNCOMPRESSED)
        bFrameIndex                         1
        bmCapabilities                   0x00
          Still image unsupported
        wWidth                            640
        wHeight                           480
        dwMinBitRate                 36864000
        dwMaxBitRate                147456000
        dwMaxVideoFrameBufferSize      614400
        dwDefaultFrameInterval         333333
        bFrameIntervalType                  3
        dwFrameInterval( 0)            333333
        dwFrameInterval( 1)            666667
        dwFrameInterval( 2)           1333333
      VideoStreaming Interface Descriptor:
        bLength                            38
        bDescriptorType                    36
        bDescriptorSubtype                  5 (FRAME_UNCOMPRESSED)
        bFrameIndex                         2
        bmCapabilities                   0x00
          Still image unsupported
        wWidth                            352
        wHeight                           288
        dwMinBitRate                 12126720
        dwMaxBitRate                 48660480
        dwMaxVideoFrameBufferSize      202752
        dwDefaultFrameInterval         333333
        bFrameIntervalType                  3
        dwFrameInterval( 0)            333333
        dwFrameInterval( 1)            666667
        dwFrameInterval( 2)           1333333
      VideoStreaming Interface Descriptor:
        bLength                            38
        bDescriptorType                    36
        bDescriptorSubtype                  5 (FRAME_UNCOMPRESSED)
        bFrameIndex                         3
        bmCapabilities                   0x00
          Still image unsupported
        wWidth                            320
        wHeight                           240
        dwMinBitRate                  9216000
        dwMaxBitRate                 36864000
        dwMaxVideoFrameBufferSize      153600
        dwDefaultFrameInterval         333333
        bFrameIntervalType                  3
        dwFrameInterval( 0)            333333
        dwFrameInterval( 1)            666667
        dwFrameInterval( 2)           1333333
      VideoStreaming Interface Descriptor:
        bLength                            38
        bDescriptorType                    36
        bDescriptorSubtype                  5 (FRAME_UNCOMPRESSED)
        bFrameIndex                         4
        bmCapabilities                   0x00
          Still image unsupported
        wWidth                            176
        wHeight                           144
        dwMinBitRate                  3041280
        dwMaxBitRate                 12165120
        dwMaxVideoFrameBufferSize       50688
        dwDefaultFrameInterval         333333
        bFrameIntervalType                  3
        dwFrameInterval( 0)            333333
        dwFrameInterval( 1)            666667
        dwFrameInterval( 2)           1333333
      VideoStreaming Interface Descriptor:
        bLength                            38
        bDescriptorType                    36
        bDescriptorSubtype                  5 (FRAME_UNCOMPRESSED)
        bFrameIndex                         5
        bmCapabilities                   0x00
          Still image unsupported
        wWidth                            160
        wHeight                           120
        dwMinBitRate                  2304000
        dwMaxBitRate                  9216000
        dwMaxVideoFrameBufferSize       38400
        dwDefaultFrameInterval         333333
        bFrameIntervalType                  3
        dwFrameInterval( 0)            333333
        dwFrameInterval( 1)            666667
        dwFrameInterval( 2)           1333333
      VideoStreaming Interface Descriptor:
        bLength                            26
        bDescriptorType                    36
        bDescriptorSubtype                  3 (STILL_IMAGE_FRAME)
        bEndpointAddress                    0
        bNumImageSizePatterns               5
        wWidth( 0)                        640
        wHeight( 0)                       480
        wWidth( 1)                        352
        wHeight( 1)                       288
        wWidth( 2)                        320
        wHeight( 2)                       240
        wWidth( 3)                        176
        wHeight( 3)                       144
        wWidth( 4)                        160
        wHeight( 4)                       120
        bNumCompressionPatterns             5
      VideoStreaming Interface Descriptor:
        bLength                             6
        bDescriptorType                    36
        bDescriptorSubtype                 13 (COLORFORMAT)
        bColorPrimaries                     0 (Unspecified)
        bTransferCharacteristics            0 (Unspecified)
        bMatrixCoefficients                 0 (Unspecified)
    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     0x82  EP 2 IN
        bmAttributes            5
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Data
        wMaxPacketSize     0x0080  1x 128 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       2
      bNumEndpoints           1
      bInterfaceClass        14 Video
      bInterfaceSubClass      2 Video Streaming
      bInterfaceProtocol      0 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            5
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       3
      bNumEndpoints           1
      bInterfaceClass        14 Video
      bInterfaceSubClass      2 Video Streaming
      bInterfaceProtocol      0 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            5
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       4
      bNumEndpoints           1
      bInterfaceClass        14 Video
      bInterfaceSubClass      2 Video Streaming
      bInterfaceProtocol      0 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            5
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Data
        wMaxPacketSize     0x0b00  2x 768 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       5
      bNumEndpoints           1
      bInterfaceClass        14 Video
      bInterfaceSubClass      2 Video Streaming
      bInterfaceProtocol      0 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            5
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Data
        wMaxPacketSize     0x0c00  2x 1024 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       6
      bNumEndpoints           1
      bInterfaceClass        14 Video
      bInterfaceSubClass      2 Video Streaming
      bInterfaceProtocol      0 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            5
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Data
        wMaxPacketSize     0x1380  3x 896 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       7
      bNumEndpoints           1
      bInterfaceClass        14 Video
      bInterfaceSubClass      2 Video Streaming
      bInterfaceProtocol      0 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 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)

luvcview info

$ luvcview -l
luvcview 0.2.6

SDL information:
  Video driver: x11
  A window manager is available
Device information:
  Device path:  /dev/video0
Stream settings:
  Frame format: YUYV (MJPG is not supported by device)
  Frame size:   640x480
  Frame rate:   30 fps
Available controls of device 'Camera 1' (Type 1=Integer 2=Boolean 3=Menu 4=Button)
V4L2_CID_BASE         (predefined controls):
 index:9963776    name:Brightness                       type:1 min:-16   max:16    step:1     def:0     now:0
 index:9963777    name:Contrast                         type:1 min:1     max:32    step:1     def:18    now:18
 index:9963778    name:Saturation                       type:1 min:0     max:30    step:1     def:8     now:8
 index:9963779    name:Hue                              type:1 min:-45   max:45    step:1     def:0     now:0
 index:9963788    name:White Balance Temperature, Auto  type:2 min:0     max:1     step:1     def:1     now:1
 index:9963792    name:Gamma                            type:1 min:100   max:190   step:10    def:150   now:142
 index:9963800    name:Power Line Frequency             type:3 min:0     max:2     step:1     def:1     now:1
  Menu items:
  index:0 name:Disabled
  index:1 name:50 Hz
  index:2 name:60 Hz
 index:9963802    name:White Balance Temperature        type:1 min:2800  max:8350  step:1     def:4650  now:4650
 index:9963803    name:Sharpness                        type:1 min:0     max:15    step:1     def:3     now:3
V4L2_CID_PRIVATE_BASE (driver specific controls):
$ luvcview -L
luvcview 0.2.6

SDL information:
  Video driver: x11
  A window manager is available
Device information:
  Device path:  /dev/video0
{ pixelformat = 'YUYV', description = 'YUV 4:2:2 (YUYV)' }
{ discrete: width = 640, height = 480 }
        Time interval between frame: 1/30, 1/15, 2/15, 
{ discrete: width = 352, height = 288 }
        Time interval between frame: 1/30, 1/15, 2/15, 
{ discrete: width = 320, height = 240 }
        Time interval between frame: 1/30, 1/15, 2/15, 
{ discrete: width = 176, height = 144 }
        Time interval between frame: 1/30, 1/15, 2/15, 
{ discrete: width = 160, height = 120 }
        Time interval between frame: 1/30, 1/15, 2/15, 
{ pixelformat = 'RGB3', description = 'RGB3' }
{ discrete: width = 640, height = 480 }
        Time interval between frame: 1/30, 1/15, 2/15, 
{ discrete: width = 352, height = 288 }
        Time interval between frame: 1/30, 1/15, 2/15, 
{ discrete: width = 320, height = 240 }
        Time interval between frame: 1/30, 1/15, 2/15, 
{ discrete: width = 176, height = 144 }
        Time interval between frame: 1/30, 1/15, 2/15, 
{ discrete: width = 160, height = 120 }
        Time interval between frame: 1/30, 1/15, 2/15, 
{ pixelformat = 'BGR3', description = 'BGR3' }
{ discrete: width = 640, height = 480 }
        Time interval between frame: 1/30, 1/15, 2/15, 
{ discrete: width = 352, height = 288 }
        Time interval between frame: 1/30, 1/15, 2/15, 
{ discrete: width = 320, height = 240 }
        Time interval between frame: 1/30, 1/15, 2/15, 
{ discrete: width = 176, height = 144 }
        Time interval between frame: 1/30, 1/15, 2/15, 
{ discrete: width = 160, height = 120 }
        Time interval between frame: 1/30, 1/15, 2/15, 
{ pixelformat = 'YU12', description = 'YU12' }
{ discrete: width = 640, height = 480 }
        Time interval between frame: 1/30, 1/15, 2/15, 
{ discrete: width = 352, height = 288 }
        Time interval between frame: 1/30, 1/15, 2/15, 
{ discrete: width = 320, height = 240 }
        Time interval between frame: 1/30, 1/15, 2/15, 
{ discrete: width = 176, height = 144 }
        Time interval between frame: 1/30, 1/15, 2/15, 
{ discrete: width = 160, height = 120 }
        Time interval between frame: 1/30, 1/15, 2/15, 
{ pixelformat = 'YV12', description = 'YV12' }
{ discrete: width = 640, height = 480 }
        Time interval between frame: 1/30, 1/15, 2/15, 
{ discrete: width = 352, height = 288 }
        Time interval between frame: 1/30, 1/15, 2/15, 
{ discrete: width = 320, height = 240 }
        Time interval between frame: 1/30, 1/15, 2/15, 
{ discrete: width = 176, height = 144 }
        Time interval between frame: 1/30, 1/15, 2/15, 
{ discrete: width = 160, height = 120 }
        Time interval between frame: 1/30, 1/15, 2/15, 

Personal tools