The OpenMoco Time-Lapse Engine (OMTLE) is designed to run on an Arduino microcontroller with the Atmega328P Chipset. It is provided as a C++ sketch to be uploaded via the Arduino IDE. It can be easily ported to other microcontroller platforms as well.
The OpenMoco engines are the heart of the OpenMoco system, providing direct camera and motor control and are used as a building block for a system that is personalized around your specific needs. The time-lapse engine provides a control set that is specifically designed for motion control in time-lapse photography using a dSLR camera, in a standard shoot-move-shoot style of execution. That is, motor movements are taken between each exposure cycle, to prevent any possibility of movement or blurring of output video frames. Up to four stepper motor axes can be driven with the OMTLE, when using drivers that utilize pulse logic for step and direction. This includes many common drivers such as the Easydriver, Gecko drives, and many others easily sourced online.
Camera control for dSLRs is driven by a direct connection to the camera using a wired cable remote port. Some cameras can also utilize an infrared LED to emulate a wireless remote with no software changes. In the hardware implementation section below, several options and guidelines for connecting to a camera are discussed.
It is important to note that the time-lapse engine does not come with a human interface, its provides only a programmatic interface that can be utilized by other microcontrollers, personal computers, laptops, and PDAs. New interfaces, varying from software to run on a PC, to stand-alone PDA-like custom designs are being worked on constantly to suit different uses.
The time-lapse engine is completely free of charge, and open-source. All software is released under the GPL v3 or PERL Artistic license (see the individual licenses included with the source code), and all hardware is released under the Creative Commons Attribution Share-Alike license.
A quick glance at the time-lapse engine features:
- Camera Intervalometer (1-65,535 seconds)
- Focus pre-tap function (trigger focus line before firing)
- 4-axis stepper motor control (for pulse-driven [step/dir] stepper drivers)
- Linear ramping of move execution speed (to prevent missed steps and jarring of camera during movement)
- Linear ramping of motor movements in output video
- Action Scripting (define actions to be taken at given keyframes)
- Camera, Time, and Motor Movement Keyframing (trigger actions after # of shots, movements, or time)
- Ability to script complex shot-cycles easily for tasks such as: gigapano photography, multiple timelapse shots, etc.
- Serial command interface for controlling via computer and/or another microcontroller (touch-screen UI, etc.)