Discussion:
[linux-uvc-devel] Missing Exposure-Controls with DMK 41au02
Toni Schriber
2015-10-05 16:57:54 UTC
Permalink
Hi all

I found an 10-year old DMK 41au02 in our small observatory (Grammair
school of Kantons Glarus, Switzerland). I tried to access this CCD-Cam
via LINUX and was in part successfully. The "ucvvideo"-Driver recognizes
the cam and the tests with guvcview an INDI/Ekos could bring up a
correct live view.

The problem is, that I want to use the cam for astrofotos and so I have
to control the exposure. That is exactly what INDI and other tools don't
show! Following the information I was able to retrieve so far.
You can see, that "uvcvideo" reports 'Exposure, Auto' and 'Exposure
(Absolute)', but "uvcdynctrl" doesn't!

I know form the INDI-Forum that other users got working the cam in it's
full glory (i.e. with Exposure an LongExposureOptions!).

I'm not a real Linux-Crack, but I have some experience with building
modules and custom kernels and would be very happy, if someone can push
me in the right direction, what's happening!

System: (distroastro)
$ uname -a
Linux MacPapa 3.13.0-24-generic #47-Ubuntu SMP Fri May 2 23:30:00 UTC
2014 x86_64 x86_64 x86_64 GNU/Linux

