@srsa_4c
Thank you for all the details of your discovery. I read it with the same care with which you wrote. After seeing your earlier difficulties, I kind-a sensed that a schematic could help you. So, congrats on that one - wonderful work! Hopefully some day some disgruntled Canon engineer (or preferably one with a good heart because there is nothing there the other big competitors don't know already) will publish an S90 schematic into cyberspace to help us all.
FYI, I have a little relic from the past for you to consider while you have your IDE open, and perhaps resolve if you feel so inclined. Would you like to know what it is?
You mean one of my failed attempts? Which one?
I don't believe so, not sure though // long time ago // ... I think the primary discussion was with reyalp. But I have a feeling you might be able to resolve it, because in the least you should be able to reproduce it the a3200. Here's the situation. Right now I have Lua code in my big function my_shoot(Tv, Sv) that is a work-around. My_shoot() calls reyalp's shoot(). When I have liveview ISO set to any other value than ISO 100, for example, I set liveview to say ISO 800 by the normal Canon route SET etc, then after the call to shoot() regardless of override parameters (which work as expected in the image -- that's OK), the liveview ISO always resets to ISO 100. So what happens is that the liveview goes quite dark because the amplifier gain changes correspondingly. But, even though the ISO icon now says "100" and what was a bright view before the shot is now dark, if one goes into the SET -> ISO Canon menu, the ruler tick mark still points to original value of liveview (ie 800)! So if you jog the tick mark LEFT RIGHT (ie 1/3 stop away and back, and hit SET, the liveview reverts back to ISO 800 and amp gain goes back up, and all's back to normal again. Hence you can now see that the 1/3-stop jog works for any ISO setting, and is a universal workaround, but only guaranteed for the S90. Hence the code after shoot() that re-establishes the current liveview is:
function reset_ISO() -- After taking shot a with myshoot(), Canon ISO is left at the override value. Function resets liveview Canon ISO after taking a shot
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)
end
In order for this to work, the code expects the last menu item selected to be ISO before pressing SET to exit. Hence there are 3 drawbacks to this method:
a) there is ~1.5s overhead per shot, and now that the system is destined for tiling a hundred or more images per mosaic, it becomes quite a factor,
b) it is S90 sensitive .. because this is generic operation not specific to the 101a project and effects everyone who wants to use CHDKPTP (certainly with the S90), it is likely not very compatible with the whole array of cameras that CHDK addresses, and,
c) the worst for me personally is that sometimes I go into the SET menu to change other parameters and forget to reset the side-bar icon pointer to the ISO icon before pressing SET to exit, I go take a shot, and the above function messes with other settings!
So if you could solve this in FW, it would be a nice bonus for the S90_101a project, and you can might be able to put it into the standard CHDK distribution for all cameras. If you think you'd like to give it a shot, please let me know if you can reproduce the problem on your a3200.