Motion control is quickly becoming the must have tool for professionals and enthusiasts capturing video, time-lapse, panoramic photography and image based lighting. Typically accurate motion control comes with a hefty price tag and little flexibility. The OpenMoCo.org mission is to provide a community for open-source software and hardware that enables photographers and videographers on a budget access to motion control tools. Here you'll find articles, hardware designs, software, and experiments in motion control.
The OpenMoCo Reference Design
The OpenMoCo Reference Design was originally created by Chris Church (shutterdrone) for experimenting with steppers and motion controls for timelapse use. It has since grown to support different forms of motion control, such as gigapixel panoramas, stereoscopic shooting, and more, and has been adapted by many individuals to their specific needs.
The Reference Design is composed of at least one Engine, Interface, and Element. The Engine components run on the low-cost AVR-based Arduino hardware platform, while the Interfaces can run on anything from specialized touch-screen interfaces to PCs, laptops, and netbooks, and the Elements are specialized hardware constructs designed to make motion control easy and affordable. Elements under control can be anything from a motor-driven motion axis, to a camera, or even flashes and other equipment.
The Reference Design is built around the low-cost Arduino microcontroller platform. The Arduino platform is designed to be an easy-to-learn and easy-to-use system for people new to software and hardware design as well as providing all the capabilities needed for advanced users. Being based on the Arduino platform allows a low cost of entry (boards start under $30), support from a large, involved community, and the ability grow without software changes. (All boards support 8-bit RISC microprocessors, and range from 16 to 50 I/O lines.) You're welcome to branch your own code off of the reference design, to support other microcontrollers or needs. We'll be happy to include it in the subversion system and maintain packages and documentation for you.
For copyright information, see Reference Design Copyrights.
What Can You Do?
The Reference Design allows you to control multiple motor-driven motion axes, providing up to four degrees of freedom for each Arduino microcontroller while providing integrated camera triggering capabilities for time-lapse, stop-motion, and other single-frame driven photographic techniques.
Using the Engines, you can create highly capable motion control systems that match your budget - for example, you can build a 12 foot linear motion axis on inexpensive aluminum extrusion for a few hundred dollars, retrofit legacy motion control systems with a more modern (and open!) control system, or build a high-performance, accurate, pan and tilt system for a fraction of the price of commercial systems.
We all like choices, and the Reference Design has grown with the motto that more choice is better. Two core engines allow for using either Stepper motors, or brushed DC motors. The TimeLapse Engine controls up to four stepper-motor driven axes, and provides a rich feature set with pre-scripted or interactive motion control - using a computer interface. For those needing a much more simple system, such as for field work with timelapse, the MX2 Dolly Engine provides hardware and firmware for a ready-to-run and easy to use 2-axis DC motor system.
With the TimeLapse Engine, you can control it in real-time using simple commands in a scripting environment, write your own software in Perl (or any other language), or prepare moves in advance and then execute them repeatably when needed.
The Reference design has been used by both professional and hobbyist photographers to solve the following use-cases:
- 2-axis still photo studio automation with computer control
- Interactive, real-time control and positioning for motion cameras
- Hike-able timelapse dollies for field work
- Stereoscopic timelapse filming
- Low-cost 3-axis systems for larger cameras