Trace of uvcvideo:
[ 1369.092271] usb 1-4: new high-speed USB device number 5 using ehci-pci
[ 1369.226974] usb 1-4: New USB device found, idVendor=199e, idProduct=8101
[ 1369.226987] usb 1-4: New USB device strings: Mfr=1, Product=2,
SerialNumber=3
[ 1369.226995] usb 1-4: Product: DMx 41AU02.AS
[ 1369.227002] usb 1-4: Manufacturer: The Imaging Source Europe GmbH
[ 1369.227008] usb 1-4: SerialNumber: 5800292
[ 1369.788404] uvcvideo: uvc_v4l2_ioctl(VIDIOC_QUERYMENU)
[ 1370.367057] uvcvideo: Probing generic UVC device 4
[ 1370.367073] uvcvideo: Found format Greyscale 8-bit (Y800).
[ 1370.367078] uvcvideo: - 1280x960 (15.0 fps)
[ 1370.367088] uvcvideo: Found UVC 1.10 device DMx 41AU02.AS (199e:8101)
[ 1370.367098] uvcvideo: Added control
00000000-0000-0000-0000-000000000001/2 to device 4 entity 1
[ 1370.367104] uvcvideo: Adding mapping 'Exposure, Auto' to control
00000000-0000-0000-0000-000000000001/2.
[ 1370.367112] uvcvideo: Added control
00000000-0000-0000-0000-000000000001/4 to device 4 entity 1
[ 1370.367117] uvcvideo: Adding mapping 'Exposure (Absolute)' to control
00000000-0000-0000-0000-000000000001/4.
[ 1370.367123] uvcvideo: Added control
00000000-0000-0000-0000-000000000101/2 to device 4 entity 2
[ 1370.367127] uvcvideo: Adding mapping 'Brightness' to control
00000000-0000-0000-0000-000000000101/2.
[ 1370.367133] uvcvideo: Added control
00000000-0000-0000-0000-000000000101/9 to device 4 entity 2
[ 1370.367137] uvcvideo: Adding mapping 'Gamma' to control
00000000-0000-0000-0000-000000000101/9.
[ 1370.367143] uvcvideo: Added control
00000000-0000-0000-0000-000000000101/4 to device 4 entity 2
[ 1370.367147] uvcvideo: Adding mapping 'Gain' to control
00000000-0000-0000-0000-000000000101/4.
[ 1370.367155] uvcvideo: Scanning UVC chain: OT 3 <- SU 5 <- PU 2 <- XU
6 <- IT 4
[ 1370.367168] uvcvideo: Found a valid video chain (4 -> 3).
[ 1370.368067] uvcvideo: UVC device initialized.
[ 1370.412679] uvcvideo: uvc_v4l2_open
[ 1370.412690] uvcvideo: uvc_v4l2_ioctl(VIDIOC_QUERYCAP)
[ 1370.412729] uvcvideo: uvc_v4l2_release
[ 1370.418031] uvcvideo: uvc_v4l2_open
[ 1370.418039] uvcvideo: uvc_v4l2_ioctl(VIDIOC_QUERYCAP)
[ 1370.418047] uvcvideo: uvc_v4l2_release
[ 1370.418188] uvcvideo: uvc_v4l2_open
[ 1370.418192] uvcvideo: uvc_v4l2_ioctl(VIDIOC_QUERYCTRL)
[ 1370.418200] uvcvideo: uvc_v4l2_ioctl(VIDIOC_QUERYCTRL)
[ 1370.418207] uvcvideo: uvc_v4l2_ioctl(VIDIOC_QUERYCTRL)
[ 1370.418210] uvcvideo: uvc_v4l2_ioctl(VIDIOC_QUERYCTRL)
[ 1370.418214] uvcvideo: uvc_v4l2_ioctl(VIDIOC_QUERYCTRL)
[ 1370.418218] uvcvideo: uvc_v4l2_ioctl(VIDIOC_QUERYCTRL)
[ 1370.418221] uvcvideo: uvc_v4l2_ioctl(VIDIOC_QUERYCTRL)
[ 1370.418225] uvcvideo: uvc_v4l2_ioctl(VIDIOC_QUERYCTRL)
[ 1370.418229] uvcvideo: uvc_v4l2_ioctl(VIDIOC_QUERYMENU)
[ 1370.418232] uvcvideo: uvc_v4l2_ioctl(VIDIOC_QUERYMENU)
[ 1370.418237] uvcvideo: uvc_v4l2_ioctl(VIDIOC_QUERYMENU)
[ 1370.418240] uvcvideo: uvc_v4l2_ioctl(VIDIOC_QUERYCTRL)
[ 1370.418244] uvcvideo: uvc_v4l2_ioctl(VIDIOC_QUERYCTRL)
[ 1370.418248] uvcvideo: uvc_v4l2_ioctl(VIDIOC_QUERYCTRL)
[ 1370.418251] uvcvideo: uvc_v4l2_ioctl(VIDIOC_QUERYCTRL)
[ 1370.418255] uvcvideo: uvc_v4l2_ioctl(VIDIOC_QUERYMENU)
[ 1370.418258] uvcvideo: uvc_v4l2_ioctl(VIDIOC_QUERYMENU)
[ 1370.418261] uvcvideo: uvc_v4l2_ioctl(VIDIOC_QUERYMENU)
[ 1370.418264] uvcvideo: uvc_v4l2_ioctl(VIDIOC_QUERYMENU)
[ 1370.418267] uvcvideo: uvc_v4l2_ioctl(VIDIOC_QUERYCTRL)
[ 1370.418271] uvcvideo: uvc_v4l2_ioctl(VIDIOC_QUERYCTRL)
[ 1370.418276] uvcvideo: uvc_v4l2_release
[ 1370.418286] uvcvideo: uvc_v4l2_open
[ 1370.418291] uvcvideo: uvc_v4l2_ioctl(VIDIOC_QUERYCAP)
[ 1370.418297] uvcvideo: uvc_v4l2_release
[ 1370.418411] uvcvideo: uvc_v4l2_open
[ 1370.418416] uvcvideo: uvc_v4l2_ioctl(VIDIOC_QUERYCTRL)
[ 1370.418888] uvcvideo: uvc_v4l2_ioctl(VIDIOC_QUERYCTRL)
[ 1370.418902] uvcvideo: uvc_v4l2_ioctl(VIDIOC_QUERYCTRL)
[ 1370.419390] uvcvideo: uvc_v4l2_ioctl(VIDIOC_QUERYCTRL)
[ 1370.419874] uvcvideo: uvc_v4l2_ioctl(VIDIOC_QUERYCTRL)
[ 1370.419884] uvcvideo: uvc_v4l2_release
[ 1370.722291] uvcvideo: uvc_v4l2_ioctl(VIDIOC_QUERYMENU)
[ 1371.226566] uvcvideo: uvc_v4l2_ioctl(VIDIOC_G_CTRL)
[ 1371.227113] uvcvideo: uvc_v4l2_ioctl(VIDIOC_QUERYCTRL)
[ 1371.227373] uvcvideo: uvc_v4l2_ioctl(VIDIOC_QUERYCTRL)
[ 1371.227524] uvcvideo: uvc_v4l2_ioctl(VIDIOC_G_CTRL)
[ 1371.227975] uvcvideo: uvc_v4l2_ioctl(VIDIOC_QUERYCTRL)
[ 1371.228245] uvcvideo: uvc_v4l2_ioctl(VIDIOC_QUERYCTRL)
[ 1372.808145] uvcvideo: Suspending interface 1
[ 1372.808155] uvcvideo: Suspending interface 0
[ 1386.717578] uvcvideo: uvc_v4l2_open
[ 1386.764280] uvcvideo: Resuming interface 0
[ 1386.764286] uvcvideo: Resuming interface 1
[ 1386.764794] uvcvideo: uvc_v4l2_ioctl(VIDIOC_QUERYCAP)
[ 1386.764893] uvcvideo: uvc_v4l2_ioctl(VIDIOC_QUERYCAP)
[ 1386.764898] uvcvideo: uvc_v4l2_ioctl(VIDIOC_G_FMT)
[ 1386.764901] uvcvideo: uvc_v4l2_ioctl(VIDIOC_G_PARM)
[ 1386.764909] uvcvideo: uvc_v4l2_ioctl(VIDIOC_ENUM_FMT)
[ 1386.764912] uvcvideo: uvc_v4l2_ioctl(VIDIOC_ENUM_FRAMESIZES)
[ 1386.764916] uvcvideo: uvc_v4l2_ioctl(VIDIOC_ENUM_FRAMESIZES)
[ 1386.764919] uvcvideo: uvc_v4l2_ioctl(VIDIOC_ENUM_FMT)
[ 1386.764922] uvcvideo: uvc_v4l2_ioctl(VIDIOC_QUERYCAP)
[ 1386.764927] uvcvideo: uvc_v4l2_ioctl(VIDIOC_G_INPUT)
[ 1386.764930] uvcvideo: uvc_v4l2_ioctl(VIDIOC_ENUMINPUT)
[ 1386.765256] uvcvideo: uvc_v4l2_ioctl(VIDIOC_QUERYCTRL)
[ 1386.765266] uvcvideo: uvc_v4l2_ioctl(VIDIOC_QUERYCAP)
[ 1386.765848] uvcvideo: uvc_v4l2_ioctl(VIDIOC_QUERYCTRL)
[ 1386.765992] uvcvideo: uvc_v4l2_ioctl(VIDIOC_G_CTRL)
[ 1386.766163] uvcvideo: uvc_v4l2_ioctl(VIDIOC_QUERYCTRL)
[ 1386.766292] uvcvideo: uvc_v4l2_ioctl(VIDIOC_QUERYCTRL)
[ 1386.766485] uvcvideo: uvc_v4l2_ioctl(VIDIOC_G_CTRL)
[ 1386.766652] uvcvideo: uvc_v4l2_ioctl(VIDIOC_QUERYCTRL)
[ 1386.766755] uvcvideo: uvc_v4l2_ioctl(VIDIOC_QUERYCTRL)
[ 1386.766945] uvcvideo: uvc_v4l2_ioctl(VIDIOC_G_CTRL)
[ 1386.767156] uvcvideo: uvc_v4l2_ioctl(VIDIOC_QUERYCTRL)
[ 1386.767261] uvcvideo: uvc_v4l2_ioctl(VIDIOC_QUERYCTRL)
[ 1402.731372] uvcvideo: uvc_v4l2_release
[ 1402.733640] uvcvideo: uvc_v4l2_release
[ 1404.824193] uvcvideo: Suspending interface 1
[ 1404.824204] uvcvideo: Suspending interface 0
[ 1404.824263] uvcvideo: Suspending interface 1
[ 1404.824269] uvcvideo: Suspending interface 0

