The Open Micro-Manipulator is an open-source project designed to provide a low-cost, easy-to-build motorized XYZ motion control platform. It is engineered for high-precision tasks such as probing electronic components, optical alignment, and microscopy. The system utilizes a parallel kinematic structure combined with miniature ball joints to achieve a balance of mechanical stiffness and a wide range of motion. By leveraging off-the-shelf stepper motors and a 30 kHz closed-loop controller, the platform aims to make sub-micrometer precision accessible to hobbyists and researchers alike.

Close-up view of the improved ball joints used in the motion platform
The platform utilizes a parallel kinematic structure combined with miniature ball joints to balance mechanical stiffness and range of motion.github.com

The system utilizes a parallel kinematic structure combined with miniature ball joints to achieve a balance of mechanical stiffness and a wide range of motion.

To achieve its precision goals, the platform employs a 'magnetic gearing' approach. This technique artificially increases the resolution of low-cost magnetic rotary encoders by a factor of 30, enabling the system to achieve steps as small as 50nm. While the project achieves this high resolution, the developers explicitly note a distinction between resolution and accuracy, stating that the absolute accuracy of the device is significantly lower than its theoretical resolution. The hardware is designed to be accessible, using a PCB that requires no SMD soldering and components that can be fabricated using standard 3-axis CNC milling or 3D printing.

A 3D CAD model of the Open Micro-Manipulator hardware
The hardware is designed for accessibility, with components that can be fabricated using standard 3-axis CNC milling or 3D printing.github.com

The hardware is designed to be accessible, using a PCB that requires no SMD soldering and components that can be fabricated using standard 3-axis CNC milling or 3D printing.

Control and integration are handled through a firmware stack written in C++ that supports a subset of G-Code commands over a USB serial interface. The firmware includes a motion planning stack with look-ahead capabilities to ensure smooth path following and supports 6DOF-Pose interpolation. For ease of use, the project provides a Python API for serial communication and a graphical user interface (GUI) that can display live camera feeds, such as those from a microscope. While the project is currently optimized for XYZ motion, the underlying firmware architecture is designed to support more complex configurations, such as hexapod motion platforms.

The graphical user interface displaying a live camera feed and motion controls
The project provides a graphical user interface that can display live camera feeds, such as those from a microscope.github.com

For ease of use, the project provides a Python API for serial communication and a graphical user interface (GUI) that can display live camera feeds, such as those from a microscope.