OpenMoco: The Open-Source Photographic Motion Control System
I’m happy to announce that I have released the first parts of the OpenMoco System, and set up a website for it. I’ve been working with Jay Burlage (milapse) on bringing this to market as a viable product.
The first components are designed around a simple and inexpensive controller to build for time-lapse motion control (What I refer to as the ‘Engine’), including a fully-functional API for perl scripts running on a computer to configure and control the engine.
The OpenMoco system is designed around several key components:
- OpenMoco Engine: A core body of code that runs on a stand-alone arduino providing direct control of motors and cameras. The code and hardware combined make up an ‘engine’
- OpenMoco Interface: A body of code and/or a physical hardware component that provides an abstracted user interface, fulfilling a given use-case (easy timelapse, advanced timelapse, stop-motion, scripting APIs, etc.)
- OpenMoco Elements: The physical motor and bracket components that perform the motion and provide the final step in fulfilling the users’ goals. These components are CC licensed, and may be built or bought
I’m working on prototyping the OpenMoco Elements hardware designs for fabrication using my wonderful K2 CNC machine, but in the mean-time I’ve already released a fully-functional Engine and Perl-Based API.
Here’s a very brief review of the engine features:
- Camera Intervalometer (1-65,535 seconds)
- Focus pre-tap function (trigger focus line before firing)
- 3-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)
- An alt Input/Output for firing flash, triggering second camera, controlling program via external input, etc.
- Two serial command interfaces for controlling via computer and/or another microcontroller (touch-screen UI, etc.)
For an example of the simplicity of the design of the engine, even given all of the above capabilities, check out the circuit design:
The goal is also to make the OpenMoco website a haven for all kinds of information related to DIY photographic motion control.
Come on by and check it out: www.OpenMoco.org
The engine documentation (incomplete as of this writing): Engine Documentation
Download the Engine and the Perl API: Software Downloads