Skip to main content
  1. Projects/

3D-printed micromanipulator

A fully 3D-printable micromanipulator for picking individual cells under an inverted microscope. Designed for use with pulled-glass capillaries; resolution ~5 μm on the fine axes.

Status: working prototype, v0.3. Feedback welcome via GitHub issues.

Build files
#

Interactive 3D preview
#

Drop the STL into static/files/ in the repo, then this shortcode renders an interactive viewer:

{{< stl-viewer src="/files/micromanipulator-v0.3.stl" >}}

Parts list
#

PartSourceQtyNotes
NEMA 8 stepperPololu / OSH3One per axis
A4988 driverPololu3Or DRV8825
Arduino Nanomany1Any AVR-based variant
Joystick moduleAdafruit12-axis + button
M3 hardware kitMcMasterMostly 8 mm and 12 mm
Pulled glass capillaryWorld Precisionas needed1.0 mm OD borosilicate

Build notes
#

Print body parts in PETG for stiffness; ABS works but warps. Use 100% infill on the carriage parts — flex matters. The joystick mapping in the firmware uses an exponential curve so coarse moves feel responsive and fine moves stay precise.

// excerpt from joystick.ino
int mapExp(int raw, int deadzone, int maxStep) {
  int centered = raw - 512;
  if (abs(centered) < deadzone) return 0;
  float n = (float)(abs(centered) - deadzone) / (512 - deadzone);
  int step = (int)(pow(n, 2.5) * maxStep);
  return centered < 0 ? -step : step;
}

Lessons learned
#

  1. The first version used cantilevered axes — flex was unusable above 200× magnification. Cross-bracing solved it.
  2. PLA creeps under preload from the glass capillary holder. Switch materials.
  3. Adding a 30 mm working-distance offset to the capillary mount means you can swap out the glass without re-zeroing.

Future improvements
#

  • Optical encoders for closed-loop control
  • Manual fine-adjust knobs as backup when the microcontroller is being reflashed
  • Compatibility plate for Nikon Ti and Olympus IX stages