$ uvcdynctrl -d /dev/video1 -c
Listing available controls for device /dev/video1:
Brightness
Gamma
Gain

------------------------------------------------------------------------------
James Fidell
2015-10-05 17:37:38 UTC
Permalink
Post by Toni Schriber
The problem is, that I want to use the cam for astrofotos and so I have
to control the exposure. That is exactly what INDI and other tools don't
show! Following the information I was able to retrieve so far.
You can see, that "uvcvideo" reports 'Exposure, Auto' and 'Exposure
(Absolute)', but "uvcdynctrl" doesn't!
I'm running Mint 17 which is probably very close to your distro astro
install. When I plug in my DMK21 (which will be very similar to your
DMK41) I do see all the controls:

$ uvcdynctrl -d /dev/video0 -c
Listing available controls for device /dev/video0:
Brightness
Gamma
Gain
Exposure, Auto
Exposure (Absolute)

so I'm wondering if there's perhaps something odd about the firmware in
the camera or if it is returning data that the driver discards for some
reason.

Does "v4l2-ctl -l -d /dev/video1" return anything different?

You might give oacapture a try. It will offer to connect to the camera
using either V4L2 or a user-space UVC driver. That might help to shed
some light on the problem?

James

------------------------------------------------------------------------------
Toni Schriber
2015-10-07 10:24:09 UTC
Permalink
Post by James Fidell
Post by Toni Schriber
The problem is, that I want to use the cam for astrofotos and so I have
to control the exposure. That is exactly what INDI and other tools don't
show! Following the information I was able to retrieve so far.
You can see, that "uvcvideo" reports 'Exposure, Auto' and 'Exposure
(Absolute)', but "uvcdynctrl" doesn't!
I'm running Mint 17 which is probably very close to your distro astro
install. When I plug in my DMK21 (which will be very similar to your
$ uvcdynctrl -d /dev/video0 -c
Brightness
Gamma
Gain
Exposure, Auto
Exposure (Absolute)
so I'm wondering if there's perhaps something odd about the firmware in
the camera or if it is returning data that the driver discards for some
reason.
Does "v4l2-ctl -l -d /dev/video1" return anything different?
You might give oacapture a try. It will offer to connect to the camera
using either V4L2 or a user-space UVC driver. That might help to shed
some light on the problem?
Thanks for your answer, James

The output of "v4l2-ctrl" is the following:
$ v4l2-ctl --all -d /dev/video1
Driver Info (not using libv4l2):
Driver name : uvcvideo
Card type : DMx 41AU02.AS
Bus info : usb-0000:00:1a.7-4
Driver version: 3.13.9
Capabilities : 0x84000001
Video Capture
Streaming
Device Capabilities
Device Caps : 0x04000001
Video Capture
Streaming
Priority: 2
Video input : 0 (Input 4: ok)
Format Video Capture:
Width/Height : 1280/960
Pixel Format : 'GREY'
Field : None
Bytes per Line: 1280
Size Image : 1228800
Colorspace : Unknown (00000000)
Crop Capability Video Capture:
Bounds : Left 0, Top 0, Width 1280, Height 960
Default : Left 0, Top 0, Width 1280, Height 960
Pixel Aspect: 1/1
Streaming Parameters Video Capture:
Capabilities : timeperframe
Frames per second: 15.000 (15/1)
Read buffers : 0
brightness (int) : min=0 max=63 step=1 default=0 value=0
gamma (int) : min=1 max=500 step=1 default=100 value=100
gain (int) : min=260 max=1023 step=1 default=260 value=260

As you see, there aren't any "exposure"-options neither. What does the
remark in parantheses after "Driver Info" mean?

Using "aocapture" shows an lonely label "Exposure" without the corresponding
possibility to set/get the options/values.

Regards
Toni
Edgar Thier
2015-10-07 10:32:34 UTC
Permalink
Hi Toni,

Many Imaging Source USB cameras usw uvc extension units. Have you tried
loading their extension units as they describe in their wiki(
http://github.com/theimagingsource/tiscamera/wiki/UDEV-Rules)?

Regards,

Edgar
Post by Toni Schriber
Post by James Fidell
Post by Toni Schriber
The problem is, that I want to use the cam for astrofotos and so I have
to control the exposure. That is exactly what INDI and other tools don't
show! Following the information I was able to retrieve so far.
You can see, that "uvcvideo" reports 'Exposure, Auto' and 'Exposure
(Absolute)', but "uvcdynctrl" doesn't!
I'm running Mint 17 which is probably very close to your distro astro
install. When I plug in my DMK21 (which will be very similar to your
$ uvcdynctrl -d /dev/video0 -c
Brightness
Gamma
Gain
Exposure, Auto
Exposure (Absolute)
so I'm wondering if there's perhaps something odd about the firmware in
the camera or if it is returning data that the driver discards for some
reason.
Does "v4l2-ctl -l -d /dev/video1" return anything different?
You might give oacapture a try. It will offer to connect to the camera
using either V4L2 or a user-space UVC driver. That might help to shed
some light on the problem?
Thanks for your answer, James
$ v4l2-ctl --all -d /dev/video1
Driver name : uvcvideo
Card type : DMx 41AU02.AS
Bus info : usb-0000:00:1a.7-4
Driver version: 3.13.9
Capabilities : 0x84000001
Video Capture
Streaming
Device Capabilities
Device Caps : 0x04000001
Video Capture
Streaming
Priority: 2
Video input : 0 (Input 4: ok)
Width/Height : 1280/960
Pixel Format : 'GREY'
Field : None
Bytes per Line: 1280
Size Image : 1228800
Colorspace : Unknown (00000000)
Bounds : Left 0, Top 0, Width 1280, Height 960
Default : Left 0, Top 0, Width 1280, Height 960
Pixel Aspect: 1/1
Capabilities : timeperframe
Frames per second: 15.000 (15/1)
Read buffers : 0
brightness (int) : min=0 max=63 step=1 default=0 value=0
gamma (int) : min=1 max=500 step=1 default=100 value=100
gain (int) : min=260 max=1023 step=1 default=260 value=260
As you see, there aren't any "exposure"-options neither. What does the
remark in parantheses after "Driver Info" mean?
Using "aocapture" shows an lonely label "Exposure" without the
corresponding
Post by Toni Schriber
possibility to set/get the options/values.
Regards
Toni
------------------------------------------------------------------------------
Post by Toni Schriber
Full-scale, agent-less Infrastructure Monitoring from a single dashboard
Integrate with 40+ ManageEngine ITSM Solutions for complete visibility
Physical-Virtual-Cloud Infrastructure monitoring from one console
Real user monitoring with APM Insights and performance trend reports
Learn More
http://pubads.g.doubleclick.net/gampad/clk?id=247754911&iu=/4140
Post by Toni Schriber
_______________________________________________
Linux-uvc-devel mailing list
https://lists.sourceforge.net/lists/listinfo/linux-uvc-devel
James Fidell
2015-10-07 11:18:43 UTC
Permalink
Post by Edgar Thier
Hi Toni,
Many Imaging Source USB cameras usw uvc extension units. Have you tried
loading their extension units as they describe in their wiki(
http://github.com/theimagingsource/tiscamera/wiki/UDEV-Rules)?
I'm fairly sure the udev rules just get the uvc driver to recognise the
camera as a UVC device as whilst they can behave as UVC devices the
descriptor does not say they are.

Different TIS camera models have different extension units and not all
of them appear to be documented, but in my experience the exposure
controls are part of the standard camera terminal control set.

Some of the cameras also have different firmware releases to change
the functionality available (for example, some have a UVC-compliant
firmware and TIS's own mostly-undocumented EUVC firmware). The USB
Product ID is different for each firmware release however, and 8101
should be the UVC firmware as far as I know.

Unfortunately my DMK41 is FireWire, so I don't have anything to
compare with directly :(

James
James Fidell
2015-10-07 11:31:59 UTC
Permalink
Post by Toni Schriber
As you see, there aren't any "exposure"-options neither. What does the
remark in parantheses after "Driver Info" mean?
I don't know, but my DMK21 does the same. Your output is almost
identical to that for my DMK21, but I have the exposure controls too.
Post by Toni Schriber
Using "aocapture" shows an lonely label "Exposure" without the corresponding
possibility to set/get the options/values.
Does the camera appear twice in the menu, for both the V4L2 and UVC
interfaces? And if so is the behaviour the same for both? You may
need the udev rules in place to get the UVC one to work at all.

The output of

$ lsusb -vv -d 199e:8101

might also be useful.

Perhaps the camera doesn't advertise that it has an exposure control,
but if you know it is there you can still use it?

James
Toni Schriber
2015-10-08 16:33:05 UTC
Permalink
Hi James

Thanks again for your commitment and the hints.
I keep on analyzing the strange behaviour of the DMK41au02. I found out, that
the cam is older than I thought, at least 13 years. So I think there is a
problem with old hardware and/or old firmware. At my first contact S. Geissle
form "imagingsource" denied that. But the clues I got with "oacapture"
indicate some quirk with the usb-interface (see below). So I will confront
him with this fact.
Post by James Fidell
Post by Toni Schriber
As you see, there aren't any "exposure"-options neither. What does the
remark in parantheses after "Driver Info" mean?
I don't know, but my DMK21 does the same. Your output is almost
identical to that for my DMK21, but I have the exposure controls too.
Post by Toni Schriber
Using "aocapture" shows an lonely label "Exposure" without the
corresponding possibility to set/get the options/values.
Does the camera appear twice in the menu, for both the V4L2 and UVC
interfaces? And if so is the behaviour the same for both? You may
need the udev rules in place to get the UVC one to work at all.
With "astrodistro" I have only the v4l2-interface. Even installing the udev-
rules according "github.com/TheImagingSource/tiscamera" didn't bring up a
second interface. So I started "mint-linux" from a stick, installed
"oacapture" an - voilá - there was the additional uvc-interface! Alas the
application was not able to connect the cam and I got no further information
in the message. BUT: Switching back to the v4l2-interface there appeared a
very interesting errormessage, saying that the application "can't find new
exposure setting"! According to the source code this happens, if there is no
correct "dropdownvalue" for the dropdownmenu of the exposure. In my opinion
this is a strong evidence, that something is wrong with the handover of the
options/parameters. I will go on and try to debug "oacapture".
Post by James Fidell
The output of
$ lsusb -vv -d 199e:8101
Here it is:
Bus 001 Device 005: ID 199e:8101 The Imaging Source Europe GmbH DFx 21BU04
Camera
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 239 Miscellaneous Device
bDeviceSubClass 2 ?
bDeviceProtocol 1 Interface Association
bMaxPacketSize0 64
idVendor 0x199e The Imaging Source Europe GmbH
idProduct 0x8101 DFx 21BU04 Camera
bcdDevice 1.00
iManufacturer 1
iProduct 2
iSerial 3
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 215
bNumInterfaces 2
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
(Bus Powered)
MaxPower 500mA
Interface Association:
bLength 8
bDescriptorType 11
bFirstInterface 0
bInterfaceCount 2
bFunctionClass 14 Video
bFunctionSubClass 3 Video Interface Collection
bFunctionProtocol 0
iFunction 2
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 14 Video
bInterfaceSubClass 1 Video Control
bInterfaceProtocol 0
iInterface 2
VideoControl Interface Descriptor:
bLength 13
bDescriptorType 36
bDescriptorSubtype 1 (HEADER)
bcdUVC 1.10
wTotalLength 93
dwClockFrequency 0.010000MHz
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 0x0000000a
Auto-Exposure Mode
Exposure Time (Absolute)
VideoControl Interface Descriptor:
bLength 11
bDescriptorType 36
bDescriptorSubtype 5 (PROCESSING_UNIT)
Warning: Descriptor too short
bUnitID 2
bSourceID 6
wMaxMultiplier 0
bControlSize 2
bmControls 0x00000221
Brightness
Gamma
Gain
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 5
iTerminal 0
VideoControl Interface Descriptor:
bLength 8
bDescriptorType 36
bDescriptorSubtype 2 (INPUT_TERMINAL)
bTerminalID 4
wTerminalType 0x0200 Input Vendor Specific
bAssocTerminal 0
iTerminal 0
VideoControl Interface Descriptor:
bLength 7
bDescriptorType 36
bDescriptorSubtype 4 (SELECTOR_UNIT)
bUnitID 5
bNrInPins 1
baSource( 0) 2
iSelector 0
VideoControl Interface Descriptor:
bLength 27
bDescriptorType 36
bDescriptorSubtype 6 (EXTENSION_UNIT)
bUnitID 6
guidExtensionCode {0aba49de-5c0b-49d5-8f71-0be40f94a67a}
bNumControl 0
bNrPins 1
baSourceID( 0) 4
bControlSize 2
bmControls( 0) 0x0b
bmControls( 1) 0x03
iExtension 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 1
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 0
bEndPointAddress 129
bmInfo 0
bTerminalLink 3
bStillCaptureMethod 0
bTriggerSupport 0
bTriggerUsage 0
bControlSize 1
bmaControls( 0) 28
VideoStreaming Interface Descriptor:
bLength 28
bDescriptorType 36
bDescriptorSubtype 16 (FORMAT_FRAME_BASED)
bFormatIndex 1
bNumFrameDescriptors 1
guidFormat
{59383030-0000-1000-8000-00aa00389b71}
bBitsPerPixel 8
bDefaultFrameIndex 1
bAspectRatioX 16
bAspectRatioY 9
bmInterlaceFlags 0x86
Interlaced stream or variable: No
Fields per frame: 1 fields
Field 1 first: Yes
Field pattern: Field 1 only
bCopyProtect 0
bVariableSize 0
VideoStreaming Interface Descriptor:
bLength 38
bDescriptorType 36
bDescriptorSubtype 17 (FRAME_FRAME_BASED)
bFrameIndex 1
bmCapabilities 0x00
Still image unsupported
wWidth 1280
wHeight 960
dwMinBitRate 36864000
dwMaxBitRate 294912000
dwDefaultFrameInterval 666666
bFrameIntervalType 3
dwBytesPerLine 1280
dwFrameInterval( 0) 666666
dwFrameInterval( 1) 1333333
dwFrameInterval( 2) 2666666
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 1

Regards
Toni

------------------------------------------------------------------------------
James Fidell
2015-10-08 16:52:03 UTC
Permalink
Post by Toni Schriber
Thanks again for your commitment and the hints.
I keep on analyzing the strange behaviour of the DMK41au02. I found out, that
the cam is older than I thought, at least 13 years. So I think there is a
problem with old hardware and/or old firmware. At my first contact S. Geissle
form "imagingsource" denied that. But the clues I got with "oacapture"
indicate some quirk with the usb-interface (see below). So I will confront
him with this fact.
oacapture (it's my software :) can connect to UVC cameras using the
standard V4L2 UVC kernel driver or using a very slightly modified
version of Ken Tossell's user-space UVC driver. Those changes are
mainly so it will recognise the TIS astronomy cameras I have as UVC
cameras even though the descriptors don't say they're UVC cameras
(they claim to have vendor-specific interface classes rather than
video).

It works for every camera I've come across up to now :)

The lsusb output that you have posted however is not what I'd expect
to see from one of those cameras. It appears to be a true UVC camera.
That possibly means that my user-space driver won't work without
changes.

It might be interesting to ask Stefan Geissler if he knows of DMK41
cameras that used a "proper" UVC interface rather than the vendor-
specific one.

It certainly appears from the libusb output that the camera does
claim to support exposure time controls, but I'm confused by the
"Descriptor too short" warning.

James

------------------------------------------------------------------------------
Toni Schriber
2015-10-12 07:45:55 UTC
Permalink
Hi James
Post by Toni Schriber
Thanks again for your commitment and the hints.
I keep on analyzing the strange behaviour of the DMK41au02. I found out,
that the cam is older than I thought, at least 13 years. So I think there
is a problem with old hardware and/or old firmware. At my first contact S.
Geissle form "imagingsource" denied that. But the clues I got with
"oacapture" indicate some quirk with the usb-interface (see below). So I
will confront him with this fact.
That is , what I wrote a couple fo days ago. In the meantime I could convince
S. Geissler to send me a new firmware: He admitted, that he didn't consider
the really old firmware of my camera.

To summarize:

My DMK41 had a very old firmware #1005, that reported 100%-UVC compliant (see
lsusb-log) but the exposurecontrol didn't show up correctly.
With the update to firmware #1027 (sent by S. Geissler, TIS) the camera does
not report a 100% UVC compliance (see below), but nonetheless all controls -
including the exposure - are now present with the uvcvideo-driver! The OS
(distroastro) didn't have any problems recognizing the camera: It appears in
the devicelist without a special udev-rule.

I hope this helps others. when struggling with an older DMK! Keep demanding a
firmware update (after trying all the tools!).

Regards
Toni

P.S. I will try if the cam comes now up in oacapture with uvc-userspace-
driver.

------------------------------------------------------------------------------
Toni Schriber
2015-10-12 09:58:53 UTC
Permalink
Sorry, forgot the new lsusb-log with firmware #1027


Bus 001 Device 005: ID 199e:8101 The Imaging Source Europe GmbH DFx 21BU04
Camera
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 239 Miscellaneous Device
bDeviceSubClass 2 ?
bDeviceProtocol 1 Interface Association
bMaxPacketSize0 64
idVendor 0x199e The Imaging Source Europe GmbH
idProduct 0x8101 DFx 21BU04 Camera
bcdDevice 1.00
iManufacturer 1
iProduct 2
iSerial 3
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 215
bNumInterfaces 2
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
(Bus Powered)
MaxPower 500mA
Interface Association:
bLength 8
bDescriptorType 11
bFirstInterface 0
bInterfaceCount 2
bFunctionClass 255 Vendor Specific Class
bFunctionSubClass 3
bFunctionProtocol 0
iFunction 2
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 1
bInterfaceProtocol 0
iInterface 2
** UNRECOGNIZED: 0d 24 01 10 01 5d 00 10 27 00 00 01 01
** UNRECOGNIZED: 12 24 02 01 01 02 00 00 00 00 00 00 00 00 03 0a 00 00
** UNRECOGNIZED: 0b 24 05 02 06 00 00 02 21 02 00
** UNRECOGNIZED: 09 24 03 03 01 01 00 02 00
** UNRECOGNIZED: 08 24 02 04 00 02 00 00
** UNRECOGNIZED: 07 24 04 05 01 02 00
** UNRECOGNIZED: 1b 24 06 06 0a ba 49 de 5c 0b 49 d5 8f 71 0b e4 0f 94
a6 7a 00 01 01 02 1b 43 00
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 2
bInterfaceProtocol 0
iInterface 0
** UNRECOGNIZED: 0e 24 01 01 00 00 81 00 03 00 00 00 01 00
** UNRECOGNIZED: 1c 24 10 01 01 59 38 30 30 00 00 10 00 80 00 00 aa 00
38 9b 71 08 01 10 09 86 00 00
** UNRECOGNIZED: 26 24 11 01 00 00 05 c0 03 00 80 32 02 00 00 94 11 2a
2c 0a 00 03 00 05 00 00 2a 2c 0a 00 55 58 14 00 aa b0 28 00
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 1


------------------------------------------------------------------------------
Loading...