Using APEX values to compute exposure - General Discussion and Assistance - CHDK Forum
supplierdeeply

Using APEX values to compute exposure

  • 12 Replies
  • 2558 Views
Using APEX values to compute exposure
« on: 20 / January / 2013, 20:13:27 »
Advertisements
For a balloon flight, I am forcing a fast shutter speed.
The function half presses the shutter button and reads the APEX96 values for brightness, Av and ISO.
The computed Tv96 is applied on the next half press and later in the function all four APEX96 values are read.
After the shot, the four values are saved to a file.

If I take a photo in Canon Av mode, without override, the four APEX96 values are  also saved to a file.
If I then force exactly the same shutter speed, the exposure is not quite correct even though both sets of APEX96 values correspond !

Any explanation for this ?

While we are at it, does anyone understand the ISO override code ?

*

Offline reyalp

  • ******
  • 12690
Re: Using APEX values to compute exposure
« Reply #1 on: 20 / January / 2013, 20:36:01 »
Any explanation for this ?
Can't form any conclusion from the the limited information provided.

With the actual script, example values and photos, it might be possible to come up with something useful.  Also which camera, and is this using CHDK or SDM?
Quote
While we are at it, does anyone understand the ISO override code ?
Not me  :-[
Don't forget what the H stands for.

*

Offline philmoz

  • *****
  • 3163
    • Photos
Re: Using APEX values to compute exposure
« Reply #2 on: 20 / January / 2013, 20:45:19 »
While we are at it, does anyone understand the ISO override code ?

tsvstar wrote the new Auto ISO override code in CHDK.

Phil.
CHDK ports:
  sx30is (1.00c, 1.00h, 1.00l, 1.00n & 1.00p)
  g12 (1.00c, 1.00e, 1.00f & 1.00g)
  sx130is (1.01d & 1.01f)
  ixus310hs (1.00a & 1.01a)
  sx40hs (1.00d, 1.00g & 1.00i)
  g1x (1.00e, 1.00f & 1.00g)
  g5x (1.00c, 1.01a, 1.01b)

Re: Using APEX values to compute exposure
« Reply #3 on: 20 / January / 2013, 20:47:18 »
is this using CHDK or SDM?

SDM.
I have no idea what the CHDK Auto ISO is meant to do, or rather how it achieves it.

My application measures three of the parameters, calculates the fourth (Sv96) and applies it as an override.

I am very 'suspicious' of ISO readings !

I will do more tests later (with S95).
« Last Edit: 20 / January / 2013, 20:57:42 by Microfunguy »


Re: Using APEX values to compute exposure
« Reply #4 on: 20 / January / 2013, 21:43:49 »
tsvstar wrote the new Auto ISO override code in CHDK.
Documentation of his work is here :
http://chdk.setepontos.com/index.php?topic=7284
Ported :   A1200    SD940   G10    Powershot N    G16

*

Offline lapser

  • *****
  • 1093
Re: Using APEX values to compute exposure
« Reply #5 on: 21 / January / 2013, 01:09:31 »
My application measures three of the parameters, calculates the fourth (Sv96) and applies it as an override.

I am very 'suspicious' of ISO readings !

I will do more tests later (with S95).

I did some experimenting with changing exposure using Sv96 with propcases in half shoot, and got it working. Here's the relevant lua code:
Code: (lua) [Select]
props=require("propcase")
pSV=props.SV -- real sv
pDELTA_SV=props.DELTA_SV

--calculate desired sv after press("shoot_half")
  set_prop(pDELTA_SV,sv-get_prop(pSV)+get_prop(pDELTA_SV)) -- sets actual exposure
  set_prop(pSV,sv) -- sets EXIF data
This only adjusts the delta sv propcase, which is then added to a base sv propcase which doesn't change. I recently modified set_sv96(sv) to work in half shoot. It also sets the base propcase, but I think it may have a bug in the way it does this that may be causing your problem.

I did a sunset time lapse last night using a script that starts at iso 100, and increases shutter time until it reaches 1 second. Then it increases ISO until it gets to 800, and then continues increasing shutter time. It worked great with propcases, but set_sv96(sv) looks like it produced a large change in exposure between 2 shots, showing up as a flash in the video. I think set_sv96 may be setting the sv delta incorrectly after changing the base ISO. I'll check the code when I can, and see if I can find the problem. It may be something else entirely.

Anyway, maybe you could try the propcase method for setting sv described above, and see if that works in your application. If it does, it would show there's a problem in set_sv96()
EOS-M3_120f / SX50_100b / SX260_101a / G1X_100g / D20_100b
https://www.youtube.com/user/DrLapser/videos

Re: Using APEX values to compute exposure
« Reply #6 on: 21 / January / 2013, 20:30:57 »
Code: (lua) [Select]
props=require("propcase")
pSV=props.SV -- real sv
pDELTA_SV=props.DELTA_SV

--calculate desired sv after press("shoot_half")
  set_prop(pDELTA_SV,sv-get_prop(pSV)+get_prop(pDELTA_SV)) -- sets actual exposure
  set_prop(pSV,sv) -- sets EXIF data
maybe you could try the propcase method for setting sv described above, and see if that works in your application. If it does, it would show there's a problem in set_sv96()

Thanks, it will be in the morning now before I can test this.


David

*

Offline lapser

  • *****
  • 1093
Re: Using APEX values to compute exposure
« Reply #7 on: 21 / January / 2013, 22:32:39 »
I did a little testing on set_sv96(..) and it does seem to produce some strange results when setting the base value (market sv96). I'll have to explore a little more. There's also this little gem of C programming right in the middle of the function at line 930 in 1.2:
Code: [Select]
while ((shooting_is_flash_ready()!=1) || (focus_busy));
I'm not sure why he's waiting for that in set_sv96, but it really should have an msleep(10) in the loop if it's necessary.
EOS-M3_120f / SX50_100b / SX260_101a / G1X_100g / D20_100b
https://www.youtube.com/user/DrLapser/videos


Re: Using APEX values to compute exposure
« Reply #8 on: 22 / January / 2013, 11:02:37 »
Well, I tried my sv96 version and also a new dsv96 version.
Both produced correctly exposed results up to a setting of 1/8000 sec (whatever that really is).
I did not test higher.
Using my sv96 version, real ISO was 132 at 1/1600 sec and 693 at 1/8000.
That is a ratio of 5.25, slightly high but not bad.

Using a new function to set PROPCASE_DELTA_SV, the results were fine but my logfile did not indicate any change of ISO and that propcase is always zero on my camera at all ISO's.

Too dark now for further outdoor tests.

The main change I have made is to enable the exposure override task  exp_drv_task, SDM does not normally use it.
Maybe it is required for fast shutter speeds beyond the camera's normal range ?


« Last Edit: 22 / January / 2013, 12:52:55 by Microfunguy »

Re: Using APEX values to compute exposure
« Reply #9 on: 22 / January / 2013, 11:12:06 »
The main change I have made is to enable the exposure override task, SDM does not normally use it.
Maybe it is required for fast shutter speeds beyond the camera's normal range ?
AFAIK,  you need to call apex2us for fast shutter speeds - and that is typically hooked in the exp_drv_task in CHDK.
Ported :   A1200    SD940   G10    Powershot N    G16

 

Related Topics