×

INDI Library v2.0.7 is Released (01 Apr 2024)

Bi-monthly release with minor bug fixes and improvements

Can't change ISO of indi_v4l2_ccd device in EKOS

  • Posts: 5
  • Thank you received: 0
(Upon trying to view the how-to-turn-on-logging video I just got the massage "unknown mime type")

Anyhow - when I start indiserver with debugoption, in the beginning is a list which seems to me like the capabilities-list you spoke of.
Actually I've looked at it before and thats where I got the idea from, that not all driver capabilities are exposed to the GUI. Because here is not only the ISO-Automode listed, but also the ISO setting as well:



But without menu items.
"Control ISO Sensitivity" corresponds to iso_sensitivity
"Control ISO Sensitivity, Auto" corresponds to iso_sensitivity_auto

The latter gets its 2 values (0/1=Manual/Auto) listed as menu items, the former just sits there without a list of possible values.

UPDATE:
A quick glance at the man page for v4l2-ctl got me the -L parameter ("Display all controls and their menus [VIDIOC_QUERYMENU].").

After listing the detailed driver capabilities I think I might have found whats wrong:



Here the iso_sensitivity gets a full menu listing. But unlike most of the other options, this one is of type intmenu , while the majority of the others are of type menu.
The same can be said about auto_exposure_bias, which also is of type intmenu and doesnt get menulisted in indiserver/debug as well.

So whoever made the implementation of the indi_v4l2_ccd may have just regexed' for /[a-z0-9_]+ \(menu/ instead of /[a-z0-9_]+ \([int]*?menu/ ?

Just an idea...

UPDATE 2:
I attached the INDI/EKOS logfile and the indiserver debug output below.
Last edit: 7 years 1 month ago by sasax. Reason: found the sourcecode meanwhile
7 years 1 month ago #14877
Attachments:

Please Log in or Create an account to join the conversation.

  • Posts: 5
  • Thank you received: 0
Ah - my guess was right: In the file libindi/libs/webcam/v4l2_base.cpp there is a commented out part, whos purpose seems to be targeting also the intmenu controls when getting the "normal" menu controls. Function V4L2_Base::enumerate_ctrl(), line 1722:
if ((queryctrl.type == V4L2_CTRL_TYPE_MENU))//|| (queryctrl.type == V4L2_CTRL_TYPE_INTEGER_MENU)) // not in < 3.5

What does "// not in < 3.5" mean and is this being curently developed or an artefact of a dead end try? (There are several commented out lines regarding the intmenu stuff in this file...)

Just asking - as I saw, that you (Jasem) wrote that file and comitted in January the last edit. My C/C++ coding skills are quite rusty (like 20+ years ago rusty), but I could give it a try, if you don't have the time for it?
7 years 1 month ago #14902

Please Log in or Create an account to join the conversation.

Sure try to fix this issue if you can and submit a pull-request. Just make sure it doesn't break anything else in the driver!
7 years 1 month ago #14904

Please Log in or Create an account to join the conversation.

  • Posts: 7
  • Thank you received: 0
3.5 might be the Version. I have found it right here: linuxtv.org/downloads/v4l-dvb-apis/uapi/...ml#v4l2-in-linux-3-5

I don't know anything about C++ oder C Programming so I don't think I can fix the problem either.
7 years 1 month ago #15131

Please Log in or Create an account to join the conversation.

  • Posts: 226
  • Thank you received: 88
Hi,
I've added some support for integer menus in v4l2, but was unable to test it as I don't have a device with integer menus.
May you test it with your setup before I ask for a pull request ?
The code is in my i fork repository , only the libindi/libs/webcam/v4l2_base.cpp has been modified.
Thanks,
Jean-Luc.
The following user(s) said Thank You: Dominik Laa
7 years 1 month ago #15146

Please Log in or Create an account to join the conversation.

  • Posts: 7
  • Thank you received: 0
I actually tested it. What i have done was downloaded it from your fork. And installed it afterwards. On my virtual machine and on the raspberry pi. But I have not found any new options for the ISO Setting.

I have already opened an issue about the problem on github: github.com/indilib/indi/issues/173

If I should try something else just tell me or if you need remote access to an raspberry pi with atached camera - i think that would be manageable.
Last edit: 7 years 1 month ago by Dominik Laa.
7 years 1 month ago #15148

Please Log in or Create an account to join the conversation.

  • Posts: 226
  • Thank you received: 88
Are the Menu items listed in the driver capabilities as you show in your preceding post ?
They should be there as 'Integer Menu items'.
7 years 1 month ago #15158

Please Log in or Create an account to join the conversation.

  • Posts: 7
  • Thank you received: 0
Yes they are.
iso_sensitivity (intmenu): min=0 max=4 default=0 value=0
                                0: 0 (0x0)
                                1: 100000 (0x186a0)
                                2: 200000 (0x30d40)
                                3: 400000 (0x61a80)
                                4: 800000 (0xc3500)
           iso_sensitivity_auto (menu)   : min=0 max=1 default=1 value=1
                                0: Manual
                                1: Auto

I also attached there KStars Log-File.
7 years 1 month ago #15163
Attachments:

Please Log in or Create an account to join the conversation.

  • Posts: 226
  • Thank you received: 88
Ok I made a mistake in the integer menu item names, could you try again ?
And also have a look at the driver output as you did in your preceding post (when you circle in red its output).
Thanks.
7 years 1 month ago #15164

Please Log in or Create an account to join the conversation.

  • Posts: 7
  • Thank you received: 0
I have reinstalled it on the VM and on the Raspberry Pi but the same problem either - can't see any new options to controle the ISO. I have also attached the log file for the driver (on the raspberry pi).
7 years 1 month ago #15165
Attachments:

Please Log in or Create an account to join the conversation.

  • Posts: 226
  • Thank you received: 88
Well, au temps pour moi, V4L2 control types are defined in an enum, so I have to test the kernel version, not just use #ifdef.
I've made the corrections, so I hope that it would work now. At least show the items in the capability list.

Thanks again for testing.
Jean-Luc.
7 years 1 month ago #15168

Please Log in or Create an account to join the conversation.

  • Posts: 7
  • Thank you received: 0
With that the option is here - see also the Screenshot that I have attached.

So first I have to say thank you at least 1000 times :)

There is just one more issure: The maximum exposure time seems to be 10000 (may be 1 second) but the Rasperry Pi Camera supports up to 6 seconds. On the first page I can enter different values for "Expose" but they seem to make no real change. On The V4L2 Control Tab is also a value where you can enter times up to 10 000 (see also my second attached screenshot). That's acutally pretty bad because even ISO 800 and 1 Second may not be enough for some needs of Astronomy.

That value may come directly from V4L2 because that L readout gives me also:
exposure_time_absolute (int) : min=1 max=10000 step=1 default=1000 value=10000

There was also a thread about the problem (but only one entry) which also had the idea that the problem may be V4L2 related (what might be pretty bad I thing).

Thanks,
Dominik

Ps: Thanks for developing the solution !
Last edit: 7 years 1 month ago by Dominik Laa. Reason: added attachments
7 years 1 month ago #15174
Attachments:

Please Log in or Create an account to join the conversation.

Time to create page: 1.498 seconds