A fast "intervalometer"
- Written for/on: S3, using CHDK v148
- Also works on: A570IS
- others unknown (probably all)
by Divalent. 9/30/2007
This "intervalometer" is not really an intervalometer per se, it's just a program that will allow you to execute the continual mode for acquiring images as fast as possible when your purpose is to generate a time lapse sequence to create a movie. For that purpose, you typically want the camera mounted on a tripod, and don't want to have to have your finger on the shutter button. Thus, you minimize movement of the camera.
This script allows you to start image acquisition with the touch of one button (specifically, one of the 4 directional buttons on the camera), and it will end either when a specified time expires, or if you hit another button on the camera.
The continual mode allows you collect images at the fastest possible rate, typically 2.4 fps (0.42 sec per image) under optimal conditions, whereas with an intervalometer script the best you can do is about 1.5 sec per image.
NOTE: when using this Script, you must first place the camera in continual mode (on an S3, you do that by hitting the timer button once, if it wasn't in that mode to begin with). On the A570, you do this by pressing the Func./Set button, then selecting drive mode (the little square). On the A570, continuous shooting is not available in full auto - you must set the camera to TV, M, AV, or P mode.
You will want to turn the flash off if you want fast photos, although this obviously comes with tradeoffs.
One tradeoff to note is that the continual mode does not re-adjust the exposure (or focus, if not using MF) prior to each shot. Instead, (and unlike the true intervalometer scripts) each image is acquired using whatever was determined to be appropriate for the first shot.
Also, this script might be useful for lightning shots. [See the Lightning script submitted by Keoeeit (now labeled superceded) for information on (among other things) disabling the dark frame subtraction.]
Documentation/Help There is none: if you want, cut and paste the above text and save it as a small "fast_intv.txt" file to your /CHDK/SCRIPTS/ folder.
Script Code (save as "fast_intv.bas" to your /CHDK/SCRIPTS/ folder)
rem author Divalent rem camera: S3, CHDK v148, Operating in P mode rem rem Save this file as "fast_intv.bas" in the SCRIPTS directory rem rem This version uses the continuous mode in an S3 for taking consecutive rem images rem as fast as the camera can shoot them (on my camera, rem about 2.4 FPS, or ~420 msecs apart). rem rem NOTE: unlike a slower intervalometer script, there is NO refocussing rem nor any exposure readjustment between images. What you get is what you rem start with. 2 secs is allowed before the start to focus and set rem the exposure. rem rem To use, you must set the camera into continuous mode. This script will rem then just keep it shooting until any button is pressed on the camera or rem until the user specifed duration is up. rem @title Fast Intervalometer @param m duration of sequence (Min) @default m 0 @param d duration of sequence (sec) @default d 10 rem rem validate duration value d=m*60+d if d<2 then d=2 rem now convert to msec (for waitclick timeout) d=d*1000 :loopa rem clear key queue wait_click 100 print " " print " " print " " print "Fast Intervalometer" print "R U in Continual Mode?" print "any ARROW key -> start" print " SET key -> ABORT" rem wait_click is_key k "left" if k=1 then goto "start_shooting" is_key k "right" if k=1 then goto "start_shooting" is_key k "up" if k=1 then goto "start_shooting" is_key k "down" if k=1 then goto "start_shooting" is_key k "set" if k=1 then goto "abort_script" rem goto "loopa" rem :start_shooting rem first get camera to lock in focus and exposure press "shoot_half" sleep 500 print " " print "Shooting continually!!" print " **** " print "Hit ANY key to END" rem sleep 1500 press "shoot_full" sleep 1000 wait_click d release "shoot_full" sleep 100 release "shoot_half" rem is above needed? print " " print " " print "**** FINISHED ****" print " " goto "prog_end" :abort_script print " " print "**** ABORTED ****" :prog_end end