This is an update to the initial script posted. This upgrade allows setting the number of days the script should run.
This script was designed for high accuracy and flexibility in mind. The script provides the ability to select shooting sequences by 1) number of days to run 2) specific days of the week 3) hours/minutes of the day, and 4) specific interval/cycles in minutes/seconds.
Having the ability to individually select only the days of the week can save substantial amounts of SD card space and the need for deleting unwanted photos later. For example, lets say you only wanted to shoot photos on Monday, Wednesday & Friday. Using this script versus a "range" script you would not have a series of photos from Tuesday & Thursday that wasted space on your SD card and you would realize a 40% savings in space requirements. You are still be able to select a "range of days" similar to a "range" intervalometer script simply by selecting all of the days of the week in the "range".
This script also provides the user with the capability to set the number of days the script is to run.
If you do not want to set a specific range of days, you can set the "Number of Shots" to 0 and the camera will shoot as many shots as can fit on the SD card. For example, if the "Number of Shots" is set to 0, the script will shoot the maximum number of shots using the interval, days of week, and the hours/minutes selected during the dates indicated. This avoids having to calculate the number of shots in the days time periods using the selected interval. It is left to the user to insure there will be enough free space available on the SD card (note: after entering the number of days the amount of disk free space is displayed in MB and percent available).
Requirements/Recommendations.
- No camera specific statements are used so this script should work on most CHDK equiped cameras
- Requires ability to use Left, Right, and Set buttons on camera
- Ensure Date & Times are set properly on your camera; script uses 24 hour times
- Due to the normally long time sequences, an AC adapter and tripod are recommended
Script termination.
There are bacically four ways to exit this script:
- Set the number of days to run
- Set the number of shots to greater than 1
- Too many shots for the remining free space on SD card; error message, camera remains on
- Pressing the shutter button; usually used when user needs to change something, camera remains on
Script Parameters:
Number of Shots, Interval (mins), Interval (secs), Start Hour (24 Hr), Start Minute, End Hour (24 Hr), and End Minute
Accuracy of interval times.
Basically there are two different methods that intervalometer scripts usually employ for interval times, 1) reading/using the camera's built-in time clock and 2) using the CHDK "tick_count" statements. Using the camera's built-in time clock isn't as accurate as using the CHDK "tick_count" statements, therefore this script uses "tick_count" statements in order to keep the interval times very accurate.
Error checking.
As with most scripts, it is wise to do error checking on critical inputs provided by the user since intervalometer scripts usually run over longer time periods and involve shooting large numbers of photos. Therefore, this script tests critical inputs and where possible, corrects obvious errors so that the script can attempt to run. There is one error check that will terminate the script early - if the Start Time is set to occur after the End Time.
Caution message.
Since this script normally requires a tripod or hard surface, a Caution message will be displayed if the Image Stabilization (IS) is enabled. The IS mechanism operates by correcting shake. When there is no shake, or when the level of shake is below the threshold of the system's detection capability, use of the IS feature may actually add unwanted blur to the photograph, therefore you should shut it off in this situation.
Entering "real-time" user input.
One limitation of UBasic is that the size of the script appears to determine the maximum number of input parameters the script can display - small scripts can have more than larger scripts. Due to the size of this script, only 7 parameters could be used. However, this limitation was overcome by inputing data in "real time" during the running of the script. This method is used to enter the Number of days to shoot and Day Of the Week (DOW) user inputs.
The Days of the Week (DOW) to shoot photos are entered in real time by the user after starting the script. For each day of the week, the user will be presented with "DOW" input messages looking like the following:
Left=No Right=Yes Left(-) Right(+)
Set when done Set when done
Sun: No Number of days: 14
Entering DOWs Entering Number of days
Use the "Right" or "Left" buttons to select yes or no, respectively, and when you are done press the "Set" button to proceed to the next day of the week. If you have chosen to use the Number of days (by setting number of shots to zero), then number of days will be entered in the same manner as the DOWs - in real time and using the Left, Right and Set buttons (see above example).
<Part 1>