CHDK in the stratosphere - page 3 - Creative Uses of CHDK - CHDK Forum

CHDK in the stratosphere

  • 29 Replies
  • 21653 Views
Re: CHDK in the stratosphere
« Reply #20 on: 06 / January / 2009, 13:10:19 »
Advertisements
To the op (fbonomi): you mentioned taking 100 meterings, discarding some and averaging the rest. 

I have been shooting from a glider and usually half or more of the shots are blurry from motion blur.  Yesterday I tried to set the camera at a fixed 1/1000 second shutter speed (this worked) but the exposures are too dark. 

I need to learn how to compensate the shorter shutter speed by what? aperture control? ISO control? other?  Can the camera do this automatically or do I need to set it in my script?  Still a newby here...

If you can show the portion of your script that controls exposure, it might be very useful for me to learn how to do that.  Thanks!!!
Was: SD1100 IS, Autobuild, V1.01a, dunked in ocean
Next: SD990 IS, Autobuild, used to build sand castles with
Waiting to die: SX230

*

Offline fbonomi

  • ****
  • 469
  • A570IS SD1100/Ixus80
    • Francesco Bonomi
Re: CHDK in the stratosphere
« Reply #21 on: 06 / January / 2009, 13:34:49 »
I need to learn how to compensate the shorter shutter speed by what? aperture control? ISO control? other? 

It depends on the camera you have.

On many cameras setting the camera to "Tv mode" (aka shutter priority) would be fine.

The problem is, the SD1100 does NOT have Tv mode, and has a fixed aperture (no iris).
To make things worst, the camera has a ND filter (a grey filter) that is activated when there's a lot of light, so in very bright scenes (like probably shooting from a glider) the exposure gets again longer

Quote
Can the camera do this automatically or do I need to set it in my script?  Still a newby here...

no, the camera won't do it automatically.

What I did is

1) block the ND filter to "Out" (via CHDK "Extra photo operations" menu)
2) at this point the filter always stays out, therefore at high luminosty the camera thinks to shoot with a filter, shoots without fitler and over-exposes.
3) my code then starts with a "target" shutter time (for example, 1/1000)
4) measures scene luminosity
5) adjusts the ISO up/down (as I said, we can't adjust aperture) to get a "good" exposure with the measured luminosity and the given exposure
6) check that ISO stays in a specified range, (i.e. not too high or too low) and in case adjusts the shutter time back

The disadvantage of this approach is that a rather long time passes between metering and shooting so in the meanwhile the camera might move and point at a darker/lighter area.

Anyway, the 100-metering part is probably not needed in your case, as the glider will fly a bit smoother than the balloon (i.e. not too many up-down swings)

I am enclosing the relevant parts of code for you to study.
« Last Edit: 06 / January / 2009, 13:59:14 by fbonomi »

*

Offline fbonomi

  • ****
  • 469
  • A570IS SD1100/Ixus80
    • Francesco Bonomi
PARTS OF CODE:
« Reply #22 on: 06 / January / 2009, 13:50:16 »
These are the bits that might be of use for your application

Warning: SD1100 specific!!!

This function meters the brightness
Code: [Select]
-- read curent bv from scene
function read_bv96()
 press("shoot_half")
 while get_prop(115)==0 do
  sleep(100)
 end
 bv=get_bv96()
 release("shoot_half")
 return bv
end


This is the function that actually does the shooting:

Code: [Select]
-- Fast TV shooting

