The time-lapse engine provides the following camera control functions:
Exposure and Interval timers are non-blocking, this means that you may continue to interact with the engine while a timer is engaged (e.g. during an exposure), or even trigger keyframes. This is especially useful when you want to continue to modify your program based on time during the execution of your program. Post-exposure and Pre-focus tap timers are blocking, however, and you may not expect time-based keyframes to execute during these actions.
Exposure time is set in milli-seconds, from 1 to 4,294,967,296. Or, 1/1000th of a second to nearly 50 days. (49.7103 days to be more precise!)
You will need to perform some experimentation to determine what the minimum trigger time for your camera is. Some cameras will detect a trigger on the remote in 10-20 mS, while others may require 70 or even 100mS to detect the remote accurately. Make sure you let your camera run for a while with a single trigger time when testing to make sure that it doesn't miss the occasional trigger. The fastest time that your camera will reliably recognize is the preferred trigger time to use for all camera modes except 'bulb'.
The Exposure timer is non-blocking.
Interval is set in seconds, from 1 to 65,536 (Around 45.5 days.)
The interval time is the amount of time to wait between shots.
The Interval timer is non-blocking.
Post-exposure delay time is set in milli-seconds, from 1 to 65,536. (65.5 seconds.)
The post-exposure delay timer specifies how long after completing a shot to wait before moving any motor. This is used when the Exposure Time Setting is less than the actual exposure value set in the camera. For example, when shooting with the camera in manual mode, if the camera is set to a 1 second exposure, and the Exposure Time Setting is set as 70mS, you would want a post-exposure delay of at least 930mS to prevent the motors from moving while the camera is exposing.
Note: If your combination of exposure time, post-exposure time, and the amount of time it takes to move your motors the required distance exceeds your interval time, the actual interval time between shots will be greater than or equal to the combination of these times. The engine will not execute another shot until all outstanding activities have been completed for the current cycle. It will, however, attempt to execute the next shot at the earliest available opportunity.
The post-exposure delay timer is a blocking timer, and therefore no time-based keyframes will occur while this is running, and the engine will not act upon any serial commands while in post-exposure delay.
Pre-Focus tap time is set in milli-seconds, from 1 to 65,536. (65.5 seconds.)
The pre-focus tap timer allows you to tap the focus line (for cameras and remote setups that support this capability) immediately before a shot is executed (exposure is triggered). This is especially useful for longer interval times where the camera may go to sleep between shots, causing shot cycles to get missed.
The order of operations, when a positive pre-focus tap time is set, is as follows:
Thus, you will have a delay of at least 2x your pre-focus tap time. The cause for the second delay is to prevent certain cameras from ignoring an exposure trigger that comes too soon after the pre-focus tap.
The pre-focus tap timer is a blocking timer, and therefore no time-based keyframes will occur while this is running, and the engine will not act upon any serial commands while in focus is being executed.
For some cameras, especially certain Nikon cameras, the focus line must be engaged whenever the shutter line is triggered using a wired remote. This setting allows one to enable this behavior and control these cameras properly.
Maximum shot count is an integer from 1 to 65,536.
The camera, and camera alone, will be disabled when the maximum shot counter is reached within the current program execution. You may rather choose to disable the camera after a certain number of shots, and re-enable it after a certain amount of time through the use of actions and camera and time keyframes.
Setting the maximum shot count to zero specifies that there should be no maximum shot count, and the camera will fire until the program is stopped, paused, or an action to disable the camera is taken.
A Camera Repeat Cycle allows you to trigger multiple exposures at each interval, using actions in-between to script out complex behaviors. A typical use might be to easily create a gigapanoramic photo sequence by using repeat cycle for the rows, and the normal program execution for the vertical movement changes. One could also use it to shoot several interlaced videos at once, with different output speeds - or even a couple of interlaced videos at once with different subjects in the same visible area.
The Repeat Cycle options are a little more involved than can be discussed in a paragraph, so please see the documentation for this feature specifically.
The Time-lapse Engine provides the ability to craft unique and complex shots using a number of features which can be combined at-will for automating different activities. One of these tools is the Camera Repeat Cycle.
A Repeat Cycle specifies that each time an exposure would be triggered during the normal execution of a program, that shot should be repeated. Most importantly, a repeat cycle is invisible to the normal flow of program execution, so only the initial shot is recorded in 'shots fired' parameter, no motor distances moved for the normal program are updated, no keyframes are executed, and any changes to program parameters can be reset upon completion of an individual cycle.
This means that the repeat cycle can be used for crafting multiple, interleaved time-lapse videos either moving at different video speeds, or shooting entirely different subjects. A repeat cycle could also be used for easily scripting panoramic photos by specifying the start of a row of photos, the total rows to takes, and the vertical distance between rows as part of the normal program execution, and then using the repeat cycle to specify the distance between photos in a given row. Another popular use for a repeat cycle would be for creating HDR timelapse. One could specify that each shot is repeated X times, with each repetition further reducing exposure by 1/2 EV. In this way, it can function as an extended bracketing setting for cameras in bulb mode.
Unless a repeat action modifies camera parameters, all parameters for camera exposures are the same for each repeat exposure, including: exposure time, post-exposure delay, focus pre-tap time, etc.
The following parameters are available for controlling the Camera Repeat Cycle:
The Repeat Count specifies how many times to repeat each exposure. The value for this parameter ranges from 0-255. Setting this to zero disables camera repeat cycling.
Repeat Actions can be called between each repeated shot. This allows one to move motors, change exposure parameters, etc. during the cycle. You can have up to four repeat actions called between each shot in the repeat cycle. For more information on defining actions, and what can be done with them, see the Actions page later in this document.
If any repeat action changes the direction of a motor, the motor will be set back to its normal direction after the action is complete.
The Motors Home after Repeat is a simple on/off option, that specifies that if any motor movement occurred during the repeat cycle (i.e. a repeat action caused a motor to move), that all motors should be returned back to where their position was before any repeat actions were called. This is an essential option for shooting interlaced time-lapse videos, otherwise one would be unable to control the output speed ramping, and it motor position would likely jump far out beyond the intended location.
You may specify up to four actions to be called upon completion of a Camera Repeat Cycle. This function can be used to set parameters back to new values after each Repeat Cycle. In particular, specifying a direction change only action (see Serial Protocol) to be run at the end of a repeat cycle is an excellent way to cover "columns and rows" in your program.