THE S90 ISO DROP to 100 AFTER {shoot -sv > 100} LIVEVIEW BRIGHTNESS PROBLEM in M MODE@reyalp
OK I understand // thanks. From your clarifications and my experiments I think I have been able to synthesize some ideas.
DESCRIPTIONSo we can say that in general for all cameras, after a
{shoot -tv -av -sv} the internal parameter states are undefined, and, in modes other than M, are typically recomputed by the camera after a
shoot half. Hence specific to S90 M mode I have been able to determine thus that the original Canon preset Tv and Av are preserved after a
{shoot -tv -av}. But after a
{shoot -tv -av -sv} Canon preset Sv is not preserved in the same way Tv and Sv are. Furthermore, when one specifies
-sv>100 in the
shoot command, the Canon Sv always drops to 100
internally (even though Canon ISO icon remains at original value), and stays that way until manually reset, even though images are always exposed at the desired
-sv (i.e. the -sv override works correctly for the JPG despite the
internal Canon Sv and dark liveview states of ISO100).
MY POOR WORKAROUNDHere is the workaround code that recovers the preset Canon ISO that existed before
shoot -sv>100 by simulating a manual reset in script. Because of Canon's lethargic OSD operations, this is a *very poor* workaround because it adds a precious 1.2 sec after every shoot essentially contradicting in part srsa's hopeful solution to reduce overall shoot processing time with his post-shoot write-detection attempt (eliminating the dependency on the hard-coded worst-case SD write stall overkill
sys.sleep(2400) below, for more than 99% of shots).
-- usage: >!remote_shoot(1/8, 2.8, 400, "C:\\CANON_S90\\")
function remote_shoot(tv, av, canon_sv, destdir) -- shoots from CHDKPTP and transfers the image to PC deleting SD card DCIM subdirectories after every shot.
sv = canon_sv / 1.6461 -- ISO correction for S90 so that CHDK EXIF data is the same as Canon.
cli:execute('shoot -tv='..tv..' -av='..av..' -sv='..sv..'')
sys.sleep(2400)
con:execwait('click "set"')
sys.sleep(400)
con:execwait('click "left"')
sys.sleep(200)
con:execwait('click "right"')
sys.sleep(200)
con:execwait('click "set"')
sys.sleep(400)
local l,r=con:execwait('return get_meminfo().free_size')
print(" free", r)
printf(" free: %s\n",r)
dcimdl(destdir, true, false)
end
HELP?Because you are saying that you have not yet characterized this behavior, in the meantime could you help me replace the four calls to
click into one say expedient call that does the same thing? A much better workaround? There are a few set ISO calls in your library. I did not know which and how to parametrize, but nonetheless I basically tried some variations of this:
> shoot
> set_sv96(some arbitrary value)
.. but they didn't seem to work.
So I think the C-like psuedocode that probably might work on all cameras in M mode ... if possible to do? ...
remote_shoot(tv, av, sv, destdir)
{
save_tv = get_tv() from camera
save_av = get_av() from camera
save_sv = get_sv() from camera
shoot(tv av sv) <<== the S90 Sv problem
set_tv(save_tv)
set_av(save_av)
set_sv(save_sv) <<== the much faster S90 Sv workaround solution ?? ==> hope liveview goes bright again.
dcimdl(destdir)
}
Could you help? Some new solution ideas? A workable code snippet that I could explore?