-- Fast Tv mode is defined as a Tv mode where
-- we try to attain a VERY fast shutter time (like 1/5000")
-- by increasing ISO
-- There is anyway a maximum value for ISO

function fast_tv_shoot(bv, fast_tv, max_sv, offset)
-- bv is the brightness we suppose have in the scene
-- if bv=-1 this means we will have to meter ourselves
-- fast_tv is the shutter time we would like to attain
-- max_sv is the maximun sensibility we find acceptable
-- offset is a fine-tuning for very fast exposures

-- Possibile values for fast_tv
-- 1245 = 1/8000
-- 1149 = 1/4000
-- 1053 = 1/2000
--  957 = 1/1000
--  861 =  1/500
--  765 =  1/250

-- Possible values of max_sv
-- 320 = ISO   50
-- 388 = ISO   80
-- 418 = ISO  100
-- 514 = ISO  200
-- 611 = ISO  400
-- 707 = ISO  800
-- 803 = ISO 1600

-- Ixus 80 has fixed aperture
av = 285 + offset

dbg("FAST TV")
dbg("bv " .. bv)

if bv==-1 then
 bv=read_bv96()
 dbg("metered bv " .. bv)
 -- offset measured brightness
end

--if we shoot at fast_tv,
tv=fast_tv
-- resulting sv would be
sv = av + fast_tv - bv

dbg("tv " .. tv)
dbg("sv " .. sv)

-- let's check if it's not too high
if sv>max_sv then
 -- how much must we reduce sv?
 reduce = sv-max_sv
 -- same reduction must be added to tv
 tv=tv-reduce
 sv=max_sv
 dbg("Reduced: ")
 dbg("tv " .. tv)
 dbg("sv " .. sv)
end

-- it might also happen than sv goes too low
-- arbitrary limit of 322 sv (abt ISO 50)
if sv<322 then
 reduce = sv-322
 tv=tv-reduce
 sv=322
 dbg("INCREASED: ")
 dbg("tv " .. tv)
 dbg("sv " .. sv)
end


-- at last moment, set our parameters


-- set shutter time
set_tv96_direct(tv)
sleep(100)

-- set ISO
set_sv96(sv)
sleep(100)

shoot()

writelog("FTV", "Shoot " .. get_exp_count() .. " ".. bv .. " " .. tv .. " " .. sv .. " " .. av)

repeat
 sleep(100)
until get_prop(206)==0

end


Auxiliary functions for debugging and logging:
(if unneeded, remove calls to these functions from fast_tv_shoot)

Code: [Select]
function timestamp()
 h=get_time("h")
 m=get_time("m")
 s=get_time("s")
 return ( h .. ":" .. m .. ":" .. s)
end

function dbg(msg)
 -- uncomment for extra info il log file
 --print(msg)
end

function writelog(prefix, msg)
 ts=timestamp()
 print('###' .. prefix .. ' ' .. ts .. ' '  .. ' ' .. msg)
end


The "offset" parameter is a way to try and calibrate for some errors in exposure (I guess the Sd1100 is somehow not really linear in fast exposures)

I suggest you call the function like this:

Code: [Select]
  -- min shutter 1/1000, max iso 100
  fast_tv_shoot(-1, 957, 418, 24)

or

Code: [Select]
-- min shutter 1/2000, max iso 200
  fast_tv_shoot(-1, 1053, 514, 32)

At faster speeds, a new "offset" value (the last parameter) should be re-calibrated by trial and error.
that's probably useless, as 1/2000 is anyway quite fast.
« Last Edit: 06 / January / 2009, 14:00:21 by fbonomi »

Re: CHDK in the stratosphere
« Reply #23 on: 06 / January / 2009, 14:04:15 »
Wow! Thank you!!!

I am also using the SD1100 so this will be directly applicable.  I wondered about the nd filter and no real iris... you have given me a great start. 

Thanks again for sharing!!
Was: SD1100 IS, Autobuild, V1.01a, dunked in ocean
Next: SD990 IS, Autobuild, used to build sand castles with
Waiting to die: SX230


Re: CHDK in the stratosphere
« Reply #24 on: 23 / January / 2009, 15:24:05 »
Wow, fbonomi, both the pics and your work are very impressive!

*

Offline fbonomi

  • ****
  • 469
  • A570IS SD1100/Ixus80
    • Francesco Bonomi
Re: CHDK in the stratosphere
« Reply #25 on: 23 / January / 2009, 15:56:16 »
thanks!
Yes, it was a real fun project

Re: CHDK in the stratosphere
« Reply #26 on: 01 / June / 2009, 23:59:38 »
Just another data point on the path...

I used fbonomi's code in my SD1100 IS quite successfully.  Up to the point where I stopped doing aerial photography and tried under the sea pictures...  My new camera is a SD990 IS.  I couldn't resist the FIFTEEN MEGAPIXELS... sorry for shouting.

Anyway, I transferred the old scripts to the cards prepped for the SD990 and bingo! they worked fine.  So far, no changes necessary.  I'm still trying to sort things out as far as the various shooting modes and such are concerned.  The '990 has quite a bit more options to think about.

I just did one flight yesterday and all went well.  I have lots of work ahead in the way of experiments to see what I can do.

Thanks again, fbonomi!
Was: SD1100 IS, Autobuild, V1.01a, dunked in ocean
Next: SD990 IS, Autobuild, used to build sand castles with
Waiting to die: SX230

*

Offline fbonomi

  • ****
  • 469
  • A570IS SD1100/Ixus80
    • Francesco Bonomi
Re: CHDK in the stratosphere
« Reply #27 on: 02 / June / 2009, 03:09:20 »
@Old Farseeing Art: Thanks for keeping us updated!

I am very curious about this project...
do you mean, "unmanned" underwater photography or just "normal" underwater photography?
By "flight", do you mean "dive"?
How did you organize the thing?

I am glad that the scripts worked on the SD990... I think this was just because you happen to use only the most compatible part...

On my side, I am planning to to another balloon launch here in Italy for june 13th if the weather is ok.
I will update this thread if it's a go.


Re: CHDK in the stratosphere
« Reply #28 on: 02 / June / 2009, 10:30:09 »
Quote
do you mean, "unmanned" underwater photography or just "normal" underwater photography?

Sorry, I should have been more plain.  I was flying over the ocean at sunset getting some very nice shots of surfers backlit by the setting sun.  Flying low to get a good silhouette, I did something wrong and landed in the water.  The plane floated (it's closed cell polypropylene) but the camera was immersed and thus destroyed.  So I wasn't intentionally trying undersea photography, it just worked out that way. :haha

Just for fun, I disassembled the camera.  There's a photo of the SD1100 here:
http://transfer-orbit.posterous.com/





Was: SD1100 IS, Autobuild, V1.01a, dunked in ocean
Next: SD990 IS, Autobuild, used to build sand castles with
Waiting to die: SX230

*

Offline fbonomi

  • ****
  • 469
  • A570IS SD1100/Ixus80
    • Francesco Bonomi
Re: CHDK in the stratosphere
« Reply #29 on: 02 / June / 2009, 15:08:19 »
aww.... the poor camera!
That camera has made some really nice photos... the one with the sharks is one of my favoutire ones!


 

Related Topics