MoCoBus is an open means for connecting motion control and photographic devices together to allow for intelligent systems to be centrally managed from any number of controllers, whether they be a computer, a cellphone, or speciality device powered by a microcontroller.
MoCoBus defines how devices are connected, the wiring used, and the protocol for communicating between devices. In this way, anyone who builds or purchases a device may be assured their device will connect with, communicate with, and not interfere with other devices on the bus. All aspects of this standard will be open and available for use by both open-source and proprietary technology companies - allowing for the greatest level of cooperation between devices.
While MoCoBus is primarily being developed for use by Dynamic Perception products, we have partnered with several other open-source projects currently in the works to extend MoCoBus support to many aspects of studio automation, from direct in-camera control to other motion and automation devices on the network.
Interconnected, yet Autonomous
At the core of MoCoBus is the concept that each function (for example: a motor representing one degree of freedom, a camera controller, a smart light meter, etc.) is represented by an autonomous device which is fully capable of carrying out its task without further input once configured. In practicality, this means that instead of using expensive "brain" controllers with limited capacity that must run the entire time a film is being executed, all that is required is a controlling unit to transmit the initial configuration to each node. Once the configuration has been transmitted, and the sequence has been started, the controller may be disconnected and powered off.
For film types that need synchronization between all nodes, MoCoBus has a built in time-synchronization capability that allows it to keep on-track without further interaction from the controller.
Well-Defined Communication Protocol
Of course, all of the devices in the world won't help you, if you don't know how to talk to them. For command and control, MoCoBus specifies how devices communicate via a well-structured communication protocol. This means that new device types with new features (and commands) can be quickly integrated into existing software and systems, and allows new device developers the freedom to worry only about what they need their device to do.
For detailed protocol information, and a greater understanding of how data is transmitted on the bus, see:
Software Development Kits
Of course, to make development of new devices easier and more efficient, we have released a number of Software Development Kits (SDKs), both for embedded hardware and for personal computers to make it quicker and easier to integrate MoCoBus functionality into existing devices and software. These SDKs free the developer from the underlying complexities in implementing the robust MoCoBus protocol. We are constantly adding new software building blocks and evolving the technology. Like everything else we do, these are fully open-source and ready to be used in your project.
All MoCoBus-compatible devices must have a standardized method of connecting two devices. In the case of MoCoBus, a common, RJ-45 Cat5 (Ethernet) cable is used. Each node devices has two of these connectors, allowing for devices to be chained from one to the next. Each master device has a single connector, allowing it to terminate the bus on its end.
For more information on how to connect devices in MoCoBus, see: MocoBus Interconnects
All MoCoBus concepts are shared freely under the Creative Commons Attribution Share-Alike 3.0 license. The MoCoBus name is a trademark of Dynamic Perception, LLC. You are given the freedom to apply the MoCoBus label to any product, design, or service that:
- Complied with all requirements in the interconnect and protocol definitions published on this site at the time your device was initially released to the market.
- Is released or shared under an open-source license that:
By placing this label on a product, you agree to:
- Not trademark, or attempt to trademark any name containing the word 'MoCoBus'
- Not patent, or attempt to patent any key component of the MoCoBus implementation as shared by Dynamic Perception
- Not patent, or attempt to patent any system which is reliant on MoCoBus or any key component of MoCoBus as shared by Dynamic Perception
- Hold Dynamic Perception responsible for, or attempt to transfer responsibility of any product function or warranty to Dynamic Perception
On naming and trademarks: It is expected that the MoCoBus label would be applied to a product as a secondary term, e.g.: "MoCoBus-compatible," "MoCoBus-enabled," "Supports MoCoBus," etc. Placing the MoCoBus label in the primary name of a product (e.g.: "MoCoBus Multiplier 541," "MoCoBus Super Controller") would cause automatic trademark issuance in some jurisdictions and would thereby violate the terms of this agreement.
MoCoBus has no governing body and no approval process, it is shared with the hopes that it be beneficial to the community, and that persons or organizations using the label do so with the intent of bettering the community and their customers/users. There is no such thing as "MoCoBus Approved," and Dynamic Perception does not specifically approve any device for use on MoCoBus.